Newer
Older

Giancarlo Razzolini
committed
pacman: name=git,python2,python2-psycopg2,python2-virtualenv,uwsgi-plugin-python2 state=present

Giancarlo Razzolini
committed
user: name=archweb shell=/bin/false home="{{ archweb_dir }}" createhome=no
file: state=directory owner=archweb group=archweb path="{{ archweb_dir }}"

Giancarlo Razzolini
committed
- name: set archweb groups
user: name=archweb groups=uwsgi
when: archweb_site
- name: set up nginx
template: src=nginx.d.conf.j2 dest=/etc/nginx/nginx.d/archweb.conf owner=root group=root mode=644
notify:

Giancarlo Razzolini
committed
- reload nginx

Giancarlo Razzolini
committed
when: archweb_site
- name: make nginx log dir
file: path=/var/log/nginx/{{ archweb_domain }} state=directory owner=root group=log mode=750

Giancarlo Razzolini
committed
when: archweb_site

Giancarlo Razzolini
committed
- name: make rsync iso dir
file: path={{ archweb_rsync_iso_dir }} state=directory owner=archweb group=archweb
when: archweb_site
git: repo=https://git.archlinux.org/archweb.git dest="{{ archweb_dir }}"

Giancarlo Razzolini
committed
register: release
command: virtualenv2 "{{ archweb_dir }}"/env creates="{{ archweb_dir }}/env/bin/python"
become: true
become_user: archweb
- name: install stuff into virtualenv
pip: requirements="{{ archweb_dir }}/requirements_prod.txt" virtualenv="{{ archweb_dir }}/env"

Giancarlo Razzolini
committed
register: virtualenv
- name: create media dir
file: state=directory owner=archweb group=archweb path="{{ archweb_dir }}/media"

Giancarlo Razzolini
committed
when: archweb_site
file: state=directory owner=archweb group=archweb path="{{ archweb_dir }}"

Giancarlo Razzolini
committed
- name: configure archweb
template: src=local_settings.py.j2 dest=/srv/http/archweb/local_settings.py owner=archweb group=archweb mode=0660

Giancarlo Razzolini
committed
register: config

Giancarlo Razzolini
committed
no_log: true

Giancarlo Razzolini
committed
- name: create archweb db users
postgresql_user: name={{ item.user }} password={{ item.password }} login_host="{{ archweb_db_host }}" login_password="{{ postgres_users.postgres }}" encrypted=yes
no_log: true
with_items:
- { user: "{{ archweb_db_site_user }}", password: "{{ archweb_db_site_password }}" }
- { user: "{{ archweb_db_services_user }}", password: "{{ archweb_db_services_password }}" }
- { user: "{{ archweb_db_dbscripts_user }}", password: "{{ archweb_db_dbscripts_password }}" }
- { user: "{{ archweb_db_backup_user }}", password: "{{ archweb_db_backup_password }}" }
- name: create archweb db
postgresql_db: name="{{ archweb_db }}" login_host="{{ archweb_db_host }}" login_password="{{ postgres_users.postgres }}" owner="{{ archweb_db_site_user }}"
register: db_created
- name: django syncdb
django_manage: app_path="{{ archweb_dir }}" command=syncdb virtualenv="{{ archweb_dir }}/env"
become: true
become_user: archweb
when: db_created.changed
- name: django migrate
django_manage: app_path="{{ archweb_dir }}" command=migrate virtualenv="{{ archweb_dir }}/env"
become: true
become_user: archweb

Giancarlo Razzolini
committed
when: archweb_site and (db_created.changed or release.changed or config.changed or virtualenv.changed or archweb_forced_deploy)

Giancarlo Razzolini
committed

Giancarlo Razzolini
committed
- name: db privileges for archweb users
postgresql_privs: database="{{ archweb_db }}" host="{{ archweb_db_host }}" login="{{ archweb_db_site_user }}" password="{{ archweb_db_site_password }}"
privs=CONNECT roles="{{ item }}" type=database
with_items:
- "{{ archweb_db_services_user }}"
- "{{ archweb_db_dbscripts_user }}"
- "{{ archweb_db_backup_user }}"
- name: table privileges for archweb users
postgresql_privs: database="{{ archweb_db }}" host="{{ archweb_db_host }}" login="{{ archweb_db_site_user }}" password="{{ archweb_db_site_password }}"
privs=SELECT roles="{{ item.user }}" type=table objs="{{ item.objs }}"
with_items:
- { user: "{{ archweb_db_services_user }}", objs: "{{ archweb_db_services_table_objs }}" }
- { user: "{{ archweb_db_dbscripts_user }}", objs: "{{ archweb_db_dbscripts_table_objs }}" }
- { user: "{{ archweb_db_backup_user }}", objs: "{{ archweb_db_backup_table_objs }}" }
- name: sequence privileges for archweb users
postgresql_privs: database="{{ archweb_db }}" host="{{ archweb_db_host }}" login="{{ archweb_db_site_user }}" password="{{ archweb_db_site_password }}"
privs=SELECT roles="{{ item.user }}" type=sequence objs="{{ item.objs }}"
with_items:
- { user: "{{ archweb_db_services_user }}", objs: "{{ archweb_db_services_sequence_objs }}" }
- { user: "{{ archweb_db_backup_user }}", objs: "{{ archweb_db_backup_sequence_objs }}" }

Giancarlo Razzolini
committed
- name: django collectstatic
django_manage: app_path="{{ archweb_dir }}" command=collectstatic virtualenv="{{ archweb_dir }}/env"
become: true
become_user: archweb

Giancarlo Razzolini
committed
when: archweb_site and (db_created.changed or release.changed or config.changed or virtualenv.changed or archweb_forced_deploy)

