--- - 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