---
- include: clamav.yml
- include: eventsource.yml
- include: gitolite.yml
- include: milter.yml
- include: postgres.yml
- name: Install helpful development packages
dnf: name={{ item }} state=present
with_items:
- git
- ngrep
- nmap-ncat
- python-rpdb
- tmux
- tree
- vim-enhanced
- name: Install Pagure development packages
dnf: name={{ item }} state=present
with_items:
- gcc
- libgit2-devel
- libffi-devel
- libjpeg-devel
- make
- python-alembic
- python-arrow
- python-binaryornot
- python-bleach
- python-blinker
- python-chardet
- python-cryptography
- python-docutils
- python-enum34
- python2-eventlet
- python-fedora-flask
- python-flask
- python-flask-wtf
- python-flask-multistatic
- python2-jinja2
- python-markdown
- python-munch
- python-openid-cla
- python-openid-teams
- python-pip
- python-psutil
- python-pygit2
- python-pygments
- python-redis
- python-sqlalchemy
- python-straight-plugin
- python-virtualenvwrapper
- python-wtforms
- python-devel
- python3-devel
- redhat-rpm-config
- name: register the libgit2 version installed
shell: rpm -q libgit2|cut -d \- -f 2| cut -d \. -f 1,2
register: libgit2_version
# 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: 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: "{{ item }}"
virtualenv: /home/{{ ansible_env.SUDO_USER }}/.virtualenvs/python2-pagure/
virtualenv_python: python2
with_items:
- "pygit2=={{ libgit2_version.stdout_lines[0] }}.*"
- 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/python2-pagure/
virtualenv_python: python2
with_items:
- "requirements.txt"
- "requirements-ev.txt"
- "tests_requirements.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/python2-pagure/
- 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
- name: Link the pagure repos directory to gitolite
become_user: "{{ ansible_env.SUDO_USER }}"
file:
path: /home/{{ ansible_env.SUDO_USER }}/pagure_data/repos
src: /home/{{ ansible_env.SUDO_USER }}/repositories
state: link
- 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/python2-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: alembic stamp $(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
user: yes
with_items:
- pagure
- pagure-docs
- pagure_ci
- pagure_ev
- pagure_webhook
- pagure_worker