continuwuity/servers/ansible/playbook.yaml
2024-12-16 02:12:43 +00:00

153 lines
No EOL
5.2 KiB
YAML

- name: My first play
hosts: personal
tasks:
- name: Ping my hosts
ansible.builtin.ping:
- name: Print message
ansible.builtin.debug:
msg: Hello world
# - name: Copy conduwuit backup
# ansible.posix.synchronize:
# src: ./conduwuit-testing
# dest: /var/opt/
- name: Enable netavark dhcp daemon
ansible.builtin.systemd:
name: netavark-dhcp-proxy.socket
enabled: true
state: started
- name: Copy containers
ansible.posix.synchronize:
src: ../containers/
dest: /etc/containers/systemd
delete: true # Remove retired containers
- name: Reload systemd generators
ansible.builtin.command: sudo systemctl daemon-reload
- name: Install logrotate
ansible.builtin.package:
name: logrotate
state: present
- name: Copy logrotate config
ansible.posix.synchronize:
src: ../logrotate.d/
dest: /etc/logrotate.d
- name: find files with possible suspect line endings or perms
ansible.builtin.find:
paths: /etc/logrotate.d
patterns: '*'
register: output
- name: fix suspect line endings
replace: path={{item.path}} regexp="\r"
with_items: "{{ output.files }}"
- name: fix logrotate permissions
file: path={{item.path}} mode=644 owner=root group=root
with_items: "{{ output.files }}"
become: true
- name: Copy traefik config
ansible.posix.synchronize:
src: ../traefik/
dest: /etc/traefik
- name: Creates traefik state directory
file:
path: /var/srv/traefik
state: directory
- name: Creates traefik log directory
file:
path: /var/log/traefik
state: directory
- name: Copy kanidm config
ansible.posix.synchronize:
src: ../kanidm/
dest: /etc/kanidm
- name: Make kanidm entrypoint executable
file: dest=/etc/kanidm/entrypoint.sh mode=a+x
- name: make sure line endings are correct
replace: dest=/etc/kanidm/entrypoint.sh regexp="\r"
- name: Creates kanidm data directory
file:
path: /var/opt/kanidm_data
state: directory
# - name: Generate Element Web config
# # run on localhost
# local_action: ansible.builtin.command cd ../element-web && node config.js
- name: Copy Element Web config
ansible.posix.synchronize:
src: ../element-web/public/
dest: /etc/element-web
- name: Copy homepage config
ansible.posix.synchronize:
src: ../homepage/
dest: /etc/homepage
- name: Copy sentry relay config
ansible.posix.synchronize:
src: ../sentry-relay/
dest: /etc/sentry-relay
- name: Creates stalwart mail data directory
file:
path: /var/opt/stalwart-mail
state: directory
- name: Copy stalwart config
ansible.posix.synchronize:
src: ../stalwart/
dest: /etc/stalwart
- name: Copy coturn config
ansible.posix.synchronize:
src: ../coturn/
dest: /etc/coturn
# Pull mautrix config:
# rsync --rsync-path="sudo rsync" -r -t -z -P --include "*/" --include="*.yaml" --exclude="*" ansible@213.32.25.24:/var/opt/mautrix/ ./mautrix
- name: Copy mautrix config
ansible.posix.synchronize:
src: ../mautrix/
dest: /var/opt/mautrix
recursive: true
delete: false # Explicitly don't delete, we have databases here
rsync_opts: # Only sync YAML files
- --include="*/"
- --include="*.yaml"
- --exclude="*"
# Reregister appservices:
# ls | filter {|n| $n.type == "dir" } | each {|n| open --raw ("./" + $n.name + "/registration.yaml")} | each {|as| nu ~\Code\scripts\scripts\matrix.nu send_message "https://matrix.ellis.link" $env.MATRIX_TOKEN "!1al3YiWSKCq0tASeCX%3Aellis.link" ({
# "msgtype":"m.text",
# "body":$"!admin appservices register\n\n```\n($as)\n```",
# "format":"org.matrix.custom.html",
# "formatted_body":$"<p>!admin appservices register</p>\n<pre><code>($as)\n</code></pre>\n",
# "m.mentions":{}
# } | to json) }
- name: Creates freshrss data directory
file:
path: /var/opt/freshrss
state: directory
- name: Creates freshrss extensions directory
file:
path: /var/opt/freshrss-extensions
state: directory
- name: Copy freshrss config
ansible.posix.synchronize:
src: ../freshrss/
dest: /etc/freshrss
- name: Creates matrix-sed bot state directory
file:
path: /var/opt/matrix-sed
state: directory
- name: Creates uptime-kuma state directory
file:
path: /var/opt/uptime-kuma
state: directory
- name: Creates autokuma state directory
file:
path: /var/opt/autokuma
state: directory
# - name: install linux-system-roles
# package:
# name: linux-system-roles
# state: present
# delegate_to: 127.0.0.1
# become: true
# - name: run kdump system role
# include_role:
# name: linux-system-roles.kdump
# vars:
# kdump_path: /var/crash
# kdump_core_collector: makedumpfile -l --message-level 7 -d 31