Compare commits

..

No commits in common. "linting" and "main" have entirely different histories.

41 changed files with 235 additions and 249 deletions

View file

@ -1,14 +0,0 @@
#warn_list: # or 'skip_list' to silence them completely
skip_list:
- experimental
- var-naming[no-role-prefix]
- name
warn_list:
- '204' # Lines should be no longer than 160 chars
- no-handler
- ignore-errors
- fqcn-builtins
- fqcn
- partial-become[task]
- template-instead-of-copy
offline: true

3
.gitignore vendored
View file

@ -1,3 +0,0 @@
.password-store
.gitignore
.envrc

View file

@ -15,8 +15,3 @@ rules:
max-spaces-after: -1
commas:
max-spaces-after: -1
comments:
min-spaces-from-content: 1
octal-values:
forbid-implicit-octal: true
forbid-explicit-octal: true

View file

@ -1,79 +1,66 @@
---
- name: common
hosts: all
- hosts: all
gather_facts: true
roles:
- { role: "common", tags: ["common"] }
- { role: "nft", tags: ["nft"] }
- name: bank
hosts: bank
- hosts: bank
roles:
- { role: "bank", tags: ["bank"] }
- name: homeassistant
hosts: homeassistant
- hosts: homeassistant
roles:
- { role: "acme", tags: ["acme"] }
- { role: "nginx", tags: ["nginx"] }
- name: raspi
hosts: raspi
- hosts: raspi
roles:
- { role: "raspi", tags: ["raspi"] }
- { role: "bank-terminal", tags: ["bank-terminal"] }
- name: fotos
hosts: fotos
- hosts: fotos
roles:
- { role: "photos", tags: ["photos"] }
- name: CI
hosts: git-ci
- hosts: git-ci
roles:
- { role: "git-ci", tags: ["git-ci"] }
- name: git
hosts: git
- hosts: git
roles:
- { role: "acme", tags: ["acme"] }
- { role: "nginx", tags: ["nginx"] }
- { role: "git-server", tags: ["git-server"] }
- name: monitoring
hosts: monitoring
- hosts: monitoring
roles:
- { role: "acme", tags: ["acme"] }
- { role: "nginx", tags: ["nginx"] }
- { role: "monitoring", tags: ["monitoring"] }
- name: mqtt
hosts: mqtt
- hosts: mqtt
roles:
- { role: "mqtt", tags: ["mqtt"] }
- name: music
hosts: music
- hosts: music
roles:
- { role: "acme", tags: ["acme"] }
- { role: "go", tags: ["go"] }
- { role: "music", tags: ["music"] }
- name: pad
hosts: pad
- hosts: pad
roles:
- { role: "acme", tags: ["acme"] }
- { role: "nginx", tags: ["nginx"] }
- { role: "etherpad", tags: ["etherpad"] }
- name: services
hosts: services
- hosts: services
roles:
- { role: "services", tags: ["services"] }
- name: wiki
hosts: wiki
- hosts: wiki
roles:
- { role: "acme", tags: ["acme"] }
- { role: "nginx", tags: ["nginx"] }

View file

@ -1,6 +1,5 @@
#!/bin/bash
j2lint `find ./ -type f -name '*.j2'`
yamllint -c .yamllint.yaml .
ansible-lint bitlair.yaml

View file

@ -1,5 +1,9 @@
---
- name: update_contact_info
ansible.builtin.command:
cmd: dehydrated --account
- name: run dehydrated
ansible.builtin.command:
cmd: dehydrated --cron

View file

