mirror of
https://gitlab.archlinux.org/archlinux/infrastructure.git
synced 2026-09-20 01:49:03 +02:00
Earlier all of buildbtw would live in the same dir at /var/lib/buildbtw which was especially annoying for the review instances where we'd get 10s of databases in the same dir. This now also correctly cleans up old instance dirs.
100 lines
3.6 KiB
YAML
100 lines
3.6 KiB
YAML
- name: Install podman and webhook
|
|
pacman: name=podman,webhook state=present
|
|
|
|
- name: Create ssl cert
|
|
include_role:
|
|
name: certificate
|
|
vars:
|
|
domains: ["{{ buildbtw_domain }}", "*.{{ buildbtw_domain }}"]
|
|
challenge: "DNS-01"
|
|
when: buildbtw_stage == "review"
|
|
|
|
- name: Create ssl cert
|
|
include_role:
|
|
name: certificate
|
|
vars:
|
|
domains: ["{{ buildbtw_domain }}"]
|
|
challenge: "HTTP-01"
|
|
when: buildbtw_stage in ["staging", "production"]
|
|
|
|
- name: Setup HTTP redirect
|
|
include_role:
|
|
name: http_redirect
|
|
vars:
|
|
domain: "{{ buildbtw_domain }}"
|
|
additional_domains: "{{ ['.' + buildbtw_domain] if buildbtw_stage == 'review' else [] }}"
|
|
|
|
- name: Make nginx log dir
|
|
file: path=/var/log/nginx/{{ buildbtw_domain }} state=directory owner=root group=root mode=0755
|
|
|
|
- name: Set up nginx
|
|
template: src=nginx.d.conf.j2 dest=/etc/nginx/nginx.d/buildbtw.conf owner=root group=root mode=640
|
|
notify: Reload nginx
|
|
tags: ['nginx']
|
|
|
|
- name: Create containers dirs
|
|
file: path=/etc/containers/systemd owner=root group=root mode=0755 state=directory
|
|
|
|
- name: Install buildbtw systemd container file
|
|
template: src=buildbtw@.container.j2 dest=/etc/containers/systemd/buildbtw@.container owner=root group=root mode=0644
|
|
notify: Restart buildbtw
|
|
|
|
- name: Install buildbtw tmpfiles.d entry
|
|
copy: src=buildbtw-tmpfiles.d.conf dest=/etc/tmpfiles.d/buildbtw.conf owner=root group=root mode=0644
|
|
register: buildbtwtmpfiles
|
|
|
|
- name: Use tmpfiles.d/buildbtw.conf
|
|
command: systemd-tmpfiles --create creates=/run/buildbtw
|
|
when: buildbtwtmpfiles.changed
|
|
|
|
- name: Maker sure webhook dir exists
|
|
file: path=/etc/webhook owner=root group=root mode=0755 state=directory
|
|
|
|
- name: Install webhook config
|
|
copy: src=hooks.json dest=/etc/webhook/hooks.json owner=root group=root mode=0644
|
|
notify: Restart webhook
|
|
when: buildbtw_stage in ["review", "staging"]
|
|
|
|
- name: Install deployment scripts
|
|
template: src={{ item }}.j2 dest=/usr/local/bin/{{ item }} owner=root group=root mode=0755
|
|
when: buildbtw_stage in ["review", "staging"]
|
|
loop:
|
|
- buildbtw-deploy-image.sh
|
|
- buildbtw-undeploy-image.sh
|
|
|
|
- name: Create dir for webhook systemd service override
|
|
file: path=/etc/systemd/system/webhook.service.d owner=root group=root mode=0755 state=directory
|
|
when: buildbtw_stage in ["review", "staging"]
|
|
|
|
- name: Make sure webhook runs only on localhost
|
|
copy: src=webhook-override.conf dest=/etc/systemd/system/webhook.service.d/override.conf owner=root group=root mode=644
|
|
notify: Restart webhook
|
|
when: buildbtw_stage in ["review", "staging"]
|
|
|
|
- name: Install conf file
|
|
template: src=buildbtw.conf.j2 dest=/etc/conf.d/buildbtw owner=root group=root mode=0600
|
|
notify: Restart buildbtw
|
|
|
|
- name: Create buildbtw working dirs
|
|
file: path={{ item }} owner=root group=root mode=0755 state=directory
|
|
loop:
|
|
- "{{ buildbtw_dir }}/instances"
|
|
- "{{ buildbtw_dir }}/ssh"
|
|
- /run/buildbtw
|
|
|
|
- name: Create buildbtw instance working dir
|
|
file: path={{ buildbtw_dir }}/instances/{{ buildbtw_stage }} owner=root group=root mode=0755 state=directory
|
|
when: buildbtw_stage in ["staging", "production"]
|
|
|
|
- name: Install SSH private key
|
|
copy: content="{{ vault_buildbtw_ssh_private_key }}" dest={{ buildbtw_dir }}/ssh/id_ed25519 owner=root group=root mode=0600
|
|
notify: Restart buildbtw
|
|
|
|
- name: Start and enable webhook systemd service
|
|
systemd_service: name=webhook state=started enabled=true daemon_reload=yes
|
|
when: buildbtw_stage in ["review", "staging"]
|
|
|
|
- name: Start buildbtw systemd service
|
|
systemd_service: name=buildbtw@{{ buildbtw_stage }} state=started daemon_reload=yes
|
|
when: buildbtw_stage in ["staging", "production"]
|