mirror of
https://gitlab.sectorq.eu/jaydee/ansible.git
synced 2025-07-01 23:48:32 +02:00
Compare commits
64 Commits
9eb9fb6190
...
main
Author | SHA1 | Date | |
---|---|---|---|
3732db698e | |||
42fdd319a3 | |||
47e730ef60 | |||
ddee60ab9c | |||
41bd0fbe73 | |||
dac032de7c | |||
899d130325 | |||
8e7fb3bc42 | |||
46da0fa6e9 | |||
2f3f58c965 | |||
264f510541 | |||
b01bdb59f1 | |||
644d8b1a59 | |||
230c665365 | |||
6a0f33c73f | |||
026925081e | |||
5426f7ae3d | |||
d255ad37ad | |||
89030dec11 | |||
6df5f17cfe | |||
ff8ebb3940 | |||
6a720e2e89 | |||
02dc0134c4 | |||
e7fb37545f | |||
5927ad571e | |||
9871b8cb29 | |||
6de27cd975 | |||
d2c7c49d68 | |||
9e3ce2e113 | |||
bb248011ad | |||
4a7838cd19 | |||
9a21d1c273 | |||
2b4421d92d | |||
8c88139223 | |||
a2825f31c3 | |||
024a3bb61f | |||
9bc4c937de | |||
f339cb755a | |||
5ab8d6cf02 | |||
153c3a5d1a | |||
f18365f184 | |||
e6ab9ac621 | |||
c2ba911536 | |||
9be37d9ad5 | |||
80ddec608a | |||
24191afe3d | |||
4c1e374f23 | |||
eaa4ecd07a | |||
d4ee9dc3eb | |||
16414f9bc4 | |||
04eb197989 | |||
5957435c36 | |||
b3de421b3a | |||
977c9ca44e | |||
e15b4ec2a8 | |||
365a045d4d | |||
0c730c0b65 | |||
83f37fc18a | |||
378d2ee456 | |||
7632faae6e | |||
2285c420ec | |||
187c422759 | |||
b2b98ef238 | |||
5fd82279f1 |
9
.gitea/workflows/demo.yaml
Normal file
9
.gitea/workflows/demo.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
name: Gitea Actions Demo
|
||||||
|
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Explore-Gitea-Actions:
|
||||||
|
runs-on: jaydee
|
||||||
|
steps:
|
||||||
|
- run: curl -X GET https://kestra.sectorq.eu/api/v1/executions/webhook/jaydee/ansible-all/f851511c32ca9450
|
40
all.yml
40
all.yml
@ -1,33 +1,67 @@
|
|||||||
- hosts: datacenter
|
- hosts: datacenter
|
||||||
name: Roles
|
name: Roles
|
||||||
|
gather_facts: false
|
||||||
roles:
|
roles:
|
||||||
|
- name: setup
|
||||||
|
role: setup
|
||||||
|
tags: setup
|
||||||
- name: common
|
- name: common
|
||||||
tags: common
|
tags: common
|
||||||
|
role: common
|
||||||
|
- name: hosts
|
||||||
|
role: hosts
|
||||||
|
tags: hosts
|
||||||
|
- name: ssh_config
|
||||||
|
role: ssh_config
|
||||||
|
tags: ssh_config
|
||||||
|
- name: sshd_config
|
||||||
|
role: sshd_config
|
||||||
|
tags: sshd_config
|
||||||
|
- name: ssh_keys
|
||||||
|
role: ssh_keys
|
||||||
|
tags: ssh_keys
|
||||||
- name: wake_on_lan
|
- name: wake_on_lan
|
||||||
|
role: wake_on_lan
|
||||||
tags: wake_on_lan
|
tags: wake_on_lan
|
||||||
- name: matter-server
|
- name: matter-server
|
||||||
|
role: matter-server
|
||||||
tags: matter-server
|
tags: matter-server
|
||||||
- name: docker
|
- name: docker
|
||||||
|
role: docker
|
||||||
tags: docker
|
tags: docker
|
||||||
- name: timeshift
|
- name: timeshift
|
||||||
|
role: timeshift
|
||||||
tags: timeshift
|
tags: timeshift
|
||||||
- name: monitoring
|
- name: monitoring
|
||||||
|
role: monitoring
|
||||||
tags: monitoring
|
tags: monitoring
|
||||||
- name: zabbix-agent
|
- name: zabbix-agent
|
||||||
|
role: zabbix-agent
|
||||||
tags: zabbix-agent
|
tags: zabbix-agent
|
||||||
- name: autofs_client
|
- name: autofs_client
|
||||||
|
role: autofs_client
|
||||||
tags: autofs_client
|
tags: autofs_client
|
||||||
- name: ldap_client
|
- name: ldap_client
|
||||||
|
role: ldap_client
|
||||||
tags: ldap_client
|
tags: ldap_client
|
||||||
- name: ssh_banner
|
- name: ssh_banner
|
||||||
|
role: ssh_banner
|
||||||
tags: ssh_banner
|
tags: ssh_banner
|
||||||
- name: omv_backup
|
- name: omv_backup
|
||||||
|
role: omv_backup
|
||||||
tags: omv_backup
|
tags: omv_backup
|
||||||
- name: wazuh-agent
|
- name: wazuh-agent
|
||||||
|
role: wazuh-agent
|
||||||
tags: wazuh-agent
|
tags: wazuh-agent
|
||||||
- role: mqtt-srv
|
- name: mqtt-srv
|
||||||
|
role: mqtt-srv
|
||||||
tags: mqtt-srv
|
tags: mqtt-srv
|
||||||
- role: vnc_server
|
- name: vnc_server
|
||||||
|
role: vnc_server
|
||||||
tags: vnc_server
|
tags: vnc_server
|
||||||
- role: promtail
|
- name: promtail
|
||||||
|
role: promtail
|
||||||
tags: promtail
|
tags: promtail
|
||||||
|
- name: sudoers
|
||||||
|
role: sudoers
|
||||||
|
tags: sudoers
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
---
|
# requirements.yml
|
||||||
|
# ansible-galaxy collection install -r collections/requirements.yml --force
|
||||||
collections:
|
collections:
|
||||||
- name: community.general
|
- name: community.general
|
||||||
|
source: https://galaxy.ansible.com
|
||||||
|
- name: community.docker
|
||||||
|
1
hosts
1
hosts
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
# Ex 1: Ungrouped hosts, specify before any group headers.
|
# Ex 1: Ungrouped hosts, specify before any group headers.
|
||||||
|
|
||||||
|
|
||||||
#green.example.com
|
#green.example.com
|
||||||
#blue.example.com
|
#blue.example.com
|
||||||
#192.168.100.1
|
#192.168.100.1
|
||||||
|
32
jaydee.yml
32
jaydee.yml
@ -1,17 +1,17 @@
|
|||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
61323036366363323032396232663032666134316166633635316134623436303565316538333637
|
34653034626436373537323430316462643663336164613763306336333038346562356565393036
|
||||||
6138356462323362636265323030353439393233643032330a313763336632383432613830356136
|
3964393861323439333839383061303864326235306665620a346233313633393135366362326464
|
||||||
31353731646665373863666364363163633539313436643638663736393734363532363562353866
|
63643039363635646131323365313833643864373637346536663831613837353833343030623366
|
||||||
3333343966613162310a643534663838306435373630303337356331356164356463653863613363
|
3038303063393565350a613439646161363330626566646264313939653339383439623532636638
|
||||||
62663862376430383238616135383233313430323839613631633339373430353361326338303666
|
38646433353765396136333236656535636235313639393565306636376438346362646438613835
|
||||||
35316631363739313938613737656661366636613165643736343433646233666362363034333139
|
62663031333832666262616365343831353530646263383932373666386631633430626363363966
|
||||||
31646636663161313365373337333661373330386365306664306233343765636136393531643531
|
61396336303365306135363039303032646137613330646434366638633738363064356132383439
|
||||||
63653362323461313763653836663165383162363763396162393932653764646532313637656136
|
36346432306531356333313963353463626232613563653331396334656539643531343136636635
|
||||||
62313761386237326633653037636334343765383464333562326230323131306637323265373261
|
31613762383664353930653165313461626133336161353639303662666234356138373539376161
|
||||||
37316263613732333633636334363762383733646461653632363434386539303130626538616437
|
30653837316266356136353132373663396365633434393166383230363263326139316362383766
|
||||||
66306433353061323932383437373637613638643232363461316262346436366162316637306461
|
64303738393663343636616437346535346566346536616663333866613966343563306265633064
|
||||||
64336261613436323664643063616239636631343139636164633234613536633665643231346463
|
66333331393861626637616330333463636135316466616532373663663464613034656337363437
|
||||||
33343536373235303032373939353032666237663137353366326639613730393439353232303964
|
62653333653838326632643238616638313935383532303233643132303637653963626363633662
|
||||||
63623536666339333135643361636138303539613233326639623236323331336661353734373562
|
33646161373931386133353338643462306635393866656662376234396533376431366134653536
|
||||||
31633131383835323734646235363266666336343565623339373265623635323134333964353966
|
36363835346434323338363465336166303161633732333232653861646136326334616261653462
|
||||||
61623231323936643565
|
66376139313433383665
|
||||||
|
@ -4,54 +4,87 @@
|
|||||||
# vars:
|
# vars:
|
||||||
# DOCKER_IMAGE: docker-tasmota
|
# DOCKER_IMAGE: docker-tasmota
|
||||||
# FWS: tasmota
|
# FWS: tasmota
|
||||||
|
become: true
|
||||||
tasks:
|
tasks:
|
||||||
- name: Pull tasmota
|
- name: Change conf
|
||||||
ansible.builtin.shell:
|
community.general.git_config:
|
||||||
cmd: 'git config --global --add safe.directory /share/docker_data/docker-tasmota/Tasmota'
|
name: safe.director
|
||||||
|
scope: global
|
||||||
- name: Fetch tasmota
|
value: /share/docker_data/docker-tasmota/Tasmota
|
||||||
ansible.builtin.shell:
|
|
||||||
cmd: 'git fetch https://github.com/arendst/Tasmota.git {{ BRANCH }}'
|
|
||||||
chdir: /share/docker_data/docker-tasmota/Tasmota
|
|
||||||
|
|
||||||
- name: Checkout tasmota branch
|
# - name: Pull tasmota
|
||||||
ansible.builtin.shell:
|
# ansible.builtin.shell:
|
||||||
cmd: 'git checkout --force {{ BRANCH }}'
|
# cmd: 'git config --global --add safe.directory /share/docker_data/docker-tasmota/Tasmota'
|
||||||
chdir: /share/docker_data/docker-tasmota/Tasmota
|
|
||||||
|
|
||||||
- name: Pull tasmota
|
- name: Checkout a github repo and use refspec to fetch all pull requests
|
||||||
ansible.builtin.shell:
|
ansible.builtin.git:
|
||||||
cmd: 'git pull'
|
repo: 'https://github.com/arendst/Tasmota.git'
|
||||||
chdir: /share/docker_data/docker-tasmota/Tasmota
|
dest: /share/docker_data/docker-tasmota/Tasmota
|
||||||
|
version: '{{ BRANCH }}'
|
||||||
|
|
||||||
|
# - name: Fetch tasmota
|
||||||
|
# ansible.builtin.shell:
|
||||||
|
# cmd: 'git fetch https://github.com/arendst/Tasmota.git {{ BRANCH }}'
|
||||||
|
# chdir: /share/docker_data/docker-tasmota/Tasmota
|
||||||
|
|
||||||
|
|
||||||
|
- name: Git checkout
|
||||||
|
ansible.builtin.git:
|
||||||
|
repo: 'https://github.com/arendst/Tasmota.git'
|
||||||
|
dest: /share/docker_data/docker-tasmota/Tasmota
|
||||||
|
version: '{{ BRANCH }}'
|
||||||
|
|
||||||
|
# - name: Checkout tasmota branch
|
||||||
|
# ansible.builtin.shell:
|
||||||
|
# cmd: 'git checkout --force {{ BRANCH }}'
|
||||||
|
# chdir: /share/docker_data/docker-tasmota/Tasmota
|
||||||
|
- name: Just get information about the repository whether or not it has already been cloned locally
|
||||||
|
ansible.builtin.git:
|
||||||
|
repo: https://github.com/arendst/Tasmota.git
|
||||||
|
dest: /share/docker_data/docker-tasmota/Tasmota
|
||||||
|
update: true
|
||||||
|
|
||||||
|
# - name: Pull tasmota
|
||||||
|
# ansible.builtin.shell:
|
||||||
|
# cmd: 'git pull'
|
||||||
|
# chdir: /share/docker_data/docker-tasmota/Tasmota
|
||||||
|
|
||||||
- name: Copy platformio_override
|
- name: Copy platformio_override
|
||||||
ansible.builtin.shell:
|
ansible.builtin.command:
|
||||||
cmd: 'cp platformio_override.ini Tasmota/platformio_override.ini'
|
cmd: 'cp platformio_override.ini Tasmota/platformio_override.ini'
|
||||||
chdir: /share/docker_data/docker-tasmota/
|
chdir: /share/docker_data/docker-tasmota/
|
||||||
|
register: my_output
|
||||||
|
changed_when: my_output.rc != 0
|
||||||
|
|
||||||
- name: Copy user_config_override
|
- name: Copy user_config_override
|
||||||
ansible.builtin.shell:
|
ansible.builtin.command:
|
||||||
cmd: 'cp user_config_override.h Tasmota/tasmota/user_config_override.h'
|
cmd: 'cp user_config_override.h Tasmota/tasmota/user_config_override.h'
|
||||||
chdir: /share/docker_data/docker-tasmota/
|
chdir: /share/docker_data/docker-tasmota/
|
||||||
|
register: my_output
|
||||||
|
changed_when: my_output.rc != 0
|
||||||
|
|
||||||
- name: Build tasmota
|
- name: Build tasmota
|
||||||
ansible.builtin.shell:
|
ansible.builtin.command:
|
||||||
cmd: 'docker run --rm -v /share/docker_data/docker-tasmota/Tasmota:/tasmota -u $UID:$GID {{ DOCKER_IMAGE }} -e {{ FWS }}'
|
cmd: 'docker run --rm -v /share/docker_data/docker-tasmota/Tasmota:/tasmota -u 0:0 {{ DOCKER_IMAGE }} -e {{ FWS }}'
|
||||||
chdir: /share/docker_data/docker-tasmota/
|
chdir: /share/docker_data/docker-tasmota/
|
||||||
when: FWS != "all"
|
when: FWS != "all"
|
||||||
|
register: my_output
|
||||||
|
changed_when: my_output.rc != 0
|
||||||
|
|
||||||
- name: Build tasmota
|
- name: Build tasmota
|
||||||
ansible.builtin.shell:
|
ansible.builtin.command:
|
||||||
cmd: 'docker run --rm -v /share/docker_data/docker-tasmota/Tasmota:/tasmota -u $UID:$GID {{ DOCKER_IMAGE }}'
|
cmd: 'docker run --rm -v /share/docker_data/docker-tasmota/Tasmota:/tasmota -u 0:0 {{ DOCKER_IMAGE }}'
|
||||||
chdir: /share/docker_data/docker-tasmota/
|
chdir: /share/docker_data/docker-tasmota/
|
||||||
when: FWS == "all"
|
when: FWS == "all"
|
||||||
|
register: my_output
|
||||||
|
changed_when: my_output.rc != 0
|
||||||
|
|
||||||
- name: Create a directory if it does not exist
|
- name: Create a directory if it does not exist
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: /share/docker_data/webhub/fw/{{ BRANCH }}
|
path: /share/docker_data/webhub/fw/{{ BRANCH }}
|
||||||
state: directory
|
state: directory
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
|
|
||||||
- name: Build tasmota
|
- name: Build tasmota
|
||||||
ansible.builtin.shell:
|
ansible.builtin.shell:
|
||||||
cmd: 'mv /share/docker_data/docker-tasmota/Tasmota/build_output/firmware/* /share/docker_data/webhub/fw/{{ BRANCH }}'
|
cmd: 'mv /share/docker_data/docker-tasmota/Tasmota/build_output/firmware/* /share/docker_data/webhub/fw/{{ BRANCH }}/'
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
- hosts: nas
|
|
||||||
name: Sync mailu
|
|
||||||
ignore_unreachable: false
|
|
||||||
tasks:
|
|
||||||
- name: Syncing all
|
|
||||||
ansible.builtin.shell: 'rsync -avh --delete root@192.168.77.189:/srv/dev-disk-by-uuid-02fbe97a-cd9a-4511-8bd5-21f8516353ee/docker_data/latest/{{ CONTAINERS }} /share/docker_data/ --exclude="home-assistant.log*" --exclude="gitlab/logs/*"'
|
|
||||||
#ansible.builtin.shell: 'rsync -avh --delete /share/docker_data/{mailu2,webhub,nginx,heimdall} root@192.168.77.238:/share/docker_data/ --exclude="home-assistant.log*" --exclude="gitlab/logs/*"'
|
|
||||||
#ansible.builtin.shell: 'ls -la'
|
|
||||||
when: inventory_hostname in groups['nas']
|
|
||||||
# loop: '{{ CONTAINERS }}'
|
|
@ -1,83 +1,109 @@
|
|||||||
- block:
|
- name: Setup autofs
|
||||||
- name: include vault
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
ansible.builtin.include_vars:
|
block:
|
||||||
file: jaydee.yml
|
- name: Include vault
|
||||||
- name: Install autofs
|
ansible.builtin.include_vars:
|
||||||
ansible.builtin.apt:
|
file: jaydee.yml
|
||||||
name:
|
- name: Install autofs
|
||||||
- autofs
|
ansible.builtin.apt:
|
||||||
- cifs-utils
|
name:
|
||||||
state: present
|
- autofs
|
||||||
|
- cifs-utils
|
||||||
|
state: present
|
||||||
|
|
||||||
- name: Creating a file with content
|
- name: Creating a file with content
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: "/etc/auto.auth"
|
dest: "/etc/auto.auth"
|
||||||
content: |
|
content: |
|
||||||
username={{ samba_user }}
|
username={{ samba_user }}
|
||||||
password={{ samba_password }}
|
password={{ samba_password }}
|
||||||
|
mode: '0600'
|
||||||
- name: Creating a file with content
|
owner: root
|
||||||
copy:
|
group: root
|
||||||
dest: "/etc/auto.nas-movies"
|
- name: Creating a file with content
|
||||||
content: |
|
ansible.builtin.copy:
|
||||||
movies -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0777,file_mode=0777,uid=jd,rw ://nas.home.lan/movies
|
dest: "/etc/auto.m-server"
|
||||||
- name: Creating a file with content
|
content: |
|
||||||
copy:
|
docker_data -fstype=nfs m-server.home.lan:/share/docker_data
|
||||||
dest: "/etc/auto.nas-music"
|
downloads -fstype=nfs m-server.home.lan:/media/data/downloads
|
||||||
content: |
|
mode: '0600'
|
||||||
music -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0777,file_mode=0777,uid=jd,rw ://nas.home.lan/music
|
owner: root
|
||||||
- name: Creating a file with content
|
group: root
|
||||||
copy:
|
- name: Creating a file with content
|
||||||
dest: "/etc/auto.nas-shows"
|
ansible.builtin.copy:
|
||||||
content: |
|
dest: "/etc/auto.nas-movies"
|
||||||
shows -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0777,file_mode=0777,uid=jd,rw ://nas.home.lan/shows
|
content: |
|
||||||
|
movies -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/movies
|
||||||
- name: Creating a file with content
|
mode: '0600'
|
||||||
copy:
|
owner: root
|
||||||
dest: "/etc/auto.nas"
|
group: root
|
||||||
content: |
|
|
||||||
nas-data -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Data
|
|
||||||
nas-docker-data -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/docker_data
|
|
||||||
nas-photo -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Photo
|
|
||||||
nas-public -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Public
|
|
||||||
nas-install -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/install
|
|
||||||
nas-downloads -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/downloads
|
|
||||||
nas-games -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/qda_2
|
|
||||||
# - name: Reconfigure autofs Server
|
|
||||||
# ansible.builtin.lineinfile:
|
|
||||||
# path: /etc/auto.master
|
|
||||||
# regexp: "^/media/nas.*"
|
|
||||||
# insertafter: '^/media/nas'
|
|
||||||
# line: "/media/nas /etc/auto.nas --timeout 360 --ghost"
|
|
||||||
|
|
||||||
- name: Reconfigure autofs Server
|
- name: Creating a file with content
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.copy:
|
||||||
path: /etc/auto.master
|
dest: "/etc/auto.nas-music"
|
||||||
regexp: "^/media/data/music/nas.*"
|
content: |
|
||||||
line: /media/data/music/nas /etc/auto.nas-music --timeout 360 --ghost
|
music -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/music
|
||||||
- name: Reconfigure autofs Server
|
mode: '0600'
|
||||||
ansible.builtin.lineinfile:
|
owner: root
|
||||||
path: /etc/auto.master
|
group: root
|
||||||
regexp: "^/media/data/movies/nas.*"
|
|
||||||
line: /media/data/movies/nas /etc/auto.nas-movies --timeout 360 --ghost
|
- name: Creating a file with content
|
||||||
- name: Reconfigure autofs Server
|
ansible.builtin.copy:
|
||||||
ansible.builtin.lineinfile:
|
dest: "/etc/auto.nas-shows"
|
||||||
path: /etc/auto.master
|
content: |
|
||||||
regexp: "^/media/data/shows/nas.*"
|
shows -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/shows
|
||||||
line: /media/data/shows/nas /etc/auto.nas-shows --timeout 360 --ghost
|
mode: '0600'
|
||||||
- name: Reconfigure autofs Server
|
owner: root
|
||||||
ansible.builtin.lineinfile:
|
group: root
|
||||||
path: /etc/auto.master
|
|
||||||
line: /media/nas /etc/auto.nas --timeout 360 --ghost
|
- name: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/auto.nas"
|
||||||
|
content: |
|
||||||
|
nas-data -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Data
|
||||||
|
nas-docker-data -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/docker_data
|
||||||
|
nas-photo -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Photo
|
||||||
|
nas-public -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Public
|
||||||
|
nas-install -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/install
|
||||||
|
nas-downloads -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/downloads
|
||||||
|
nas-games -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/qda_2
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
# - name: Reconfigure autofs Server
|
||||||
|
# ansible.builtin.lineinfile:
|
||||||
|
# path: /etc/auto.master
|
||||||
|
# regexp: "^/media/nas.*"
|
||||||
|
# insertafter: '^/media/nas'
|
||||||
|
# line: "/media/nas /etc/auto.nas --timeout 360 --ghost"
|
||||||
|
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
regexp: "^/media/data/music/nas.*"
|
||||||
|
line: /media/data/music/nas /etc/auto.nas-music --timeout 360 --ghost
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
regexp: "^/media/data/movies/nas.*"
|
||||||
|
line: /media/data/movies/nas /etc/auto.nas-movies --timeout 360 --ghost
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
regexp: "^/media/data/shows/nas.*"
|
||||||
|
line: /media/data/shows/nas /etc/auto.nas-shows --timeout 360 --ghost
|
||||||
|
|
||||||
|
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
line: /media/nas /etc/auto.nas --timeout 360 --ghost
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
line: /media/m-server /etc/auto.m-server --timeout 360 --ghost
|
||||||
|
|
||||||
|
- name: Restart docker service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: autofs
|
||||||
|
state: restarted
|
||||||
- name: Restart docker service
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: autofs
|
|
||||||
state: restarted
|
|
||||||
become: true
|
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
- name: Upgrade the full OS
|
- name: Upgrade
|
||||||
ansible.builtin.apt:
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
upgrade: full
|
block:
|
||||||
become: true
|
- name: Upgrade the full OS
|
||||||
- name: Upgrade flatpack
|
ansible.builtin.apt:
|
||||||
ansible.builtin.command: flatpak update -y
|
update_cache: true
|
||||||
become: true
|
upgrade: full
|
||||||
when: inventory_hostname == 'morefine.home.lan'
|
- name: Upgrade flatpack
|
||||||
|
ansible.builtin.command: flatpak update -y
|
||||||
|
when: inventory_hostname == 'morefine.home.lan'
|
||||||
|
54
roles/docker/files/ca.pem
Normal file → Executable file
54
roles/docker/files/ca.pem
Normal file → Executable file
@ -1,33 +1,33 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
uUFBhdL6wpJ0oAps3A==
|
isOdaq7ol1Q0iF9tjQ==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
56
roles/docker/files/server-cert.pem
Normal file → Executable file
56
roles/docker/files/server-cert.pem
Normal file → Executable file
@ -1,32 +1,32 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
100
roles/docker/files/server-key.pem
Normal file → Executable file
100
roles/docker/files/server-key.pem
Normal file → Executable file
@ -1,52 +1,52 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
-----BEGIN PRIVATE KEY-----
|
||||||
MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDbW6s4J2hQ84FG
|
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQC3IKk8MFpynoh7
|
||||||
okHMSJyQ6+F1AoIJNxvEeXHLzSNHU9QOqZl6o+S0qvRAK1+e1vQ0f7822K7dlkEG
|
dWWUI6MmcP3Pw2z8EJwbkFYTRhekV+2qVz/3mOEn/P5dsumsGXerzOCchaJzxDW5
|
||||||
R7I98DnRAgAOYgjkBs4cAOzNYSwrP2+GW0UqlZB+yZT0fpR8/IcvSa6rPfa6NFmd
|
Zf3RFYBRD4MMIqomgQvT7mSGwutCy2MKQ1Jmh1zQHcYKIUljhHO7k9ZXFtsp+Z9Q
|
||||||
BQi9Dl6Ssf2CEs6GWU6/5GpuPnDoCM1g7EG7LSqBvsBkkJXMGN9JibzSkJjpENTQ
|
PdyaaDknG/3QJo1j1GFdwapyk7XKlbN2uUs1sZyKjrM1rfe0maUWNxliAIjphanC
|
||||||
L6/hflNvIMDA1jkUBR+wWqkTEej1hsHZX1U0Ta9byYjL8qA5n1J9GG4VjkaXVoR1
|
hOYC+xZEmjMkvNRP0H3Lf9+6OTh1qYgYcy2VMqKdXs/X+0a4A0cxKDZSYrFhWP8B
|
||||||
AlRoBB7Tmgu++Q8+Y4K/oLIR8lXkSyufPbGW52kiERP54e49da9y9UIc8A7wecaG
|
dMb5qMJLJS/ELGAU5H4KHz+3RJvDDp9ISThc7lGO+UwKfoesIi9G4U2m+FwzqxYx
|
||||||
q1gGbI5vxRUOAvTu+heJ/6O2v8bfWb67jN5iue+h7u7VTZcZ5X3v7Jlp8pMAPhzq
|
cuYr3oSAnQ0mpfiJTRJiPWbM4sv9YFu1lwjDIDlyp8V+7HtjhWxxgmn/TQp/tDgx
|
||||||
RuNr6iMfslXl3BUgSbDhxK/4ZZsz4l2tSyRyXkq768BSD+5FP83pv3yJZaFvC1tC
|
3r/WXg54uUkLIMg92Y8od5HOwGfezPIzSZQhm9kGiX/wRdkPRM20GB46K/e6//rT
|
||||||
RXOziD3cpZ677jXr+n0MpTBPs5woq+9zkrHGT0SamS/nG0hJwAHBvpi0Z5VQT0Jf
|
Hb2JGDaPfhWKCR98j/k9+/E5/gxXvCrYb26gkhdNbWg3X3EbtKfqjWpVZA9q3LaI
|
||||||
5ePmEc5zXNcQny3w9DAEotM533gfkjvYDGNln58XnbKyn7B4ZQu4hgpskjnLMiDo
|
SYIhLoc1SCKX6ntz/cjMswWIMKFzFCLYboOMDqPIBF8K+3IE0yvKcT0BpaNSS9Fr
|
||||||
lgeEtHTxi8bJ0GBubKad6N3uEYqew2HbLmWLPEER1+p8y/CkB7Gm57eaHjR0lLdz
|
gcaHbXRz/f1UJn90JII91tFEwD966YZ74P+UubaiEz+1vh1YxM0xIds9hRsc+Jbx
|
||||||
za0SjtiWwNAbArYb94riTutkOBBWmwIDAQABAoICAGBqHsw8OfQWy3QF3mDRa4uh
|
G6PNha4cZwq1vhpP44W2PfS690nnrQIDAQABAoICAACEElRh8wKkg6xWkQULDMdi
|
||||||
OgQJmak+QSSu8m8PF9oChPr63ZxTjDNCzr+jsNAqj8TBf4S2YcnAgI0nlzb1Lxxo
|
wWen/H85frbufBhkyQH3NWjErCMmwzJsMWi9EUkKGs7VWKgLv7uadY4q03XHhgmc
|
||||||
QikQOvMq8I3LdEnjU5wgsj6+QBzzB0NLC/8Y4eA7yJlmy/C1eAwo9Vh4PXqHZdcZ
|
GrAEwS6UaFmNgd5fmk3j1rHhUSIUyq8JNkbtIPr9bC+a6C/OuRYpE4o2V1zzPK1D
|
||||||
h6ET7hWMDHp4hbU2Gb9LGyZmQY/pTr0fYAXzrPu71OzILyfn6WXLgZaN10MIGNkH
|
HokafrNqxHGne/g8ASfgGcApH9C1MwR9bnyi6txmhRcDM7SiZ5JCDCGdgg11eirz
|
||||||
7uDzZ7wecmq7toPMw/WjCPInnlYybQitgMSPvJAHMKUOR1iPJAThwK+DWiEr6na8
|
45PvsAysg3ZfA4DAQOWn4defEj8NtO9kisbRKWBKosrrJmSWZ4fnd6F8TzSX/dO8
|
||||||
Rzxl0SbtaysaERqlRs5koeRIpBV9Wi7gjcSv4ty9rOOc3DXG5/IXvEQ17KdKMKIs
|
MEEXUW7RJ7G0vviTnSeQNnjsZB+wQk84y3lRGDzvCVxR7cqLdaKjMD38zQdr1HiM
|
||||||
R1wWynxM2yR3mHi4btNpFthdZ7B3BhnliTcBRyWJWU8Zkd7pcM6AwOaA2vU7wb1c
|
IysiYw7aUQ8ukz+4I4izPmn/iDdTxNzTHSvaxCjKRqsaj9R3kEFqtVuOoInfwKD9
|
||||||
mvLGomtDhWf/ij/Ww8fWBmpj7yLuA5bOBCGHmCqS+ow4AUZANC6mc50GmZs4Llg0
|
iSoEI35IkEIJwhvnt/xfZY03HwI7JBvSgA23zM5L2dvuM0nwGVcn+/WkLcYRum2y
|
||||||
8CJgaynrdFKBhPbVZ/OoDK/d6yDostRx/PGReGjue1ly93sjNw16QeulHj8cWk3R
|
hXRbpQ69dVTiFCxQG71bdcuK8z2lxXDPsyBjkcBta/WwQe8sHHdrszyc1Zf5DIDx
|
||||||
LXNnQaDf1MCvoW7826Fzpzl/jLnB6q5CyLwdqToDtT46Zm8lGvrfb+2K0v0R3a2A
|
341bQ0cJEZQJD5BmKNij6Ow0N9g/0vySAScKF1zM9J0fE/XBihNYIH9JCXPRrFqw
|
||||||
qQLZZDoNzau8D7bjQctaHOUdIxYh1E1k+fdvyncWDOUPitNuaL9Li/usddNZKKvN
|
BmUGmNjjyJSbnYMxjyVDz8g9026N+w23VtLv0UlA4hF3Hexupqol7XM+MhqNSFIO
|
||||||
hg3CDkxtUQdDKY6bTxo1AoIBAQD5nnGGHIhxzpYwjETl42+jM0JZywdV0zv+AQSZ
|
A+F8Ho9U38LZfA3yt8JpAoIBAQD00RQmllHGtRR2zsIA0LPMVUyV3DOshJ4XYj8a
|
||||||
AmQvHm2CNrr8FgdA6H1uX9iKvRShPlmvgun8mxKKZ4SFfCvqWwy1NVP0VCeZ6COX
|
sN2rSU9rgNRB0rnpgWoGMAysOerPphvoY6bf1wrI3dFt5pzQMuKJLz6VFl135k5R
|
||||||
xSoAxO2P75j/HVZo4ZPtXrobj1t7wBllMv5YJCJL/pvNrNUeDaUmjp5oLRkGGIRA
|
11kxZfCmZC/pIp3WLkIHDthAXkU5IKnWw/4vQgmIwTZ5I7rNjPaJYuoH8z5Buuwi
|
||||||
ZvDVmeMFNP/N0lKQfVaQ2Zr8HxvxADEtvq7Zr5YQzyNtpY80wEOpHYU1QXaf67va
|
qUnEJj3czq4iNW2DHAFd657NQImrIbvN4T9SHLGrFBG3Bqf43xc/TMNqOnD7FcYe
|
||||||
A/R90onbHxiSc8LYuPu9ltvzzwDaN4laYaxz4QemSPHSLfQoNKTrJ0th6h0+ElXt
|
+DIkBFXBFqx6pwMjP7hUwo88Oxzp7I/MaDXw9LnSPt2YQqdyNaaFiyk8JWc87LMq
|
||||||
CUIaiZK/6RG2mgqk7X/CVFsbwRCCeegi+OgiTBjatrryGwXlAoIBAQDg9zE9ep4c
|
DFaXFh+aON9XFxvKfCQA5uNCwyaWMi8zNWLpFTPKuZPPaWR5AoIBAQC/fi5ReLUL
|
||||||
HXJbIvEjhvv8HIoa7Jeb2Ktspqja9FZv8qn8o0e41fXnmdNkjeJPrEcUMyJrlGCG
|
HEpGgKw9UstgexmdnQLVisVfRH9eaQn/U6Yoo8XD0gpdjtqdA9dStV3jw9zKAoeP
|
||||||
UlcIh8L5zdvr0Ja1epmcfJmOyfhyUwsovG3X9DlGjunKAfUaHEEozh8pd3p9MhAb
|
twg819A/nl+kavDP1bGxaxEou9BUFvxyqw0OrA1bKznNlcpCNpqShSiFVO/6CqaU
|
||||||
Re/q6u5OU2MAChe8gjlD7ycPZcHhztqcoaVxg9KmozV5WSj/NWu5+o+o2PgwCbUi
|
awaDRuAsf4gs8/vKzw3q5bPErC+/a8x8USicOMc1tPrUxmTSwoXCfgtb+l7+7K48
|
||||||
n5qEwVW9tY2qVmzmSTO/2ii4pM6SZpAGoyY4F0HR7GYYtX9JT8OiFTxVe9Qpl155
|
QeA27zPxaOCotAhef1T6KW1mYC7vP0ertZwiG+Lqoh9fzrun5TUYielqqrAJWPFC
|
||||||
ldFl2Mgf14kLZJqTmXBB+m3Ocujjn7HxLHoWc3q2Po3SDwpVeqQFtm1+0ap9e1XP
|
o12r6jqhr9a6dPZ0/ZBCK3JyvdYGt321P6yffA78sz0hvSqT9JMmNnZJSc6oOiuB
|
||||||
6K2gXiYQYCJ/AoIBAENf0bJqFyXopb8azSnjlmlNV5ZW53bx2dp4Od52t8XEB7jC
|
qqutqzl/KgfVAoIBAQDoZWD/kEpompSmg3beVz+WhJKC39mdtvZrtDO7HpIOezUN
|
||||||
vvt1kqWhWuGkuxTPbjcLVje6NR+6V2nGAQ3qcwwBYU+zwiJLaJjxAFJhpDGq9ZgJ
|
E+pp4aPh6Zu/6/TbuM8R9tkfLRnH+tad/xNDhFrvuJ4bI+IAnI51twY54nck0WQ0
|
||||||
CpmpOH58jGngTIlNy1p+ghw/hEkUD7HFWhZMlQVUl4PtsLHbokpz6ZZccpqku5LX
|
T367jMTQAHFlSc42rEaCCGOxH7Q3IDT0wJT5QdWeMmYF3QPUMC+1Lb/i11jS/opT
|
||||||
OEg8gY6AVhIoud1dJDSLYbrAIf+dlfqZfi2FJz8MufZ2glLahYMqpHx23tHrNsxO
|
BU9/4b/nabpSccz5gn4tGYSx11TImbx+bjqyx3rEYOIskK4gNQHzF6RO2cSfNA5D
|
||||||
+1nkJu5KF6CXjGylLcy4erlLbbmlPmRSgfrB7om/k9fotj8KarQrTMf63L2+7j4g
|
kUaB1/C+kUpmC5r0zhiQZqPKolIyPd33mv23/+38GLnOo1+tXMQ3rWoWTEgWfEXb
|
||||||
UWig8UiM1hQEosa9+I/PCaoO1tETCw5VjeX1B0UCggEANhByDvpW4R7airh9BzK7
|
nIlGnwUeneF/ia3KPn5urYzoy5DtOddEZg3OInnhAoIBAGrVZ9v2PvMi5mFtGirg
|
||||||
gD1Dm3DchqGtoPD0h5pM456H56U96VfSPxSizvmiN8+JTXt0fDIueFl1fSFTZEFq
|
TSzXoNPpLBKc6D6dRX4TlgtHzNSxgf0c6sGFmHuvD+tJ2kbfGAfv31eTotnnAXzs
|
||||||
5uM8NOT/4bG4Ha7APIlklyehplKVKTXTTa7mvp2nsyzGJGsITuonIMbP/77yAnTb
|
y6k8LHuXWhqEhD84gSLY7CDBQ3ijDpSFiisjXYMRWa1S8udoGrZiSMtW5nxJB3pr
|
||||||
x/ik97K8HG1vD64+yAu0Ugwu/HbXuyBiC4W36o1mFE35FHUAQFs04ttEgT8NYggt
|
8Do8KIbee4JIgsG/2qet6ZiV4tU9bA6PmL0qrkdTVTLMBWRcS7FntFFT41Zin5UY
|
||||||
wY//n+BbxXGic613z4tCdbXjy3sbYF3Vs3561p2KwHsmAs09kblFBSdSKY3Nmolr
|
kPYt8tldqrgicrGCCc1afY7TtHbnHfMPXfeiq9kgrD2ze3ESJ0IfyAIIiJMIC4v3
|
||||||
8Ab/dxVa+yA6H3FSMtIAK5uqw5aBGSczYhYnP5+3p3/OFLpCpOFtIAglIfM+ZpUT
|
QRInfPSKHnh8Ks7PEGAQ8OY0zwbvPKFJElsHYYDIG2xfSCDdN5ltUqZ15G/wrhQ/
|
||||||
9QKCAQBoACOCu9VZtw+8C7avhw8nv/V+SFm2anK8Q5lOQiYo40ULklbqe+onzKJ3
|
C70CggEAHKhqoWElJNa3Ba4UscXKWL28cXRkMLdZGRngU5W9GLUQhDVYHdy+x5jU
|
||||||
oNjl7iyXZSkTyq6wEdOsKhPr7HndRTTcH2O7mxKcdEWkMtJLlo3xlohqBQymAlQl
|
5V4OnhCFo4Vq8uc2HsKnknhu/KGJ2gf3g8ASkILCG6aqB+0xZ+N6/dW0Yfft7vV4
|
||||||
GEOblCG6sC0SPnse+RrrtU4EsXaTIJsOCrcmWwYnqO8nItzEnzT1ifN9Xt0rwI9y
|
az9azn2nEK6Pqiokm0ggc+UhZ4C6EKWY3Vefs0scxKBIx48aGDP0I/XwFrZpwdWC
|
||||||
7ZNAM1rvbVbm/uySCRf1slZWyHm+Dqr4oUNaZvTk6sFdlSs3emUzDb4mje9G3V86
|
Z/jlCjTZlJ+5G7VenkqWtIlJmXZ6zrRFkPKlmxSTKIrDTJaD0dcNmDrwe+au0x+y
|
||||||
cXZNizURN4KA3+ADjCFPpQ6HO4rGNSqKKEEiW1aVPsCC0z0vxd1vY8taYVwL/B4p
|
YHMSo0gMN9W5pFN6LDc/JYXOkb995mkKXyzeRTFy+v2yFig6rSwBStwcSTsuNWAe
|
||||||
/dKUFh7pGk5UE/IXZWlBVDufNy/b
|
FOWrzZPSFGNqLJEHjZdIBAaDR6ER7A==
|
||||||
-----END PRIVATE KEY-----
|
-----END PRIVATE KEY-----
|
||||||
|
@ -1,113 +1,165 @@
|
|||||||
- block:
|
- name: Setup docker
|
||||||
- name: print arch
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
debug:
|
block:
|
||||||
msg: "{{ ansible_architecture }}"
|
- name: Facts
|
||||||
- name: Install docker
|
ansible.builtin.setup:
|
||||||
ansible.builtin.apt:
|
|
||||||
name:
|
|
||||||
- ca-certificates
|
|
||||||
- curl
|
|
||||||
- telnet
|
|
||||||
- net-tools
|
|
||||||
- python3-pip
|
|
||||||
- python3-dev
|
|
||||||
state: present
|
|
||||||
update_cache: true
|
|
||||||
- name: Get keys for raspotify
|
|
||||||
ansible.builtin.shell:
|
|
||||||
install -m 0755 -d /etc/apt/keyrings
|
|
||||||
|
|
||||||
- name: Get keys for raspotify
|
- name: Print arch
|
||||||
ansible.builtin.shell:
|
ansible.builtin.debug:
|
||||||
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
msg: "{{ ansible_architecture }}"
|
||||||
when:
|
- name: Install docker dependencies
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- telnet
|
||||||
|
- net-tools
|
||||||
|
- python3-pip
|
||||||
|
- python3-dev
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
- name: Get keys for raspotify
|
||||||
|
ansible.builtin.command:
|
||||||
|
install -m 0755 -d /etc/apt/keyrings
|
||||||
|
|
||||||
|
|
||||||
|
# - name: Add an Apt signing key to a specific keyring file
|
||||||
|
# ansible.builtin.apt_key:
|
||||||
|
# url: https://download.docker.com/linux/debian/gpg
|
||||||
|
# keyring: /etc/apt/keyrings/docker.asc
|
||||||
|
# when:
|
||||||
|
# - ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
|
||||||
|
|
||||||
|
# - name: Get keys for raspotify
|
||||||
|
# ansible.builtin.shell:
|
||||||
|
# curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
||||||
|
# when:
|
||||||
|
# - ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
|
||||||
|
|
||||||
|
- name: Get keys for raspotify
|
||||||
|
ansible.builtin.shell:
|
||||||
|
curl -fsSL https://download.docker.com/linux/raspbian/gpg -o /etc/apt/keyrings/docker.asc
|
||||||
|
when:
|
||||||
- ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
|
- ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
|
||||||
- name: Get keys for raspotify
|
|
||||||
ansible.builtin.shell:
|
- name: Add an Apt signing key to a specific keyring file
|
||||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
ansible.builtin.apt_key:
|
||||||
when:
|
url: https://download.docker.com/linux/ubuntu/gpg
|
||||||
|
keyring: /etc/apt/keyrings/docker.asc
|
||||||
|
when:
|
||||||
- ansible_distribution == "Ubuntu"
|
- ansible_distribution == "Ubuntu"
|
||||||
|
|
||||||
- name: Get keys for raspotify
|
# - name: Get keys for raspotify
|
||||||
ansible.builtin.shell:
|
# ansible.builtin.shell:
|
||||||
chmod a+r /etc/apt/keyrings/docker.asc
|
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||||
|
# when:
|
||||||
|
# - ansible_distribution == "Ubuntu"
|
||||||
|
- name: Change file ownership, group and permissions
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /etc/apt/keyrings/docker.asc
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
- name: Get keys for raspotify
|
# - name: Get keys for raspotify
|
||||||
ansible.builtin.shell: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
# ansible.builtin.shell:
|
||||||
when:
|
# chmod a+r /etc/apt/keyrings/docker.asc
|
||||||
|
|
||||||
|
- name: Get keys for raspotify
|
||||||
|
ansible.builtin.shell: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
when:
|
||||||
- ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
|
- ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
|
||||||
- name: Get keys for raspotify
|
|
||||||
ansible.builtin.shell: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
||||||
when:
|
|
||||||
- ansible_distribution == "Ubuntu"
|
|
||||||
|
|
||||||
- name: Install docker
|
|
||||||
ansible.builtin.apt:
|
|
||||||
name:
|
|
||||||
- docker-ce
|
|
||||||
- docker-ce-cli
|
|
||||||
- containerd.io
|
|
||||||
- docker-buildx-plugin
|
|
||||||
- docker-compose-plugin
|
|
||||||
update_cache: true
|
|
||||||
|
|
||||||
- name: Create a directory docker.service.d
|
- name: Get keys for raspotify
|
||||||
ansible.builtin.file:
|
ansible.builtin.shell: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
path: /etc/systemd/system/docker.service.d/
|
when:
|
||||||
state: directory
|
- ansible_distribution == "Ubuntu"
|
||||||
mode: '0755'
|
|
||||||
- name: Create a directory for certs
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /etc/docker/certs
|
|
||||||
state: directory
|
|
||||||
mode: '0700'
|
|
||||||
- name: Copy files
|
|
||||||
copy:
|
|
||||||
src: server-key.pem
|
|
||||||
dest: /etc/docker/certs/
|
|
||||||
- name: Copy files
|
|
||||||
copy:
|
|
||||||
src: ca.pem
|
|
||||||
dest: /etc/docker/certs/
|
|
||||||
- name: Copy files
|
|
||||||
copy:
|
|
||||||
src: server-cert.pem
|
|
||||||
dest: /etc/docker/certs/
|
|
||||||
- name: Creating a file with content
|
|
||||||
copy:
|
|
||||||
dest: "/etc/systemd/system/docker.service.d/override.conf"
|
|
||||||
content: |
|
|
||||||
[Service]
|
|
||||||
ExecStart=
|
|
||||||
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --tlsverify --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem --tlskey=/etc/docker/certs/server-key.pem -H=0.0.0.0:2376
|
|
||||||
notify: restart_docker
|
|
||||||
when: mode == "nocert"
|
|
||||||
- name: Creating a file with content
|
|
||||||
copy:
|
|
||||||
dest: "/etc/systemd/system/docker.service.d/override.conf"
|
|
||||||
content: |
|
|
||||||
[Service]
|
|
||||||
ExecStart=
|
|
||||||
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --tlsverify --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem --tlskey=/etc/docker/certs/server-key.pem -H=0.0.0.0:2376
|
|
||||||
notify: restart_docker
|
|
||||||
when: mode != "nocert"
|
|
||||||
|
|
||||||
- name: Just force systemd to reread configs
|
- name: Install docker
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.apt:
|
||||||
daemon_reload: true
|
name:
|
||||||
|
- docker-ce
|
||||||
|
- docker-ce-cli
|
||||||
|
- containerd.io
|
||||||
|
- docker-buildx-plugin
|
||||||
|
- docker-compose-plugin
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
- name: Restart docker service
|
- name: Create a directory docker.service.d
|
||||||
ansible.builtin.service:
|
ansible.builtin.file:
|
||||||
name: docker
|
path: /etc/systemd/system/docker.service.d/
|
||||||
state: restarted
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
- name: Create a directory for certs
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /etc/docker/certs
|
||||||
|
state: directory
|
||||||
|
mode: '0700'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
# - name: Get keys for raspotify
|
- name: Copy files
|
||||||
# ansible.builtin.shell: docker plugin install grafana/loki-docker-driver:3.3.2-{{ ansible_architecture }} --alias loki --grant-all-permissions
|
ansible.builtin.copy:
|
||||||
- name: Install a plugin
|
src: server-key.pem
|
||||||
community.docker.docker_plugin:
|
dest: /etc/docker/certs/
|
||||||
plugin_name: grafana/loki-docker-driver:3.3.2
|
mode: '0600'
|
||||||
alias: loki
|
owner: root
|
||||||
state: present
|
group: root
|
||||||
|
- name: Copy files
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: ca.pem
|
||||||
|
dest: /etc/docker/certs/
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- name: Copy files
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: server-cert.pem
|
||||||
|
dest: /etc/docker/certs/
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- name: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/systemd/system/docker.service.d/override.conf"
|
||||||
|
content: |
|
||||||
|
[Service]
|
||||||
|
ExecStart=
|
||||||
|
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --tlsverify --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem --tlskey=/etc/docker/certs/server-key.pem -H=0.0.0.0:2376
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
notify: restart_docker
|
||||||
|
when: mode == "cert"
|
||||||
|
|
||||||
|
# - name: Creating a file with content
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# dest: "/etc/systemd/system/docker.service.d/override.conf"
|
||||||
|
# content: |
|
||||||
|
# [Service]
|
||||||
|
# ExecStart=
|
||||||
|
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --tlsverify \
|
||||||
|
# --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem \
|
||||||
|
# --tlskey=/etc/docker/certs/server-key.pem -H=0.0.0.0:2376
|
||||||
|
# mode: '0600'
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
# notify: restart_docker
|
||||||
|
# when: mode != "nocert"
|
||||||
|
|
||||||
become: true
|
- name: Just force systemd to reread configs
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
daemon_reload: true
|
||||||
|
|
||||||
|
- name: Restart docker service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: docker
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
# - name: Get keys for raspotify
|
||||||
|
# ansible.builtin.shell: docker plugin install grafana/loki-docker-driver:3.3.2-{{ ansible_architecture }} --alias loki --grant-all-permissions
|
||||||
|
- name: Install a plugin
|
||||||
|
community.docker.docker_plugin:
|
||||||
|
plugin_name: grafana/loki-docker-driver:3.3.2
|
||||||
|
alias: loki
|
||||||
|
state: present
|
||||||
|
0
roles/fail2ban/files/action.d/banan.conf
Normal file → Executable file
0
roles/fail2ban/files/action.d/banan.conf
Normal file → Executable file
0
roles/fail2ban/files/filter.d/bad-auth.conf
Normal file → Executable file
0
roles/fail2ban/files/filter.d/bad-auth.conf
Normal file → Executable file
0
roles/fail2ban/files/filter.d/nextcloud.conf
Normal file → Executable file
0
roles/fail2ban/files/filter.d/nextcloud.conf
Normal file → Executable file
0
roles/fail2ban/files/filter.d/sshd.conf
Normal file → Executable file
0
roles/fail2ban/files/filter.d/sshd.conf
Normal file → Executable file
0
roles/fail2ban/files/jail.d/bad-auth.conf
Normal file → Executable file
0
roles/fail2ban/files/jail.d/bad-auth.conf
Normal file → Executable file
0
roles/fail2ban/files/jail.d/nextcloud.conf
Normal file → Executable file
0
roles/fail2ban/files/jail.d/nextcloud.conf
Normal file → Executable file
0
roles/fail2ban/files/jail.d/sshd.conf
Normal file → Executable file
0
roles/fail2ban/files/jail.d/sshd.conf
Normal file → Executable file
@ -1,41 +1,51 @@
|
|||||||
- block:
|
- name: Setup Fail2ban
|
||||||
- name: Install fail2ban packages
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
ansible.builtin.apt:
|
block:
|
||||||
name:
|
- name: Install fail2ban packages
|
||||||
- fail2ban
|
ansible.builtin.apt:
|
||||||
- sendmail
|
name:
|
||||||
#add line to /etc/hosts
|
- fail2ban
|
||||||
#127.0.0.1 m-server localhost....
|
- sendmail
|
||||||
- name: Copy files
|
# add line to /etc/hosts
|
||||||
copy:
|
# 127.0.0.1 m-server localhost....
|
||||||
src: "{{ item }}"
|
- name: Copy files
|
||||||
dest: /etc/fail2ban/jail.d/
|
ansible.builtin.copy:
|
||||||
with_fileglob:
|
src: "{{ item }}"
|
||||||
- "jail.d/*.conf"
|
dest: /etc/fail2ban/jail.d/
|
||||||
|
mode: '0700'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
with_fileglob:
|
||||||
|
- "jail.d/*.conf"
|
||||||
|
|
||||||
- name: Copy files
|
- name: Copy files
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
src: "{{ item }}"
|
src: "{{ item }}"
|
||||||
dest: /etc/fail2ban/filter.d/
|
dest: /etc/fail2ban/filter.d/
|
||||||
with_fileglob:
|
mode: '0700'
|
||||||
- "filter.d/*.conf"
|
owner: root
|
||||||
|
group: root
|
||||||
|
with_fileglob:
|
||||||
|
- "filter.d/*.conf"
|
||||||
|
|
||||||
- name: Copy files
|
- name: Copy files
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
src: "{{ item }}"
|
src: "{{ item }}"
|
||||||
dest: /etc/fail2ban/action.d/
|
dest: /etc/fail2ban/action.d/
|
||||||
with_fileglob:
|
mode: '0700'
|
||||||
- "action.d/*.conf"
|
owner: root
|
||||||
|
group: root
|
||||||
|
with_fileglob:
|
||||||
|
- "action.d/*.conf"
|
||||||
|
|
||||||
- name: disable sendmail service
|
- name: Disable sendmail service
|
||||||
ansible.builtin.service:
|
ansible.builtin.service:
|
||||||
name: sendmail.service
|
name: sendmail.service
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
- name: Restart fail2ban service
|
- name: Restart fail2ban service
|
||||||
ansible.builtin.service:
|
ansible.builtin.service:
|
||||||
name: fail2ban.service
|
name: fail2ban.service
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: true
|
enabled: true
|
||||||
become: true
|
|
||||||
|
0
roles/hosts/files/hosts
Normal file
0
roles/hosts/files/hosts
Normal file
28
roles/hosts/tasks/main.yml
Executable file
28
roles/hosts/tasks/main.yml
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
- name: Hosts
|
||||||
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
block:
|
||||||
|
- name: Reconfigure hosts file
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: "/etc/hosts"
|
||||||
|
regexp: "^192.168.77.101 .*"
|
||||||
|
line: "192.168.77.101 m-server m-server.home.lan"
|
||||||
|
- name: Reconfigure hosts file
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: "/etc/hosts"
|
||||||
|
regexp: "^192.168.77.106 .*"
|
||||||
|
line: "192.168.77.106 nas nas.home.lan"
|
||||||
|
- name: Reconfigure hosts file
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: "/etc/hosts"
|
||||||
|
regexp: "^192.168.77.238 .*"
|
||||||
|
line: "192.168.77.238 rpi5 rpi5.home.lan"
|
||||||
|
- name: Reconfigure hosts file
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: "/etc/hosts"
|
||||||
|
regexp: "^192.168.77.4 .*"
|
||||||
|
line: "192.168.77.4 amd amd.home.lan"
|
||||||
|
- name: Reconfigure hosts file
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: "/etc/hosts"
|
||||||
|
regexp: "^192.168.77.55 .*"
|
||||||
|
line: "192.168.77.55 rack rack.home.lan"
|
@ -1,20 +0,0 @@
|
|||||||
- block:
|
|
||||||
- name: Get keys
|
|
||||||
ansible.builtin.shell: curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg
|
|
||||||
- name: Add repo
|
|
||||||
ansible.builtin.shell: echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list
|
|
||||||
- name: Update cache
|
|
||||||
ansible.builtin.apt:
|
|
||||||
update_cache: true
|
|
||||||
- name: Instal wazuh
|
|
||||||
ansible.builtin.apt:
|
|
||||||
name: wazuh-agent
|
|
||||||
environment:
|
|
||||||
WAZUH_MANAGER: 'm-server.home.lan'
|
|
||||||
WAZUH_AGENT_NAME: "{{ inventory_hostname }}"
|
|
||||||
- name: Restart wazuh service
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: wazuh-agent
|
|
||||||
state: restarted
|
|
||||||
enabled: true
|
|
||||||
become: true
|
|
@ -1 +0,0 @@
|
|||||||
ZABBIX_SERVER: "zabbix.home.lan"
|
|
@ -1,10 +1,12 @@
|
|||||||
- block:
|
- name: Setup matter server
|
||||||
- name: Reconfigure config
|
become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}"
|
||||||
ansible.builtin.lineinfile:
|
block:
|
||||||
path: /etc/sysctl.conf
|
- name: Reconfigure config
|
||||||
regexp: "^Unet.ipv4.igmp_max_memberships.*"
|
ansible.builtin.lineinfile:
|
||||||
line: "net.ipv4.igmp_max_memberships = 80"
|
path: /etc/sysctl.conf
|
||||||
- name: Restart agent
|
regexp: "^Unet.ipv4.igmp_max_memberships.*"
|
||||||
ansible.builtin.shell: echo 80 > /proc/sys/net/ipv4/igmp_max_memberships
|
line: "net.ipv4.igmp_max_memberships = 80"
|
||||||
notify: restart_matter_server
|
- name: Restart agent
|
||||||
become: true
|
ansible.builtin.shell: echo 80 > /proc/sys/net/ipv4/igmp_max_memberships
|
||||||
|
notify: restart_matter_server
|
||||||
|
changed_when: my_output.rc != 0
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
zabbix_agent_cfg: "/etc/zabbix/zabbix_agent2.conf"
|
zabbix_agent_cfg: "/etc/zabbix/zabbix_agent2.conf"
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
- name: Get config for nas
|
- name: Get config for nas
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
zabbix_agent_cfg: "/opt/ZabbixAgent/etc/zabbix_agentd.conf"
|
zabbix_agent_cfg: "/opt/ZabbixAgent/etc/zabbix_agentd.conf"
|
||||||
@ -29,42 +29,43 @@
|
|||||||
become: true
|
become: true
|
||||||
- name: Install a .deb package from the internet2
|
- name: Install a .deb package from the internet2
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
#deb: https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
|
# deb: https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
|
||||||
deb: https://repo.zabbix.com/zabbix/7.0/raspbian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian11_all.deb
|
deb: https://repo.zabbix.com/zabbix/7.0/raspbian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian11_all.deb
|
||||||
retries: 5
|
retries: 5
|
||||||
delay: 5
|
delay: 5
|
||||||
when:
|
when:
|
||||||
- ansible_facts.architecture == "armv7l" or ansible_facts.architecture == "aarch64"
|
- ansible_facts.architecture == "armv7l" or ansible_facts.architecture == "aarch64"
|
||||||
become: true
|
become: true
|
||||||
ignore_errors: true
|
failed_when: my_output.rc != 0
|
||||||
|
|
||||||
- name: Install a .deb package from the internet3
|
- name: Install a .deb package from the internet3
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
|
deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
|
||||||
become: true
|
become: true
|
||||||
when:
|
when:
|
||||||
- ansible_facts.architecture != "armv7l" and ansible_distribution == "Debian" and ansible_distribution_major_version == "11"
|
- ansible_facts.architecture != "armv7l" and ansible_distribution == "Debian" and ansible_distribution_major_version == "11"
|
||||||
|
|
||||||
- name: Install a .deb package from the internet4
|
- name: Install a .deb package from the internet4
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
#deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb
|
# deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb
|
||||||
deb: https://repo.zabbix.com/zabbix/7.2/debian/pool/main/z/zabbix-release/zabbix-release_7.2-1+debian12_all.deb
|
deb: https://repo.zabbix.com/zabbix/7.2/debian/pool/main/z/zabbix-release/zabbix-release_7.2-1+debian12_all.deb
|
||||||
when:
|
when:
|
||||||
- ansible_facts.architecture != "armv7l" and ansible_facts.architecture != "aarch64" and ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
|
- ansible_facts.architecture != "armv7l"
|
||||||
ignore_errors: true
|
- ansible_facts.architecture != "aarch64"
|
||||||
|
- ansible_distribution == "Debian"
|
||||||
|
- ansible_distribution_major_version == "12"
|
||||||
|
failed_when: my_output.rc != 0
|
||||||
become: true
|
become: true
|
||||||
# - name: Install a .deb package localy
|
|
||||||
# ansible.builtin.apt:
|
|
||||||
# deb: /tmp/zabbix-release_6.4-1+ubuntu22.04_all.deb
|
|
||||||
- name: Install zabbix packages
|
- name: Install zabbix packages
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- zabbix-agent2
|
- zabbix-agent2
|
||||||
- zabbix-agent2-plugin-mongodb
|
- zabbix-agent2-plugin-mongodb
|
||||||
- zabbix-agent2-plugin-postgresql
|
- zabbix-agent2-plugin-postgresql
|
||||||
update_cache: yes
|
update_cache: false
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
ignore_errors: true
|
failed_when: my_output.rc != 0
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
- name: Reconfigure zabbix agent Server
|
- name: Reconfigure zabbix agent Server
|
||||||
@ -99,14 +100,14 @@
|
|||||||
regexp: "^Hostname=.*"
|
regexp: "^Hostname=.*"
|
||||||
line: "Hostname={{ inventory_hostname }}"
|
line: "Hostname={{ inventory_hostname }}"
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
|
||||||
- name: Reconfigure zabbix-agent2 config
|
- name: Reconfigure zabbix-agent2 config
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
insertafter: '^# UserParameter='
|
insertafter: '^# UserParameter='
|
||||||
regexp: "^UserParameter=system.certs.*"
|
regexp: "^UserParameter=system.certs.*"
|
||||||
line: "UserParameter=system.certs,python3 /share/ZFS530_DATA/.qpkg/ZabbixAgent/cert_check2.py"
|
line: "UserParameter=system.certs,python3 /share/ZFS530_DATA/.qpkg/ZabbixAgent/cert_check2.py"
|
||||||
when: inventory_hostname == 'nas.home.lan'
|
when: inventory_hostname == 'nas.home.lan'
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
|
||||||
- name: Reconfigure zabbix-agent2 config
|
- name: Reconfigure zabbix-agent2 config
|
||||||
@ -115,7 +116,7 @@
|
|||||||
insertafter: '^# UserParameter='
|
insertafter: '^# UserParameter='
|
||||||
regexp: "^UserParameter=system.certs.*"
|
regexp: "^UserParameter=system.certs.*"
|
||||||
line: "UserParameter=system.certs,python3 /usr/bin/cert_check2.py"
|
line: "UserParameter=system.certs,python3 /usr/bin/cert_check2.py"
|
||||||
when: inventory_hostname == 'm-server.home.lan'
|
when: inventory_hostname == 'm-server.home.lan'
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
|
||||||
- name: Reconfigure zabbix-agent2 config
|
- name: Reconfigure zabbix-agent2 config
|
||||||
@ -140,14 +141,14 @@
|
|||||||
regexp: "^HostMetadata=.*"
|
regexp: "^HostMetadata=.*"
|
||||||
insertafter: '^# HostMetadata='
|
insertafter: '^# HostMetadata='
|
||||||
line: "HostMetadata=server;jaydee"
|
line: "HostMetadata=server;jaydee"
|
||||||
when: inventory_hostname == 'nas.home.lan' or inventory_hostname == 'm-server.home.lan'
|
when: inventory_hostname == 'nas.home.lan' or inventory_hostname == 'm-server.home.lan'
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
|
||||||
- name: Add the user 'to group video
|
- name: Add the user 'to group video
|
||||||
ansible.builtin.user:
|
ansible.builtin.user:
|
||||||
name: zabbix
|
name: zabbix
|
||||||
groups: video
|
groups: video
|
||||||
append: yes
|
append: true
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
|
||||||
@ -160,6 +161,8 @@
|
|||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
|
||||||
- name: Restart agent
|
- name: Restart agent
|
||||||
ansible.builtin.shell: /etc/init.d/ZabbixAgent.sh restart
|
ansible.builtin.command: /etc/init.d/ZabbixAgent.sh restart
|
||||||
when: inventory_hostname == 'nas.home.lan'
|
when: inventory_hostname == 'nas.home.lan'
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
changed_when: my_output.rc != 0
|
||||||
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
|
@ -1,116 +1,146 @@
|
|||||||
- block:
|
- name: Setup mqtt_srv
|
||||||
- name: include vault
|
become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}"
|
||||||
ansible.builtin.include_vars:
|
block:
|
||||||
file: jaydee.yml
|
- name: Include vault
|
||||||
- name: Delete content & directory
|
ansible.builtin.include_vars:
|
||||||
ansible.builtin.file:
|
file: jaydee.yml
|
||||||
state: absent
|
- name: Delete content & directory
|
||||||
path: "{{ dest_folder }}"
|
ansible.builtin.file:
|
||||||
- name: GIT pull
|
state: absent
|
||||||
tags:
|
path: "{{ dest_folder }}"
|
||||||
- git_pull
|
- name: GIT pull
|
||||||
git:
|
tags:
|
||||||
repo: "https://{{ git_user | urlencode }}:{{ git_password_mqtt | urlencode }}@gitlab.sectorq.eu/jaydee/mqtt_srv.git"
|
- git_pull
|
||||||
dest: "{{ dest_folder }}"
|
ansible.builtin.git:
|
||||||
update: yes
|
repo: "https://{{ git_user | urlencode }}:{{ git_password_mqtt | urlencode }}@gitlab.sectorq.eu/jaydee/mqtt_srv.git"
|
||||||
clone: yes
|
dest: "{{ dest_folder }}"
|
||||||
version: main
|
update: true
|
||||||
- debug:
|
clone: true
|
||||||
msg: "{{ inventory_hostname }}"
|
version: main
|
||||||
|
- name: Print message
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "{{ inventory_hostname }}"
|
||||||
|
- name: Create dir
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /etc/mqtt_srv/
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- name: Create dir
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /myapps/mqtt_srv/
|
||||||
|
recurse: true
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- name: Upload service config
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "{{ dest_folder }}/mqtt_srv.service"
|
||||||
|
dest: /etc/systemd/system/mqtt_srv.service
|
||||||
|
remote_src: true
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
- name: Upload service config
|
- name: Upload service script
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
src: "{{ dest_folder }}/mqtt_srv.service"
|
src: "{{ dest_folder }}/mqtt_srv.py"
|
||||||
dest: /etc/systemd/system/mqtt_srv.service
|
dest: /myapps/mqtt_srv/mqtt_srv.py
|
||||||
remote_src: true
|
mode: '0755'
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
owner: root
|
||||||
|
group: root
|
||||||
- name: Upload service script
|
remote_src: true
|
||||||
ansible.builtin.copy:
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
src: "{{ dest_folder }}/mqtt_srv.py"
|
- name: Upload service req
|
||||||
dest: /usr/bin/mqtt_srv.py
|
ansible.builtin.copy:
|
||||||
mode: '755'
|
src: "{{ dest_folder }}/requirements.txt"
|
||||||
owner: root
|
dest: /myapps/mqtt_srv/requirements.txt
|
||||||
remote_src: true
|
mode: '0755'
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
owner: root
|
||||||
|
group: root
|
||||||
- name: Upload service script config
|
remote_src: true
|
||||||
ansible.builtin.copy:
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
src: "{{ dest_folder }}/mqtt_srv.cfg"
|
|
||||||
dest: /etc/mqtt_srv/mqtt_srv.cfg
|
|
||||||
mode: '755'
|
|
||||||
owner: root
|
|
||||||
remote_src: true
|
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
|
||||||
|
|
||||||
|
|
||||||
# - name: Upload service script1
|
|
||||||
# ansible.builtin.copy:
|
|
||||||
# src: scripts/mqtt_srv.sh
|
|
||||||
# dest: /jffs/scripts/mqtt_srv/
|
|
||||||
# mode: '755'
|
|
||||||
# owner: admin
|
|
||||||
# when: inventory_hostname in groups['router']
|
|
||||||
# become: false
|
|
||||||
|
|
||||||
|
|
||||||
# - name: Upload service script
|
- name: Upload service script config
|
||||||
# ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
# src: scripts/mqtt_srv.py
|
src: "{{ dest_folder }}/mqtt_srv.cfg"
|
||||||
# dest: /jffs/scripts/mqtt_srv/
|
dest: /etc/mqtt_srv/mqtt_srv.cfg
|
||||||
# mode: '755'
|
mode: '755'
|
||||||
# owner: admin
|
owner: root
|
||||||
# when: inventory_hostname in groups['router']
|
remote_src: true
|
||||||
# become: false
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
- name: Upload service script1
|
# - name: Upload service script1
|
||||||
ansible.builtin.copy:
|
# ansible.builtin.copy:
|
||||||
src: "{{ dest_folder }}/mqtt_srv.sh"
|
# src: scripts/mqtt_srv.sh
|
||||||
dest: /etc/init.d/
|
# dest: /jffs/scripts/mqtt_srv/
|
||||||
mode: '755'
|
# mode: '755'
|
||||||
owner: admin
|
# owner: admin
|
||||||
remote_src: true
|
# when: inventory_hostname in groups['router']
|
||||||
when: inventory_hostname == 'nas.home.lan'
|
# become: false
|
||||||
|
|
||||||
- debug:
|
|
||||||
msg: "{{ dest_folder }}"
|
|
||||||
- name: Upload service script2
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ dest_folder }}/mqtt_srv.py"
|
|
||||||
dest: /usr/bin/mqtt_srv.py
|
|
||||||
mode: '755'
|
|
||||||
owner: admin
|
|
||||||
remote_src: true
|
|
||||||
when: inventory_hostname == 'nas.home.lan'
|
|
||||||
|
|
||||||
- name: Install bottle python package
|
|
||||||
ansible.builtin.shell: pip install {{ item }} --break-system-packages
|
|
||||||
loop:
|
|
||||||
- paho-mqtt
|
|
||||||
- getmac
|
|
||||||
- ping3
|
|
||||||
- psutil
|
|
||||||
- autorandr
|
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
|
||||||
|
|
||||||
- name: Just force systemd to reread configs (2.4 and above)
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
daemon_reload: true
|
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
|
||||||
|
|
||||||
|
|
||||||
|
# - name: Upload service script
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# src: scripts/mqtt_srv.py
|
||||||
|
# dest: /jffs/scripts/mqtt_srv/
|
||||||
|
# mode: '755'
|
||||||
|
# owner: admin
|
||||||
|
# when: inventory_hostname in groups['router']
|
||||||
|
# become: false
|
||||||
|
|
||||||
- name: Restart mqtt_srv service
|
# - name: Upload service script1
|
||||||
ansible.builtin.service:
|
# ansible.builtin.copy:
|
||||||
name: mqtt_srv.service
|
# src: "{{ dest_folder }}/mqtt_srv.sh"
|
||||||
state: restarted
|
# dest: /etc/init.d/
|
||||||
enabled: true
|
# mode: '755'
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
# owner: admin
|
||||||
|
# remote_src: true
|
||||||
|
# when: inventory_hostname == 'nas.home.lan'
|
||||||
|
|
||||||
- name: Restart mqtt service
|
- name: Print message
|
||||||
ansible.builtin.shell: "(/etc/init.d/mqtt_srv.sh restart >/dev/null 2>&1 &)"
|
ansible.builtin.debug:
|
||||||
async: 10
|
msg: "{{ dest_folder }}"
|
||||||
poll: 0
|
|
||||||
when: inventory_hostname == 'nas.home.lan'
|
|
||||||
|
|
||||||
become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}"
|
- name: Upload service script2
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "{{ dest_folder }}/mqtt_srv.py"
|
||||||
|
dest: /myapps/mqtt_srv/mqtt_srv.py
|
||||||
|
mode: '755'
|
||||||
|
owner: admin
|
||||||
|
remote_src: true
|
||||||
|
when: inventory_hostname == 'nas.home.lan'
|
||||||
|
|
||||||
|
- name: Install venv
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- python3-virtualenv
|
||||||
|
|
||||||
|
- name: Install specified python requirements in indicated (virtualenv)
|
||||||
|
ansible.builtin.pip:
|
||||||
|
requirements: /myapps/mqtt_srv/requirements.txt
|
||||||
|
virtualenv: /myapps/mqtt_srv/venv
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
|
- name: Just force systemd to reread configs (2.4 and above)
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
daemon_reload: true
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
|
- name: Restart mqtt_srv service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: mqtt_srv.service
|
||||||
|
state: restarted
|
||||||
|
enabled: true
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
|
- name: Restart mqtt service
|
||||||
|
ansible.builtin.shell: "(/etc/init.d/mqtt_srv.sh restart >/dev/null 2>&1 &)"
|
||||||
|
async: 10
|
||||||
|
poll: 0
|
||||||
|
when: inventory_hostname == 'nas.home.lan'
|
||||||
|
changed_when: my_output.rc != 0
|
||||||
|
8
roles/omv_backup/files/omv_backup.service
Executable file
8
roles/omv_backup/files/omv_backup.service
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Enable OMV backup
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart = nohup /myapps/omv_backup.py -b > /dev/null 2>&1 &
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=basic.target
|
@ -1,109 +1,91 @@
|
|||||||
- block:
|
- name: Omv Setup
|
||||||
- name: include vault
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
ansible.builtin.include_vars:
|
block:
|
||||||
file: jaydee.yml
|
- name: Include vault
|
||||||
- name: Delete content & directory
|
ansible.builtin.include_vars:
|
||||||
ansible.builtin.file:
|
file: jaydee.yml
|
||||||
state: absent
|
name: mysecrets
|
||||||
path: "{{ dest_folder }}"
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
- name: GIT pull
|
- name: Delete content & directory
|
||||||
tags:
|
ansible.builtin.file:
|
||||||
- git_pull
|
state: absent
|
||||||
git:
|
path: "{{ dest_folder }}"
|
||||||
repo: "https://{{ git_user | urlencode }}:{{ git_password_mqtt | urlencode }}@gitlab.sectorq.eu/jaydee/omv_backup.git"
|
- name: Pull repo
|
||||||
dest: "{{ dest_folder }}"
|
tags:
|
||||||
update: yes
|
- git_pull
|
||||||
clone: yes
|
ansible.builtin.git:
|
||||||
version: main
|
repo: "https://{{ mysecrets['git_user'] | urlencode }}:{{ mysecrets['git_password_mqtt'] | urlencode }}@gitlab.sectorq.eu/jaydee/omv_backup.git"
|
||||||
- debug:
|
dest: "{{ dest_folder }}"
|
||||||
msg: "{{ inventory_hostname }}"
|
update: true
|
||||||
- name: Create a directory if it does not exist
|
clone: true
|
||||||
ansible.builtin.file:
|
version: main
|
||||||
path: /myapps
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
state: directory
|
- name: Print
|
||||||
mode: '0755'
|
ansible.builtin.debug:
|
||||||
owner: root
|
msg: "{{ inventory_hostname }}"
|
||||||
group: root
|
- name: Create a directory if it does not exist
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /myapps
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
- name: Upload script
|
- name: Upload script
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
src: "{{ dest_folder }}/omv_backup_v3.py"
|
src: "{{ dest_folder }}/omv_backup.py"
|
||||||
dest: /myapps/omv_backup.py
|
dest: /myapps/omv_backup.py
|
||||||
remote_src: true
|
remote_src: true
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
- name: Upload script
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ dest_folder }}/omv_backup_v3.py"
|
|
||||||
dest: /myapps/omv_backup.py
|
|
||||||
remote_src: true
|
|
||||||
mode: '0755'
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
|
||||||
- name: Upload script
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ dest_folder }}/docker_backups.py"
|
|
||||||
dest: /myapps/docker_backups.py
|
|
||||||
remote_src: true
|
|
||||||
mode: '0755'
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
|
||||||
- name: Upload requirements
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ dest_folder }}/requirements.txt"
|
|
||||||
dest: /myapps/requirements.txt
|
|
||||||
remote_src: true
|
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
|
||||||
|
|
||||||
- name: Install venv
|
|
||||||
ansible.builtin.apt:
|
|
||||||
name:
|
|
||||||
- python3-virtualenv
|
|
||||||
|
|
||||||
- name: Install specified python requirements in indicated (virtualenv)
|
- name: Upload requirements
|
||||||
ansible.builtin.pip:
|
ansible.builtin.copy:
|
||||||
requirements: /myapps/requirements.txt
|
src: "{{ dest_folder }}/requirements.txt"
|
||||||
virtualenv: /myapps/venv
|
dest: /myapps/requirements.txt
|
||||||
|
remote_src: true
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
- name: 'Ensure an old job is no longer present. Removes any job that is prefixed by "#Ansible: an old job" from the crontab'
|
- name: Install venv
|
||||||
ansible.builtin.cron:
|
ansible.builtin.apt:
|
||||||
name: "omv_backup"
|
name:
|
||||||
state: absent
|
- python3-virtualenv
|
||||||
|
|
||||||
# - name: Ensure a job that runs at 2 and 5 exists. Creates an entry like "0 5,2 * * ls -alh > /dev/null"
|
- name: Install specified python requirements in indicated (virtualenv)
|
||||||
# ansible.builtin.cron:
|
ansible.builtin.pip:
|
||||||
# name: "omv_backup"
|
requirements: /myapps/requirements.txt
|
||||||
# minute: "0"
|
virtualenv: /myapps/venv
|
||||||
# hour: "8"
|
|
||||||
# job: "/myapps/venv/bin/python3 /myapps/omv_backup.py -b > /dev/null 2>&1 &"
|
|
||||||
|
|
||||||
- name: Creating config
|
|
||||||
ansible.builtin.copy:
|
|
||||||
dest: "/etc/systemd/system/omv_backup.service"
|
|
||||||
content: |
|
|
||||||
[Unit]
|
|
||||||
Description=Enable OMV backup
|
|
||||||
|
|
||||||
[Service]
|
- name: 'Ensure an old job is no longer present. Removes any job that is prefixed by "#Ansible: an old job" from the crontab'
|
||||||
ExecStart = nohup /myapps/venv/bin/python3 /myapps/omv_backup.py -b > /dev/null 2>&1 &
|
ansible.builtin.cron:
|
||||||
|
name: "omv_backup"
|
||||||
[Install]
|
state: absent
|
||||||
WantedBy=basic.target
|
- name: Upload service config
|
||||||
owner: root
|
ansible.builtin.copy:
|
||||||
mode: '0744'
|
src: omv_backup.service
|
||||||
when: inventory_hostname == 'amd.home.lan'
|
dest: /etc/systemd/system/omv_backup.service
|
||||||
|
mode: '0755'
|
||||||
- name: Restart service omv_backup, in all cases
|
owner: root
|
||||||
ansible.builtin.service:
|
group: root
|
||||||
name: omv_backup
|
when: inventory_hostname == 'amd.home.lan'
|
||||||
state: restarted
|
- name: Restart omv service
|
||||||
enabled: true
|
ansible.builtin.service:
|
||||||
# async:
|
name: omv_backup
|
||||||
# poll: 0
|
state: restarted
|
||||||
# ignore_errors: true
|
daemon_reload: true
|
||||||
when: inventory_hostname == 'amd.home.lan'
|
enabled: true
|
||||||
become: true
|
when: inventory_hostname == 'amd.home.lan'
|
||||||
|
# - name: Ensure a job that runs at 2 and 5 exists. Creates an entry like "0 5,2 * * ls -alh > /dev/null"
|
||||||
|
# ansible.builtin.cron:
|
||||||
|
# name: "omv_backup"
|
||||||
|
# minute: "0"
|
||||||
|
# hour: "8"
|
||||||
|
# job: "sudo /myapps/omv_backup.py -b > /dev/null 2>&1 &"
|
||||||
|
# state: present
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
- block:
|
- name: Setup policies
|
||||||
- name: Creating a file with content
|
|
||||||
copy:
|
|
||||||
dest: "/etc/polkit-1/rules.d/50_disable_pol.rules"
|
|
||||||
content: |
|
|
||||||
polkit.addRule(function(action, subject) {
|
|
||||||
if (action.id == "org.freedesktop.NetworkManager.wifi.scan") {
|
|
||||||
return polkit.Result.YES;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
block:
|
||||||
|
- name: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/polkit-1/rules.d/50_disable_pol.rules"
|
||||||
|
content: |
|
||||||
|
polkit.addRule(function(action, subject) {
|
||||||
|
if (action.id == "org.freedesktop.NetworkManager.wifi.scan") {
|
||||||
|
return polkit.Result.YES;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mode: '0644'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
@ -1,68 +1,76 @@
|
|||||||
---
|
---
|
||||||
- block:
|
- name: Promtail
|
||||||
- name: Create dir
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
ansible.builtin.file:
|
block:
|
||||||
path: /etc/apt/keyrings/
|
- name: Create dir
|
||||||
owner: root
|
ansible.builtin.file:
|
||||||
group: root
|
path: /etc/apt/keyrings/
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- name: Create Banner
|
||||||
|
ansible.builtin.shell: wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor > /etc/apt/keyrings/grafana.gpg
|
||||||
|
register: my_output
|
||||||
|
changed_when: my_output.rc != 0
|
||||||
|
# - name: < Fetch file that requires authentication.
|
||||||
|
# username/password only available since 2.8, in older versions you need to use url_username/url_password
|
||||||
|
# ansible.builtin.get_url:
|
||||||
|
# url: https://apt.grafana.com/gpg.key
|
||||||
|
# dest: /etc/foo.conf
|
||||||
|
# username: bar
|
||||||
|
# password: '{{ mysecret }}'
|
||||||
|
# changed_when: my_output.rc != 0
|
||||||
|
|
||||||
- name: Create Banner
|
- name: Create Banner
|
||||||
ansible.builtin.shell: wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor > /etc/apt/keyrings/grafana.gpg
|
ansible.builtin.shell: echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
|
||||||
register: my_output
|
register: my_output
|
||||||
changed_when: my_output.rc != 0
|
changed_when: my_output.rc != 0
|
||||||
|
|
||||||
- name: Create Banner
|
- name: Install packages
|
||||||
ansible.builtin.shell: echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
|
ansible.builtin.apt:
|
||||||
register: my_output
|
name:
|
||||||
changed_when: my_output.rc != 0
|
- promtail
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
- name: Install packages
|
- name: Creating a file with content
|
||||||
ansible.builtin.apt:
|
ansible.builtin.copy:
|
||||||
name:
|
dest: "/etc/promtail/config.yml"
|
||||||
- promtail
|
owner: root
|
||||||
update_cache: true
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
content: |
|
||||||
|
# This minimal config scrape only single log file.
|
||||||
|
# Primarily used in rpm/deb packaging where promtail service can be started during system init process.
|
||||||
|
# And too much scraping during init process can overload the complete system.
|
||||||
|
# https://github.com/grafana/loki/issues/11398
|
||||||
|
|
||||||
- name: Creating a file with content
|
server:
|
||||||
ansible.builtin.copy:
|
http_listen_port: 9080
|
||||||
dest: "/etc/promtail/config.yml"
|
grpc_listen_port: 0
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0644'
|
|
||||||
content: |
|
|
||||||
# This minimal config scrape only single log file.
|
|
||||||
# Primarily used in rpm/deb packaging where promtail service can be started during system init process.
|
|
||||||
# And too much scraping during init process can overload the complete system.
|
|
||||||
# https://github.com/grafana/loki/issues/11398
|
|
||||||
|
|
||||||
server:
|
positions:
|
||||||
http_listen_port: 9080
|
filename: /tmp/positions.yaml
|
||||||
grpc_listen_port: 0
|
|
||||||
|
|
||||||
positions:
|
clients:
|
||||||
filename: /tmp/positions.yaml
|
- url: http://192.168.77.101:3100/loki/api/v1/push
|
||||||
|
external_labels:
|
||||||
|
nodename: {{ inventory_hostname }}
|
||||||
|
|
||||||
clients:
|
scrape_configs:
|
||||||
- url: http://192.168.77.101:3100/loki/api/v1/push
|
- job_name: system
|
||||||
external_labels:
|
static_configs:
|
||||||
nodename: {{ inventory_hostname }}
|
- targets:
|
||||||
|
- localhost
|
||||||
|
labels:
|
||||||
|
job: varlogs1
|
||||||
|
#NOTE: Need to be modified to scrape any additional logs of the system.
|
||||||
|
__path__: /var/log/zabbix/*.log
|
||||||
|
- targets:
|
||||||
|
- localhost
|
||||||
|
labels:
|
||||||
|
job: omv_backup
|
||||||
|
__path__: /myapps/omv_backup.log
|
||||||
|
|
||||||
scrape_configs:
|
- name: Sshd
|
||||||
- job_name: system
|
ansible.builtin.service:
|
||||||
static_configs:
|
name: promtail
|
||||||
- targets:
|
state: restarted
|
||||||
- localhost
|
|
||||||
labels:
|
|
||||||
job: varlogs1
|
|
||||||
#NOTE: Need to be modified to scrape any additional logs of the system.
|
|
||||||
__path__: /var/log/zabbix/*.log
|
|
||||||
- targets:
|
|
||||||
- localhost
|
|
||||||
labels:
|
|
||||||
job: omv_backup
|
|
||||||
__path__: /myapps/omv_backup.log
|
|
||||||
|
|
||||||
- name: Sshd
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: promtail
|
|
||||||
state: restarted
|
|
||||||
become: true
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
# requirements.yml
|
||||||
collections:
|
collections:
|
||||||
- name: community.general
|
- name: community.general
|
||||||
source: https://galaxy.ansible.com
|
source: https://galaxy.ansible.com
|
||||||
|
- name: community.docker
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
- name: restart_docker
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: docker.service
|
|
||||||
state: restarted
|
|
||||||
become: true
|
|
@ -1,57 +0,0 @@
|
|||||||
- block:
|
|
||||||
- name: Install docker
|
|
||||||
ansible.builtin.apt:
|
|
||||||
name:
|
|
||||||
- ca-certificates
|
|
||||||
- curl
|
|
||||||
- telnet
|
|
||||||
- net-tools
|
|
||||||
- python3-pip
|
|
||||||
- python3-dev
|
|
||||||
state: present
|
|
||||||
update_cache: true
|
|
||||||
- name: Get keys for raspotify
|
|
||||||
ansible.builtin.shell:
|
|
||||||
install -m 0755 -d /etc/apt/keyrings
|
|
||||||
|
|
||||||
- name: Get keys for raspotify
|
|
||||||
ansible.builtin.shell:
|
|
||||||
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
|
||||||
|
|
||||||
- name: Get keys for raspotify
|
|
||||||
ansible.builtin.shell:
|
|
||||||
chmod a+r /etc/apt/keyrings/docker.asc
|
|
||||||
|
|
||||||
- name: Get keys for raspotify
|
|
||||||
ansible.builtin.shell: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
||||||
|
|
||||||
- name: Install docker
|
|
||||||
ansible.builtin.apt:
|
|
||||||
name:
|
|
||||||
- docker-ce
|
|
||||||
- docker-ce-cli
|
|
||||||
- containerd.io
|
|
||||||
- docker-buildx-plugin
|
|
||||||
- docker-compose-plugin
|
|
||||||
update_cache: true
|
|
||||||
|
|
||||||
- name: Create a directory docker.service.d
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /etc/systemd/system/docker.service.d/
|
|
||||||
state: directory
|
|
||||||
mode: '0755'
|
|
||||||
|
|
||||||
- name: Creating a file with content
|
|
||||||
copy:
|
|
||||||
dest: "/etc/systemd/system/docker.service.d/override.conf"
|
|
||||||
content: |
|
|
||||||
[Service]
|
|
||||||
ExecStart=
|
|
||||||
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
|
|
||||||
notify: restart_docker
|
|
||||||
|
|
||||||
- name: Just force systemd to reread configs
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
daemon_reload: true
|
|
||||||
|
|
||||||
become: true
|
|
5
roles/setup/tasks/main.yml
Executable file
5
roles/setup/tasks/main.yml
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
- name: Setup
|
||||||
|
become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}"
|
||||||
|
block:
|
||||||
|
- name: Gather facts
|
||||||
|
ansible.builtin.setup:
|
@ -20,7 +20,7 @@
|
|||||||
{{ logo.stdout }}
|
{{ logo.stdout }}
|
||||||
owner: 0
|
owner: 0
|
||||||
group: 0
|
group: 0
|
||||||
mode: "0600"
|
mode: "0777"
|
||||||
|
|
||||||
- name: Reconfigure sshd
|
- name: Reconfigure sshd
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
|
24
roles/ssh_config/files/config
Executable file
24
roles/ssh_config/files/config
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
Host m-server
|
||||||
|
HostName m-server.home.lan
|
||||||
|
|
||||||
|
Host rpi5
|
||||||
|
HostName rpi5.home.lan
|
||||||
|
|
||||||
|
Host rack
|
||||||
|
HostName rack.home.lan
|
||||||
|
|
||||||
|
Host amd
|
||||||
|
HostName amd.home.lan
|
||||||
|
|
||||||
|
Host nas
|
||||||
|
HostName nas.home.lan
|
||||||
|
User admin
|
||||||
|
|
||||||
|
Host router
|
||||||
|
HostName router.home.lan
|
||||||
|
User root
|
||||||
|
|
||||||
|
Host *
|
||||||
|
User jd
|
||||||
|
IdentityFile ~/.ssh/id_rsa
|
||||||
|
StrictHostKeyChecking no
|
19
roles/ssh_config/tasks/main.yml
Executable file
19
roles/ssh_config/tasks/main.yml
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
- name: SSH config Setup
|
||||||
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
block:
|
||||||
|
- name: Upload config
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: config
|
||||||
|
dest: /home/jd/.ssh/config
|
||||||
|
mode: '0600'
|
||||||
|
owner: jd
|
||||||
|
group: jd
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
- name: Upload config
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: config
|
||||||
|
dest: /root/.ssh/config
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
1
roles/ssh_config/vars/main.yml
Executable file
1
roles/ssh_config/vars/main.yml
Executable file
@ -0,0 +1 @@
|
|||||||
|
dest_folder: "/tmp/ans_repo"
|
24
roles/ssh_keys/tasks/main.yml
Executable file
24
roles/ssh_keys/tasks/main.yml
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
- name: SSH keys deploy
|
||||||
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
block:
|
||||||
|
- name: Upload key
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: id_rsa
|
||||||
|
dest: /home/jd/.ssh/id_rsa
|
||||||
|
mode: '0600'
|
||||||
|
owner: jd
|
||||||
|
group: jd
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
- name: Upload key
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: id_rsa
|
||||||
|
dest: /home/jd/.ssh/id_rsa.pub
|
||||||
|
mode: '0600'
|
||||||
|
owner: jd
|
||||||
|
group: jd
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
- name: Set authorized key taken from file
|
||||||
|
ansible.posix.authorized_key:
|
||||||
|
user: jd
|
||||||
|
state: present
|
||||||
|
key: "{{ lookup('file', '/home/jd/.ssh/id_rsa.pub') }}"
|
14
roles/sshd_config/tasks/main.yml
Executable file
14
roles/sshd_config/tasks/main.yml
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
- name: SSHD config Setup
|
||||||
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
block:
|
||||||
|
- name: Reconfigure sshd
|
||||||
|
ansible.builtin.replace:
|
||||||
|
path: /etc/ssh/sshd_config
|
||||||
|
regexp: "^PermitRootLogin"
|
||||||
|
replace: "#PermitRootLogin"
|
||||||
|
- name: Restart ssh service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: ssh
|
||||||
|
state: restarted
|
||||||
|
daemon_reload: true
|
||||||
|
enabled: true
|
1
roles/sshd_config/vars/main.yml
Executable file
1
roles/sshd_config/vars/main.yml
Executable file
@ -0,0 +1 @@
|
|||||||
|
dest_folder: "/tmp/ans_repo"
|
12
roles/sudoers/tasks/main.yml
Executable file
12
roles/sudoers/tasks/main.yml
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
- name: Set sudoers
|
||||||
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
block:
|
||||||
|
- name: Allow the backup jd to sudo /myapps/omv_backup.py
|
||||||
|
community.general.sudoers:
|
||||||
|
name: allow-backup
|
||||||
|
state: present
|
||||||
|
user: jd
|
||||||
|
commands:
|
||||||
|
- /myapps/omv_backup.py *
|
||||||
|
- /usr/sbin/poweroff
|
||||||
|
- /usr/sbin/shutdown *
|
@ -1,20 +1,29 @@
|
|||||||
- block:
|
- name: Setup loki agent
|
||||||
- name: Get keys
|
become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}"
|
||||||
ansible.builtin.shell: curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg
|
block:
|
||||||
- name: Add repo
|
- name: Get keys
|
||||||
ansible.builtin.shell: echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list
|
ansible.builtin.command: |
|
||||||
- name: Update cache
|
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg
|
||||||
ansible.builtin.apt:
|
changed_when: my_output.rc != 0
|
||||||
update_cache: true
|
|
||||||
- name: Instal wazuh
|
- name: Add repo
|
||||||
ansible.builtin.apt:
|
ansible.builtin.command: |
|
||||||
name: wazuh-agent
|
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list
|
||||||
environment:
|
changed_when: my_output.rc != 0
|
||||||
WAZUH_MANAGER: 'm-server.home.lan'
|
|
||||||
WAZUH_AGENT_NAME: "{{ inventory_hostname }}"
|
- name: Update cache
|
||||||
- name: Restart wazuh service
|
ansible.builtin.apt:
|
||||||
ansible.builtin.service:
|
update_cache: true
|
||||||
name: wazuh-agent
|
|
||||||
state: restarted
|
- name: Instal wazuh
|
||||||
enabled: true
|
ansible.builtin.apt:
|
||||||
become: true
|
name: wazuh-agent
|
||||||
|
environment:
|
||||||
|
WAZUH_MANAGER: 'm-server.home.lan'
|
||||||
|
WAZUH_AGENT_NAME: "{{ inventory_hostname }}"
|
||||||
|
|
||||||
|
- name: Restart wazuh service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: wazuh-agent
|
||||||
|
state: restarted
|
||||||
|
enabled: true
|
||||||
|
@ -1,175 +1,181 @@
|
|||||||
- block:
|
- name: Install zabbix agent
|
||||||
- name: Get config for not nas
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
ansible.builtin.set_fact:
|
block:
|
||||||
zabbix_agent_cfg: "/etc/zabbix/zabbix_agent2.conf"
|
- name: Get config for not nas
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
ansible.builtin.set_fact:
|
||||||
|
zabbix_agent_cfg: "/etc/zabbix/zabbix_agent2.conf"
|
||||||
- name: Get config for nas
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
ansible.builtin.set_fact:
|
|
||||||
zabbix_agent_cfg: "/opt/ZabbixAgent/etc/zabbix_agentd.conf"
|
|
||||||
when: inventory_hostname == 'nas.home.lan'
|
|
||||||
|
|
||||||
- name: Print all available facts
|
- name: Get config for nas
|
||||||
ansible.builtin.debug:
|
ansible.builtin.set_fact:
|
||||||
msg: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
zabbix_agent_cfg: "/opt/ZabbixAgent/etc/zabbix_agentd.conf"
|
||||||
|
when: inventory_hostname == 'nas.home.lan'
|
||||||
|
|
||||||
- name: Print all available facts
|
- name: Print all available facts
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
var: ansible_facts.architecture
|
msg: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
- name: Print all available facts
|
|
||||||
ansible.builtin.debug:
|
|
||||||
var: ansible_distribution
|
|
||||||
- name: Print all available facts
|
|
||||||
ansible.builtin.debug:
|
|
||||||
var: ansible_distribution_major_version
|
|
||||||
# - name: Upload zabbix package
|
|
||||||
# ansible.builtin.copy:
|
|
||||||
# src: packages/zabbix-release_6.4-1+ubuntu22.04_all.deb
|
|
||||||
# dest: /tmp/
|
|
||||||
- name: Install a .deb package from the internet111
|
|
||||||
ansible.builtin.apt:
|
|
||||||
deb: https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.2+ubuntu24.04_all.deb
|
|
||||||
when:
|
|
||||||
- ansible_facts.architecture != "armv7l" and ( ansible_distribution == "Ubuntu1" or ansible_distribution == "Linux Mint" )
|
|
||||||
|
|
||||||
- name: Install a .deb package from the internet2
|
- name: Print all available facts
|
||||||
ansible.builtin.apt:
|
ansible.builtin.debug:
|
||||||
#deb: https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
|
var: ansible_facts.architecture
|
||||||
deb: https://repo.zabbix.com/zabbix/7.0/raspbian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian11_all.deb
|
- name: Print all available facts
|
||||||
retries: 5
|
ansible.builtin.debug:
|
||||||
delay: 5
|
var: ansible_distribution
|
||||||
when:
|
- name: Print all available facts
|
||||||
- ansible_facts.architecture == "armv7l" or ansible_facts.architecture == "aarch64"
|
ansible.builtin.debug:
|
||||||
|
var: ansible_distribution_major_version
|
||||||
|
# - name: Upload zabbix package
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# src: packages/zabbix-release_6.4-1+ubuntu22.04_all.deb
|
||||||
|
# dest: /tmp/
|
||||||
|
- name: Install a .deb package from the internet111
|
||||||
|
ansible.builtin.apt:
|
||||||
|
deb: https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.2+ubuntu24.04_all.deb
|
||||||
|
when:
|
||||||
|
- ansible_facts.architecture != "armv7l" and ( ansible_distribution == "Ubuntu1" or ansible_distribution == "Linux Mint" )
|
||||||
|
|
||||||
ignore_errors: true
|
- name: Install a .deb package from the internet2
|
||||||
|
ansible.builtin.apt:
|
||||||
|
# deb: https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
|
||||||
|
deb: https://repo.zabbix.com/zabbix/7.2/release/raspbian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian12_all.deb
|
||||||
|
retries: 5
|
||||||
|
delay: 5
|
||||||
|
when:
|
||||||
|
- ansible_facts.architecture == "armv7l" or ansible_facts.architecture == "aarch64"
|
||||||
|
register: command_result
|
||||||
|
failed_when: "'FAILED' in command_result.stderr"
|
||||||
|
|
||||||
- name: Install a .deb package from the internet3
|
- name: Install a .deb package from the internet3
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
|
deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
|
||||||
|
when:
|
||||||
when:
|
- ansible_facts.architecture != "armv7l" and ansible_distribution == "Debian" and ansible_distribution_major_version == "11"
|
||||||
- ansible_facts.architecture != "armv7l" and ansible_distribution == "Debian" and ansible_distribution_major_version == "11"
|
|
||||||
|
|
||||||
- name: Install a .deb package from the internet4
|
|
||||||
ansible.builtin.apt:
|
|
||||||
#deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb
|
|
||||||
deb: https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb
|
|
||||||
when:
|
|
||||||
- ansible_facts.architecture != "armv7l" and ansible_facts.architecture != "aarch64" and ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
# - name: Install a .deb package localy
|
- name: Install a .deb package from the internet4
|
||||||
# ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
# deb: /tmp/zabbix-release_6.4-1+ubuntu22.04_all.deb
|
# deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb
|
||||||
- name: Install zabbix packages
|
deb: https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb
|
||||||
ansible.builtin.apt:
|
when:
|
||||||
name:
|
- ansible_facts.architecture != "armv7l"
|
||||||
- zabbix-agent2
|
- ansible_facts.architecture != "aarch64"
|
||||||
- zabbix-agent2-plugin-mongodb
|
- ansible_distribution == "Debian"
|
||||||
- zabbix-agent2-plugin-postgresql
|
- ansible_distribution_major_version == "12"
|
||||||
# - zabbix-agent2-plugin-mysql
|
register: command_result
|
||||||
update_cache: yes
|
failed_when: "'FAILED' in command_result.stderr"
|
||||||
ignore_errors: true
|
# - name: Install a .deb package localy
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
# ansible.builtin.apt:
|
||||||
|
# deb: /tmp/zabbix-release_6.4-1+ubuntu22.04_all.deb
|
||||||
|
- name: Install zabbix packages
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- zabbix-agent2
|
||||||
|
- zabbix-agent2-plugin-mongodb
|
||||||
|
- zabbix-agent2-plugin-postgresql
|
||||||
|
# - zabbix-agent2-plugin-mysql
|
||||||
|
update_cache: true
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
- name: Install zabbix packages
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- zabbix-agent2
|
||||||
|
- zabbix-agent2-plugin-mongodb
|
||||||
|
- zabbix-agent2-plugin-postgresql
|
||||||
|
# - zabbix-agent2-plugin-mysql
|
||||||
|
only_upgrade: true
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
- name: Reconfigure zabbix agent Server
|
- name: Reconfigure zabbix agent Server
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
regexp: "^Server=.*"
|
regexp: "^Server=.*"
|
||||||
insertafter: '^# Server='
|
insertafter: '^# Server='
|
||||||
line: "Server=192.168.77.0/24,192.168.89.0/28"
|
line: "Server=192.168.77.0/24,192.168.89.0/28"
|
||||||
|
|
||||||
|
|
||||||
- name: Reconfigure zabbix agent ServerActive
|
- name: Reconfigure zabbix agent ServerActive
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
regexp: "^ServerActive=.*"
|
regexp: "^ServerActive=.*"
|
||||||
line: "ServerActive={{ ZABBIX_SERVER }}"
|
line: "ServerActive={{ ZABBIX_SERVER }}"
|
||||||
|
|
||||||
|
|
||||||
- name: Reconfigure zabbix agent ListenPort
|
- name: Reconfigure zabbix agent ListenPort
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
regexp: "^ListenPort=.*"
|
regexp: "^ListenPort=.*"
|
||||||
line: "ListenPort=10050"
|
line: "ListenPort=10050"
|
||||||
# - name: Reconfigure zabbix agent ListenIP
|
# - name: Reconfigure zabbix agent ListenIP
|
||||||
# ansible.builtin.lineinfile:
|
# ansible.builtin.lineinfile:
|
||||||
# path: /"{{ zabbix_agent_cfg }}"
|
# path: /"{{ zabbix_agent_cfg }}"
|
||||||
# regexp: "^ListenIP=.*"
|
# regexp: "^ListenIP=.*"
|
||||||
# line: "ListenIP=0.0.0.0"
|
# line: "ListenIP=0.0.0.0"
|
||||||
|
|
||||||
|
|
||||||
- name: Reconfigure zabbix-agent2 hostname
|
- name: Reconfigure zabbix-agent2 hostname
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
regexp: "^Hostname=.*"
|
regexp: "^Hostname=.*"
|
||||||
line: "Hostname={{ inventory_hostname }}"
|
line: "Hostname={{ inventory_hostname }}"
|
||||||
|
|
||||||
|
|
||||||
- name: Reconfigure zabbix-agent2 config
|
- name: Reconfigure zabbix-agent2 config
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
insertafter: '^# UserParameter='
|
insertafter: '^# UserParameter='
|
||||||
regexp: "^UserParameter=system.certs.*"
|
regexp: "^UserParameter=system.certs.*"
|
||||||
line: "UserParameter=system.certs,python3 /share/ZFS530_DATA/.qpkg/ZabbixAgent/cert_check2.py"
|
line: "UserParameter=system.certs,python3 /share/ZFS530_DATA/.qpkg/ZabbixAgent/cert_check2.py"
|
||||||
when: inventory_hostname == 'nas.home.lan'
|
when: inventory_hostname == 'nas.home.lan'
|
||||||
|
|
||||||
|
|
||||||
- name: Reconfigure zabbix-agent2 config
|
- name: Reconfigure zabbix-agent2 config
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
insertafter: '^# UserParameter='
|
insertafter: '^# UserParameter='
|
||||||
regexp: "^UserParameter=system.certs.*"
|
regexp: "^UserParameter=system.certs.*"
|
||||||
line: "UserParameter=system.certs,python3 /usr/bin/cert_check2.py"
|
line: "UserParameter=system.certs,python3 /usr/bin/cert_check2.py"
|
||||||
when: inventory_hostname == 'm-server.home.lan'
|
when: inventory_hostname == 'm-server.home.lan'
|
||||||
|
|
||||||
|
|
||||||
- name: Reconfigure zabbix-agent2 config
|
- name: Reconfigure zabbix-agent2 config
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
insertafter: '^# UserParameter='
|
insertafter: '^# UserParameter='
|
||||||
line: "UserParameter=rpi.hw.temp,/usr/bin/vcgencmd measure_temp"
|
line: "UserParameter=rpi.hw.temp,/usr/bin/vcgencmd measure_temp"
|
||||||
when: inventory_hostname == 'rpi5.home.lan'
|
when: inventory_hostname == 'rpi5.home.lan'
|
||||||
|
|
||||||
|
|
||||||
- name: Reconfigure zabbix-agent2 hostname
|
- name: Reconfigure zabbix-agent2 hostname
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
regexp: "^HostMetadata=.*"
|
regexp: "^HostMetadata=.*"
|
||||||
insertafter: '^# HostMetadata='
|
insertafter: '^# HostMetadata='
|
||||||
line: "HostMetadata=linux;jaydee"
|
line: "HostMetadata=linux;jaydee"
|
||||||
|
|
||||||
|
- name: Reconfigure zabbix-agent2 hostname
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: "{{ zabbix_agent_cfg }}"
|
||||||
|
regexp: "^HostMetadata=.*"
|
||||||
|
insertafter: '^# HostMetadata='
|
||||||
|
line: "HostMetadata=server;jaydee"
|
||||||
|
when: inventory_hostname == 'nas.home.lan' or inventory_hostname == 'm-server.home.lan'
|
||||||
|
|
||||||
|
- name: Add the user 'to group video
|
||||||
|
ansible.builtin.user:
|
||||||
|
name: zabbix
|
||||||
|
groups: video
|
||||||
|
append: true
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
|
|
||||||
|
- name: Restart zabbix-agent2 service
|
||||||
- name: Reconfigure zabbix-agent2 hostname
|
ansible.builtin.service:
|
||||||
ansible.builtin.lineinfile:
|
name: zabbix-agent2.service
|
||||||
path: "{{ zabbix_agent_cfg }}"
|
state: restarted
|
||||||
regexp: "^HostMetadata=.*"
|
enabled: true
|
||||||
insertafter: '^# HostMetadata='
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
line: "HostMetadata=server;jaydee"
|
|
||||||
when: inventory_hostname == 'nas.home.lan' or inventory_hostname == 'm-server.home.lan'
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: Restart agent
|
||||||
- name: Add the user 'to group video
|
ansible.builtin.command: /etc/init.d/ZabbixAgent.sh restart
|
||||||
ansible.builtin.user:
|
when: inventory_hostname == 'nas.home.lan'
|
||||||
name: zabbix
|
changed_when: false
|
||||||
groups: video
|
|
||||||
append: yes
|
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
|
||||||
|
|
||||||
|
|
||||||
- name: Restart zabbix-agent2 service
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: zabbix-agent2.service
|
|
||||||
state: restarted
|
|
||||||
enabled: true
|
|
||||||
when: inventory_hostname != 'nas.home.lan'
|
|
||||||
|
|
||||||
|
|
||||||
- name: Restart agent
|
|
||||||
ansible.builtin.shell: /etc/init.d/ZabbixAgent.sh restart
|
|
||||||
when: inventory_hostname == 'nas.home.lan'
|
|
||||||
|
|
||||||
|
|
||||||
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
|
||||||
|
38
ssh_key.pem
Normal file
38
ssh_key.pem
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
Reference in New Issue
Block a user