@ -4,11 +4,11 @@
block:
- name: Add user
ansible.builtin.user:
name: "bank-terminal"
home: "/home/{{ bank_terminal_user }}"
shell: "/home/{{ bank_terminal_user }}/login"
name: bank-terminal
home: /home/{{ bank_terminal_user }}
shell: /home/{{ bank_terminal_user }}/login
generate_ssh_key: yes
ssh_key_type: "ed25519"
ssh_key_type: ed25519
- name: Locate agetty
ansible.builtin.command:
@ -16,35 +16,34 @@
register: agetty_location_cmd
- name: Set agetty var
ansible.builtin.set_fact:
agetty_location: "{{ agetty_location_cmd.stdout_lines | join }}"
ansible.builtin.set_fact: agetty_location="{{ agetty_location_cmd.stdout_lines | join }}"
- name: Install login script
ansible.builtin.template:
src: "login"
dest: "/home/{{ bank_terminal_user }}/login"
owner: "bank-terminal"
group: "bank-terminal"
mode: "0755"
src: login
dest: /home/{{ bank_terminal_user }}/login
owner: bank-terminal
group: bank-terminal
mode: 0755
- name: Autologin User
ansible.builtin.template:
src: "tty_autologin.conf"
dest: "/etc/systemd/system/getty@tty1.service.d/override.conf"
owner: "root"
group: "root"
mode: "0644"
src: tty_autologin.conf
dest: /etc/systemd/system/getty@tty1.service.d/override.conf
owner: root
group: root
mode: 0644
notify: daemon_reload
- name: Clear MOTD
ansible.builtin.copy:
content: ""
dest: "/etc/motd"
dest: /etc/motd
# Set console font so the Revbank QR codes are rendered correctly.
- name: Console setup
ansible.builtin.lineinfile:
path: "/etc/default/console-setup"
path: /etc/default/console-setup
line: '{{ item.k }}="{{ item.v }}"'
regexp: "^#?{{ item.k }}"
with_items:
@ -57,8 +56,8 @@
- name: Console Setup Management Note
ansible.builtin.lineinfile:
path: "/etc/default/console-setup"
line: "# Managed by Ansible"
path: /etc/default/console-setup
line: '# Managed by Ansible'
insertafter: "CONFIGURATION FILE"
- name: Read pubkey

View file

@ -41,14 +41,14 @@
- name: Create getty dir
ansible.builtin.file:
path: "/etc/systemd/system/getty@tty1.service.d"
path: /etc/systemd/system/getty@tty1.service.d
state: directory
- name: Autologin User
ansible.builtin.template:
src: "tty_autologin.conf"
dest: "/etc/systemd/system/getty@tty1.service.d/override.conf"
owner: "root"
group: "root"
mode: "0644"
src: tty_autologin.conf
dest: /etc/systemd/system/getty@tty1.service.d/override.conf
owner: root
group: root
mode: 0644
notify: daemon reload

View file

@ -23,18 +23,18 @@
ansible.builtin.template:
src: revbank-deposit.conf
dest: /etc/revbank-deposit.conf
owner: "root"
group: "root"
mode: "0600"
owner: root
group: root
mode: 0600
notify: Restart revbank-deposit
- name: Install revbank-deposit service
ansible.builtin.template:
src: revbank-deposit.service
dest: /etc/systemd/system/revbank-deposit.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart revbank-deposit
- name: Start revbank-deposit
@ -44,4 +44,4 @@
state: started
enabled: true
- ansible.builtin.meta: flush_handlers
- meta: flush_handlers

View file

@ -26,7 +26,7 @@
state: touch
owner: "{{ bank_user }}"
group: "{{ bank_user }}"
mode: "0644"
mode: 0644
with_items:
- revbank.accounts
- revbank.market

View file

@ -4,9 +4,9 @@
ansible.builtin.template:
src: stable-sources.list
dest: /etc/apt/sources.list
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
- name: Remove backports
ansible.builtin.file:

View file

@ -30,7 +30,7 @@
ansible.builtin.template:
src: authorized_keys.j2
dest: /root/.ssh/authorized_keys
mode: "0600"
mode: 0600
when: root_access is defined and root_access
tags: authorized_keys

View file

@ -28,9 +28,9 @@
ansible.builtin.template:
src: network-interfaces
dest: /etc/network/interfaces
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
when: network_br or network_dhcp or network_static
- ansible.builtin.meta: flush_handlers

View file

