Refactor the playbook to support multiple roles per host nicely

This commit is contained in:
Waffles
2023-01-09 02:39:02 -08:00
parent 4f73bfcf2c
commit 4d0b70bbe1
20 changed files with 186 additions and 45 deletions
+28 -3
View File
@@ -7,41 +7,55 @@
state: directory
owner: www-data
group: www-data
tags:
- install
- name: Install nginx site cdn
- name: Configure nginx site cdn
template:
src: cdn.j2
dest: /etc/nginx/sites-available/cdn
notify: restart nginx
tags:
- configure
- name: Install nginx mastodon config
- name: Configure nginx mastodon config
template:
src: mastodon.j2
dest: /etc/nginx/sites-available/mastodon
notify: restart nginx
tags:
- configure
- name: Enable cdn
file:
src: /etc/nginx/sites-available/cdn
dest: /etc/nginx/sites-enabled/cdn
state: link
tags:
- install
- name: Enable mastodon
file:
src: /etc/nginx/sites-available/mastodon
dest: /etc/nginx/sites-enabled/mastodon
state: link
tags:
- install
- name: Disable default
file:
path: /etc/nginx/sites-enabled/default
state: absent
tags:
- install
- name: Copy dmca
template:
src: dmca
dest: /etc/nginx/dmca
notify: restart nginx
tags:
- install
- name: Prep SSL directory
file:
@@ -49,30 +63,41 @@
state: directory
owner: www-data
group: www-data
tags:
- install
- name: Install mastodon domain SSL certificate
template:
src: domain.fullchain.pem
dest: /etc/nginx/ssl/domain.fullchain.pem
tags:
- install
- name: Install mastodon domain ssl key
template:
src: domain.privkey.pem
dest: /etc/nginx/ssl/domain.privkey.pem
tags:
- install
- name: Install mastodon CDN SSL certificate
template:
src: cdn.fullchain.pem
dest: /etc/nginx/ssl/cdn.fullchain.pem
tags:
- install
- name: Install mastodon CDN ssl key
template:
src: cdn.privkey.pem
dest: /etc/nginx/ssl/cdn.privkey.pem
tags:
- install
- name: Copy cloudflare
template:
src: cloudflare
dest: /etc/nginx/cloudflare
notify: restart nginx
tags:
- install
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose $(ls /home/mastodon/live/docker-compose.*yml -1 | sort -r | awk '{printf "-f %s ", $1}') pull
-3
View File
@@ -1,4 +1 @@
---
dependencies:
- role: geerlingguy.docker
- role: yttrx
+17 -5
View File
@@ -5,6 +5,8 @@
name: mastodon
shell: /bin/bash
group: docker
tags:
- install
- name: Check if mastodon repo checked out
stat: path=/home/mastodon/live
@@ -14,19 +16,25 @@
when: not p.stat.exists
- name: Install statsd mapper
template:
src: statsd-mapping.yaml.j2
copy:
src: statsd-mapping.yaml
dest: /root/statsd-mapping.yml
tags:
- install
- name: Install .env.production file
template:
src: env.production.j2
dest: /home/mastodon/live/.env.production
tags:
- configure
- name: Install docker-compose.sh file
template:
src: docker-compose.sh.j2
copy:
src: docker-compose.sh
dest: /usr/local/bin/docker-compose.sh
tags:
- install
- name: Set permissions of docker-compose.sh
file:
@@ -37,12 +45,16 @@
template:
src: docker-compose.yml.j2
dest: /home/mastodon/live/docker-compose.yml
tags:
- configure
notify: "docker-compose up"
- name: Install feed rebuild script
template:
src: feeds-build.sh.j2
dest: /usr/local/bin/feeds-build.sh
tags:
- install
- name: Set permission of feeds-build.sh
file:
@@ -54,4 +66,4 @@
when: RUN_REDIS is defined and RUN_REDIS
- import_tasks: maintenance.yml
when: ansible_hostname == MAINTENANCE_HOST
when: RUN_CRONS is defined and RUN_CRONS
+31 -2
View File
@@ -1,8 +1,19 @@
---
- name: Install storage trimmer
template:
src: trim_storage.sh.j2
copy:
src: trim_storage.sh
dest: /usr/local/bin/trim_storage.sh
tags:
- install
register: trim_storage
- name: Set permissions on trim_storage.sh
file:
path: /usr/local/bin/trim_storage.sh
mode: '0755'
tags:
- install
when: trim_storage.changed
- name: Create cronjob for trimming storage
ansible.builtin.cron:
@@ -10,3 +21,21 @@
job: /usr/local/bin/trim_storage.sh
minute: "0"
hour: "*/6"
tags:
- configure
- name: Install image puller
copy:
src: pull-images.sh
dest: /usr/local/bin/pull-images.sh
tags:
- install
register: pull_images
- name: Set permissions on pull-images.sh
file:
path: /usr/local/bin/pull-images.sh
mode: '0755'
tags:
- install
when: pull_images.changed
+9
View File
@@ -2,17 +2,26 @@
sysctl:
name: vm.overcommit_memory
value: '1'
tags:
- redis
- name: Install system redis
package:
name: redis-server
state: present
tags:
- install
- redis
- name: Set redis.conf
copy:
dest: /etc/redis/redis.conf
src: redis-6.conf
register: service_conf
tags:
- install
- configure
- redis
- name: Restart redis
service:
-1
View File
@@ -4,4 +4,3 @@
repo: https://github.com/mastodon/mastodon.git
dest: /home/mastodon/live
version: "{{ MASTODON_VERSION }}"
-2
View File
@@ -1,3 +1 @@
---
dependencies:
- role: mastodon
+4 -1
View File
@@ -1,6 +1,9 @@
---
- name: Configure docker-compose.override.yml
template:
src: docker-compose.override.yml.j2
src: docker-compose.sidekiq.yml.j2
dest: /home/mastodon/live/docker-compose.sidekiq.yml
notify: "docker-compose up"
tags:
- configure
- sidekiq
-3
View File
@@ -1,4 +1 @@
---
dependencies:
- role: geerlingguy.nginx
- role: mastodon
+3
View File
@@ -4,3 +4,6 @@
src: docker-compose.override.yml.j2
dest: /home/mastodon/live/docker-compose.webapp.yml
notify: "docker-compose up"
tags:
- configure
- webapp