---
- include: clamav.yml
- include: eventsource.yml
- include: gitolite.yml
- include: milter.yml
- include: postgres.yml
- name: Install helpful development packages
dnf:
name:
- git
- ngrep
- nmap-ncat
- python3-rpdb
- tmux
- tree
- vim-enhanced
state: present
- name: Install Pagure development packages
dnf:
name:
- gcc
- libgit2-devel
- libffi-devel
- libjpeg-devel
- make
- python3-alembic
- python3-arrow
- python3-binaryornot
- python3-bleach
- python3-blinker
- python3-chardet
- python3-cryptography
- python3-docutils
- python3-enum34
- python3-eventlet
- python3-fedora-flask
- python3-flask
- python3-flask-wtf
- python3-jinja2
- python3-markdown
- python3-munch
- python3-openid-cla
- python3-openid-teams
- python3-pip
- python3-psutil
- python3-pygit2
- python3-redis
- python3-sqlalchemy
- python3-straight-plugin
- python3-virtualenvwrapper
- python3-wtforms
- python3-devel
- python3-devel
- redhat-rpm-config
- python3-bcrypt
- python3-virtualenv
state: present
- name: register the libgit2 version installed
shell: rpm -q libgit2|cut -d \- -f 2| cut -d \. -f 1,2
register: libgit2_version
args:
warn: false
# Add various helpful configuration files
- name: Install a custom bashrc
become_user: "{{ ansible_env.SUDO_USER }}"
copy: src=bashrc dest=/home/{{ ansible_env.SUDO_USER }}/.bashrc
- name: Install the message of the day
copy: src=motd dest=/etc/motd
- name: Remove the motd duplicate
pamd:
name: sshd
type: session
control: optional
module_path: pam_motd.so
state: absent
- name: populate bash history
become_user: "{{ ansible_env.SUDO_USER }}"
copy: src=bash_history dest=/home/{{ ansible_env.SUDO_USER }}/.bash_history
# Install Pagure inside a virtualenv and configure it
- name: Install pygit2 in the virtualenv
become_user: "{{ ansible_env.SUDO_USER }}"
pip:
name:
- "pygit2=={{ libgit2_version.stdout_lines[0] }}.*"
virtualenv: /home/{{ ansible_env.SUDO_USER }}/.virtualenvs/python3-pagure/
virtualenv_python: python3
virtualenv_command: virtualenv-3
# Install Pagure inside a virtualenv and configure it for python3
- name: Install pygit2 in the python3 virtualenv
become_user: "{{ ansible_env.SUDO_USER }}"
pip:
name:
- "pygit2=={{ libgit2_version.stdout_lines[0] }}.*"
virtualenv: /home/{{ ansible_env.SUDO_USER }}/.virtualenvs/python3-pagure/
virtualenv_python: python3
- name: Install Pagure Python dependencies into a virtualenv
become_user: "{{ ansible_env.SUDO_USER }}"
pip:
requirements: /home/{{ ansible_env.SUDO_USER }}/devel/{{ item }}
virtualenv: /home/{{ ansible_env.SUDO_USER }}/.virtualenvs/python3-pagure/
virtualenv_command: virtualenv-3
with_items:
- "requirements.txt"
- "requirements-ev.txt"
- "requirements-testing.txt"
- name: Install Pagure Python dependencies into a python3 virtualenv
become_user: "{{ ansible_env.SUDO_USER }}"
pip:
requirements: /home/{{ ansible_env.SUDO_USER }}/devel/{{ item }}
virtualenv: /home/{{ ansible_env.SUDO_USER }}/.virtualenvs/python3-pagure/
virtualenv_python: python3
with_items:
- "requirements.txt"
- "requirements-ev.txt"
- "requirements-testing.txt"
- name: Install Pagure package into a virtualenv
become_user: "{{ ansible_env.SUDO_USER }}"
pip:
name: /home/{{ ansible_env.SUDO_USER }}/devel/
extra_args: '-e'
virtualenv: /home/{{ ansible_env.SUDO_USER }}/.virtualenvs/python3-pagure/
virtualenv_command: virtualenv-3
- name: Install Pagure package into /usr/lib
pip:
name: /home/{{ ansible_env.SUDO_USER }}/devel/
extra_args: '-e'
- name: Install the pagure configuration
become_user: "{{ ansible_env.SUDO_USER }}"
copy: src=pagure.cfg dest=/home/{{ ansible_env.SUDO_USER }}/pagure.cfg
- name: Creates pagure data directories
become_user: "{{ ansible_env.SUDO_USER }}"
file: path=/home/{{ ansible_env.SUDO_USER }}/pagure_data/{{ item }} state=directory
with_items:
- forks
- docs
- tickets
- requests
- remotes
- repos
- name: Add a working copy of alembic.ini
become_user: "{{ ansible_env.SUDO_USER }}"
copy:
src: /home/{{ ansible_env.SUDO_USER }}/devel/files/alembic.ini
dest: /home/{{ ansible_env.SUDO_USER }}/alembic.ini
remote_src: True
- name: Configure alembic to use our development database
become_user: "{{ ansible_env.SUDO_USER }}"
replace:
dest: /home/{{ ansible_env.SUDO_USER }}/alembic.ini
regexp: "sqlalchemy.url = sqlite:////var/tmp/pagure_dev.sqlite"
replace: "sqlalchemy.url = sqlite:////home/{{ ansible_env.SUDO_USER }}/pagure_data/pagure_dev.sqlite"
- name: Configure alembic to point to the pagure migration folder
become_user: "{{ ansible_env.SUDO_USER }}"
replace:
dest: /home/{{ ansible_env.SUDO_USER }}/alembic.ini
regexp: "script_location = /usr/share/pagure/alembic"
replace: "script_location = /home/vagrant/devel/alembic/"
- name: Create the Pagure database
become_user: "{{ ansible_env.SUDO_USER }}"
command: .virtualenvs/python3-pagure/bin/python devel/createdb.py
args:
creates: /home/{{ ansible_env.SUDO_USER }}/pagure_data/pagure_dev.sqlite
chdir: "/home/{{ ansible_env.SUDO_USER }}/"
- name: Stamp the database with its current migration
become_user: "{{ ansible_env.SUDO_USER }}"
shell: /home/{{ ansible_env.SUDO_USER }}/.virtualenvs/python3-pagure/bin/alembic stamp $(/home/{{ ansible_env.SUDO_USER }}/.virtualenvs/python3-pagure/bin/alembic heads | awk '{ print $1 }')
args:
chdir: "/home/{{ ansible_env.SUDO_USER }}/"
- name: Create systemd user unit directory
become_user: "{{ ansible_env.SUDO_USER }}"
file:
path: /home/{{ ansible_env.SUDO_USER }}/.config/systemd/user/
state: directory
- name: Install the Pagure service files for systemd
become_user: "{{ ansible_env.SUDO_USER }}"
copy:
src: "{{ item }}"
dest: /home/{{ ansible_env.SUDO_USER }}/.config/systemd/user/{{ item }}
with_items:
- pagure.service
- pagure-docs.service
- pagure_ci.service
- pagure_ev.service
- pagure_webhook.service
- pagure_worker.service
- name: Enable the Pagure systemd services
become: False
systemd:
daemon_reload: yes
name: "{{ item }}"
enabled: True
scope: user
with_items:
- pagure
- pagure-docs
- pagure_ci
- pagure_ev
- pagure_webhook
- pagure_worker