Giancarlo Razzolini
committed

Giancarlo Razzolini
committed
- name: install reporead service
template: src="archweb-reporead.service.j2" dest="/etc/systemd/system/archweb-reporead.service" owner=root group=root mode=0644
notify:
- daemon reload

Giancarlo Razzolini
committed
when: archweb_services or archweb_reporead

Giancarlo Razzolini
committed

Giancarlo Razzolini
committed
- name: install mirrorcheck service

Giancarlo Razzolini
committed
template: src="archweb-mirrorcheck.service.j2" dest="/etc/systemd/system/archweb-mirrorcheck.service" owner=root group=root mode=0644
notify:
- daemon reload

Giancarlo Razzolini
committed
when: archweb_services or archweb_mirrorcheck

Giancarlo Razzolini
committed
- name: install mirrorcheck timer
template: src="archweb-mirrorcheck.timer.j2" dest="/etc/systemd/system/archweb-mirrorcheck.timer" owner=root group=root mode=0644

Giancarlo Razzolini
committed
when: archweb_services or archweb_mirrorcheck

Giancarlo Razzolini
committed
- name: install mirrorresolv service
template: src="archweb-mirrorresolv.service.j2" dest="/etc/systemd/system/archweb-mirrorresolv.service" owner=root group=root mode=0644
notify:
- daemon reload
when: archweb_services or archweb_mirrorresolv
- name: install mirrorresolv timer
template: src="archweb-mirrorresolv.timer.j2" dest="/etc/systemd/system/archweb-mirrorresolv.timer" owner=root group=root mode=0644
notify:
- daemon reload
when: archweb_services or archweb_mirrorresolv

Giancarlo Razzolini
committed
- name: install populate_signoffs service
template: src="archweb-populate_signoffs.service.j2" dest="/etc/systemd/system/archweb-populate_signoffs.service" owner=root group=root mode=0644
notify:
- daemon reload
when: archweb_services or archweb_populate_signoffs
- name: install populate_signoffs timer
template: src="archweb-populate_signoffs.timer.j2" dest="/etc/systemd/system/archweb-populate_signoffs.timer" owner=root group=root mode=0644
notify:
- daemon reload
when: archweb_services or archweb_populate_signoffs

Giancarlo Razzolini
committed
- name: install pgp_import service
template: src="archweb-pgp_import.service.j2" dest="/etc/systemd/system/archweb-pgp_import.service" owner=root group=root mode=0644
notify:
- daemon reload
when: archweb_services or archweb_pgp_import
- name: create pacman.d hooks dir
file: state=directory owner=root group=root path="/etc/pacman.d/hooks"
when: archweb_services or archweb_pgp_import
- name: install pgp_import hook
template: src="archweb-pgp_import-pacman-hook.j2" dest="/etc/pacman.d/hooks/archweb-pgp_import.hook" owner=root group=root mode=0644
when: archweb_services or archweb_pgp_import

Giancarlo Razzolini
committed
- name: install archweb memcached service
template: src="archweb-memcached.service.j2" dest="/etc/systemd/system/archweb-memcached.service" owner=root group=root mode=0644
notify:
- daemon reload

Giancarlo Razzolini
committed
when: archweb_site

Giancarlo Razzolini
committed
- name: install archweb rsync iso service
template: src="archweb-rsync_iso.service.j2" dest="/etc/systemd/system/archweb-rsync_iso.service" owner=root group=root mode=0644
notify:
- daemon reload
when: archweb_site
- name: install archweb rsync iso timer
template: src="archweb-rsync_iso.timer.j2" dest="/etc/systemd/system/archweb-rsync_iso.timer" owner=root group=root mode=0644
notify:
- daemon reload
when: archweb_site
- name: deploy archweb
template: src=archweb.ini.j2 dest=/etc/uwsgi/vassals/archweb.ini owner=archweb group=http mode=0644

Giancarlo Razzolini
committed
when: archweb_site

Giancarlo Razzolini
committed
- name: deploy new release
become: true
become_user: archweb
file: path=/etc/uwsgi/vassals/archweb.ini state=touch

Giancarlo Razzolini
committed
when: archweb_site and (release.changed or config.changed or virtualenv.changed or archweb_forced_deploy)
notify: restart archweb memcached

Giancarlo Razzolini
committed
- name: start and enable archweb memcached service
service: name="archweb-memcached.service" enabled=yes state=started

Giancarlo Razzolini
committed
when: archweb_site

Giancarlo Razzolini
committed
- name: start and enable archweb rsync iso timer
service: name="archweb-rsync_iso.timer" enabled=yes state=started
when: archweb_site

Giancarlo Razzolini
committed
- name: start and enable archweb reporead service
service: name="archweb-reporead.service" enabled=yes state=started
when: archweb_services or archweb_reporead

Giancarlo Razzolini
committed
- name: restart archweb reporead service
service: name="archweb-reporead.service" state=restarted
when: archweb_services or archweb_reporead and (release.changed or config.changed or virtualenv.changed or archweb_forced_deploy)

Giancarlo Razzolini
committed
- name: start and enable archweb mirrorcheck timer
service: name="archweb-mirrorcheck.timer" enabled=yes state=started
when: archweb_services or archweb_mirrorcheck
- name: start and enable archweb mirrorresolv timer
service: name="archweb-mirrorresolv.timer" enabled=yes state=started
when: archweb_services or archweb_mirrorresolv

Giancarlo Razzolini
committed
- name: start and enable archweb populate_signoffs timer
service: name="archweb-populate_signoffs.timer" enabled=yes state=started
when: archweb_services or archweb_populate_signoffs