@ -19,13 +19,20 @@
- name: Install nodesource source list
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ item.owner | default('root') }}"
group: "{{ item.group | default('root') }}"
with_items:
- { src: "nodesource.list", dest: "/etc/apt/sources.list.d/nodesource.list" }
- { src: "nodejs-apt-pref", dest: "/etc/apt/preferences.d/nodejs" }
src: nodesource.list
dest: /etc/apt/sources.list.d/nodesource.list
owner: root
group: root
mode: 0644
notify: Apt update
- name: Install nodejs apt preference
ansible.builtin.template:
src: nodejs-apt-pref
dest: /etc/apt/preferences.d/nodejs
owner: root
group: root
mode: 0644
notify: Apt update
- ansible.builtin.meta: flush_handlers
@ -60,17 +67,17 @@
ansible.builtin.file:
path: /var/log/etherpad.log
state: touch
owner: "etherpad"
group: "etherpad"
mode: "0644"
owner: etherpad
group: etherpad
mode: 0644
- name: Create source directory
ansible.builtin.file:
path: /opt/etherpad
state: directory
owner: "etherpad"
group: "etherpad"
mode: "0755"
owner: etherpad
group: etherpad
mode: 0755
- name: Clone etherpad source
become: yes
@ -87,18 +94,18 @@
ansible.builtin.template:
src: settings.json
dest: /opt/etherpad/settings.json
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart etherpad
- name: Install etherpad service
ansible.builtin.template:
src: etherpad.service
dest: /etc/systemd/system/etherpad.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart etherpad
- name: Start etherpad
@ -112,8 +119,8 @@
ansible.builtin.template:
src: nginx-site.conf
dest: /etc/nginx/sites-enabled/etherpad
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Reload nginx

View file

@ -8,16 +8,16 @@
ansible.builtin.get_url:
url: "https://code.forgejo.org/forgejo/runner/releases/download/v{{ runner_version }}/forgejo-runner-{{ runner_version }}-linux-amd64"
dest: /usr/local/bin/forgejo-runner
mode: "0755"
mode: 0755
notify: restart forgejo-runner
- name: Create runner dir
ansible.builtin.file:
state: directory
path: "{{ runner_wd }}"
owner: "root"
group: "root"
mode: "0755"
owner: root
group: root
mode: 0755
- name: Register runner
ansible.builtin.command: "forgejo-runner register --no-interactive --instance={{ forgejo_url }} --token={{ lookup('passwordstore', 'git/ci subkey=runner_token') }}"
@ -29,9 +29,9 @@
ansible.builtin.template:
src: forgejo-runner.service
dest: /etc/systemd/system/forgejo-runner.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: restart forgejo-runner
- name: Enable service

View file

@ -11,9 +11,9 @@
ansible.builtin.template:
src: nginx-site.conf
dest: /etc/nginx/sites-available/forgejo
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Reload nginx
- name: Enable nginx site
@ -36,7 +36,7 @@
path: /var/log/forgejo
owner: "{{ git_server_user }}"
group: "{{ git_server_user }}"
mode: "0755"
mode: 0755
# TODO: Install initial config
@ -44,9 +44,9 @@
ansible.builtin.template:
src: forgejo.service
dest: /etc/systemd/system/forgejo.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Reload forgejo
- name: Install update script
@ -55,7 +55,7 @@
dest: "{{ git_server_working_dir }}/update.sh"
owner: "{{ git_server_user }}"
group: "{{ git_server_user }}"
mode: "0755"
mode: 0755
- name: Perform initial update
ansible.builtin.command: "{{ git_server_working_dir }}/update.sh"

View file

@ -48,17 +48,17 @@
src: https://go.dev/dl/go{{ go_latest_version }}.linux-{{ go_arch }}.tar.gz
dest: /usr/local
remote_src: yes
owner: "root"
group: "root"
owner: root
group: root
when: go_installed_version != go_latest_version
- name: Configure Go environment
ansible.builtin.template:
src: go.profile
dest: /etc/profile.d/go.sh
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
- name: Link go binary
ansible.builtin.file:

View file

@ -21,9 +21,9 @@
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: restart grafana
with_items:
- { src: grafana.ini, dest: /etc/grafana/grafana.ini }
@ -33,9 +33,9 @@
ansible.builtin.template:
src: grafana-data-source.yml
dest: "/etc/grafana/provisioning/datasources/{{ item.name | lower }}.yaml"
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: restart grafana
with_items:
- name: Prometheus

View file

@ -4,9 +4,9 @@
ansible.builtin.template:
src: nginx-site.conf
dest: /etc/nginx/sites-available/monitoring
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Reload nginx
- name: Enable nginx site

View file

@ -20,9 +20,9 @@
ansible.builtin.template:
src: mqtt_exporter.service
dest: /etc/systemd/system/mqtt_exporter.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify:
- Daemon reload
- restart mqtt_exporter
@ -31,9 +31,9 @@
ansible.builtin.template:
src: mqtt_exporter_config.yaml
dest: /etc/mqtt_exporter.yaml
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify:
- Daemon reload
- restart mqtt_exporter

View file

@ -7,9 +7,9 @@
ansible.builtin.template:
src: prometheus.yml
dest: "{{ prometheus_config_dir }}/prometheus.yml"
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: restart prometheus
- name: Configure Prometheus args

View file

@ -16,9 +16,9 @@
ansible.builtin.template:
src: "{{ item }}"
dest: "/etc/mosquitto/conf.d/{{ item }}"
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: restart mosquitto
with_items:
- bambulab.conf

View file

@ -18,9 +18,9 @@
ansible.builtin.template:
src: librespot.service
dest: /etc/systemd/system/librespot.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart librespot
- name: Enable Librespot

View file

@ -28,7 +28,7 @@
ansible.builtin.template:
src: nginx-site.conf
dest: /etc/nginx/sites-enabled/trollibox
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Reload nginx

View file

@ -13,18 +13,18 @@
ansible.builtin.template:
src: mpd-volume-to-mqtt.sh
dest: /opt/mpd-volume-to-mqtt.sh
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart mpd-volume-to-mqtt
- name: Install mpd-volume-to-mqtt service
ansible.builtin.template:
src: mpd-volume-to-mqtt.service
dest: /etc/systemd/system/mpd-volume-to-mqtt.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart mpd-volume-to-mqtt
- name: Enable mpd-volume-to-mqtt
@ -46,9 +46,9 @@
ansible.builtin.template:
src: skipbutton.service
dest: /etc/systemd/system/skipbutton.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart skipbutton
- name: Enable skipbutton

View file

@ -28,18 +28,18 @@
ansible.builtin.template:
src: soundboard.yaml
dest: /etc/soundboard.yaml
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart soundboard
- name: Install soundboard service file
ansible.builtin.template:
src: soundboard.service
dest: /etc/systemd/system/soundboard.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart soundboard
- name: Enable soundboard

View file

@ -3,8 +3,8 @@
ansible.builtin.template:
src: trollibox.yaml
dest: /etc/trollibox.yaml
owner: "root"
group: "root"
owner: root
group: root
mode: "0644"
notify: Restart trollibox
@ -32,8 +32,8 @@
ansible.builtin.template:
src: trollibox.service
dest: /etc/systemd/system/trollibox.service
owner: "root"
group: "root"
owner: root
group: root
mode: "0644"
notify: Restart trollibox

View file

@ -5,16 +5,28 @@
- name: Install fetch script
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ item.owner | default('root') }}"
group: "{{ item.group | default('root') }}"
mode: "{{ item.mode | default('0644') }}"
force: "{{ item.force | default('yes') }}"
with_items:
- { src: "bambulab-fetch.sh", dest: "/opt/bambulab-fetch.sh", mode: "0755" }
- { src: "bambulab-fetch.service", dest: "/etc/systemd/system/bambulab-fetch.service" }
- { src: "bambulab-fetch.timer", dest: "/etc/systemd/system/bambulab-fetch.timer" }
src: bambulab-fetch.sh
dest: /opt/bambulab-fetch.sh
owner: root
group: root
mode: 0755
- name: Install service
ansible.builtin.template:
src: bambulab-fetch.service
dest: /etc/systemd/system/bambulab-fetch.service
owner: root
group: root
mode: 0644
notify: daemon reload
- name: Install timer
ansible.builtin.template:
src: bambulab-fetch.timer
dest: /etc/systemd/system/bambulab-fetch.timer
owner: root
group: root
mode: 0644
notify: daemon reload
- name: Enable timer

View file

@ -15,18 +15,18 @@
ansible.builtin.template:
src: photo-gallery-config.json
dest: /opt/photo-gallery/config.json
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: restart photo-gallery
- name: Install photo-gallery service file
ansible.builtin.template:
src: photo-gallery.service
dest: /etc/systemd/system/photo-gallery.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: restart photo-gallery
- name: Start photo-gallery

View file

@ -14,18 +14,18 @@
ansible.builtin.template:
src: photos2mqtt.pl
dest: /opt/photos2mqtt.pl
owner: "root"
group: "root"
mode: "0755"
owner: root
group: root
mode: 0755
notify: restart photos2mqtt
- name: Install photos2mqtt service file
ansible.builtin.template:
src: photos2mqtt.service
dest: /etc/systemd/system/photos2mqtt.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: restart photos2mqtt
- name: Start photos2mqtt

View file

@ -32,8 +32,8 @@
ansible.builtin.template:
src: discord-bot.service
dest: /etc/systemd/system/discord-bot.service
owner: "root"
group: "root"
owner: root
group: root
mode: "0644"
notify: Restart discord-bot

View file

@ -18,9 +18,9 @@
ansible.builtin.template:
src: generic.service
dest: /etc/systemd/system/irc-bot.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
vars:
description: Bitlair IRC bot
exec: /bin/bash /var/lib/irc-bot/irc-bot
@ -42,18 +42,18 @@
ansible.builtin.template:
src: irc-photos.sh
dest: /var/lib/irc-helpers/photos.sh
owner: "root"
group: "root"
mode: "0755"
owner: root
group: root
mode: 0755
notify: Restart irc-photos
- name: Install photos notification service
ansible.builtin.template:
src: generic.service
dest: /etc/systemd/system/irc-photos.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
vars:
description: Bitlair IRC photos notification
requires: irc-bot.service
@ -71,18 +71,18 @@
ansible.builtin.template:
src: irc-doorduino.sh
dest: /var/lib/irc-helpers/doorduino.sh
owner: "root"
group: "root"
mode: "0755"
owner: root
group: root
mode: 0755
notify: Restart irc-doorduino
- name: Install doorduino notification service
ansible.builtin.template:
src: generic.service
dest: /etc/systemd/system/irc-doorduino.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
vars:
description: Bitlair IRC doorduino notification
requires: irc-bot.service

View file

@ -18,18 +18,18 @@
ansible.builtin.template:
src: mastodon-spacestate-config.py
dest: /var/lib/mastodon-spacestate/config.py
owner: "root"
group: "root"
mode: "0655"
owner: root
group: root
mode: 0655
notify: Restart mastodon-spacestate
- name: Install service file
ansible.builtin.template:
src: mastodon-spacestate.service
dest: /etc/systemd/system/mastodon-spacestate.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart mastodon-spacestate
- name: Start mastodon-spacestate

View file

@ -7,9 +7,9 @@
ansible.builtin.template:
src: power-mqtt.py
dest: /var/lib/power-mqtt.py
owner: "root"
group: "root"
mode: "0755"
owner: root
group: root
mode: 0755
notify: Restart power-mqtt
- name: Remove old service
@ -21,9 +21,9 @@
ansible.builtin.template:
src: generic.service
dest: /etc/systemd/system/power-mqtt@.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
vars:
description: "SMD630 to MQTT Probe"
exec: "/var/lib/power-mqtt.py %i"

View file

@ -16,8 +16,8 @@
ansible.builtin.template:
src: siahsd.conf
dest: /etc/siahsd.conf
owner: "root"
group: "root"
owner: root
group: root
mode: "0644"
notify: Restart siahsd
@ -25,8 +25,8 @@
ansible.builtin.template:
src: siahsd.service
dest: /etc/systemd/system/siahsd.service
owner: "root"
group: "root"
owner: root
group: root
mode: "0644"
notify: Restart siahsd

View file

@ -32,9 +32,9 @@
ansible.builtin.template:
src: spacestated.service
dest: /etc/systemd/system/spacestated.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify: Restart spacestated
- name: Start spacestated

View file

@ -19,8 +19,8 @@
ansible.builtin.template:
src: wifi-mqtt.service
dest: /etc/systemd/system/wifi-mqtt.service
owner: "root"
group: "root"
owner: root
group: root
mode: "0644"
notify: Restart wifi-mqtt

View file

@ -19,6 +19,6 @@
ansible.builtin.template:
src: calendar.cron
dest: /etc/cron.d/bitlair-calendar
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644

View file

@ -9,7 +9,7 @@
ansible.builtin.template:
src: security.txt
dest: /opt/security.txt
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644

View file

@ -24,9 +24,9 @@
ansible.builtin.template:
src: mqtt2web.service
dest: /etc/systemd/system/mqtt2web.service
owner: "root"
group: "root"
mode: "0644"
owner: root
group: root
mode: 0644
notify:
- Daemon reload
- Restart mqtt2web

View file

@ -11,8 +11,8 @@
ansible.builtin.template:
src: spaceapi.service
dest: /etc/systemd/system/spaceapi.service
owner: "root"
group: "root"
owner: root
group: root
mode: "0644"
notify: Restart spaceapi