mirror of
https://gitlab.sectorq.eu/jaydee/ansible.git
synced 2025-12-13 17:44:53 +01:00
This commit is contained in:
218
roles/autofs/tasks/main.yml
Executable file
218
roles/autofs/tasks/main.yml
Executable file
@@ -0,0 +1,218 @@
|
|||||||
|
- name: Setup autofs
|
||||||
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
block:
|
||||||
|
- name: Include vault
|
||||||
|
ansible.builtin.include_vars:
|
||||||
|
file: jaydee.yml
|
||||||
|
- name: Install autofs
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- autofs
|
||||||
|
- cifs-utils
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/auto.auth"
|
||||||
|
content: |
|
||||||
|
username={{ samba_user }}
|
||||||
|
password={{ samba_password }}
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- name: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/auto.m-server"
|
||||||
|
content: |
|
||||||
|
docker_data -fstype=nfs m-server.home.lan:/docker_data
|
||||||
|
downloads -fstype=nfs m-server.home.lan:/downloads
|
||||||
|
movies -fstype=nfs m-server.home.lan:/movies
|
||||||
|
shows -fstype=nfs m-server.home.lan:/shows
|
||||||
|
music -fstype=nfs m-server.home.lan:/music
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'm-server.home.lan'
|
||||||
|
- name: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/auto.amd"
|
||||||
|
content: |
|
||||||
|
backup -fstype=nfs amd.home.lan:/backup
|
||||||
|
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname == 'm-server.home.lan'
|
||||||
|
- name: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/auto.rack"
|
||||||
|
content: |
|
||||||
|
docker_data -fstype=nfs rack.home.lan:/docker_data
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'rack.home.lan'
|
||||||
|
|
||||||
|
- name: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/auto.rpi5"
|
||||||
|
content: |
|
||||||
|
docker_data -fstype=nfs rpi5.home.lan:/docker_data
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'rpi5.home.lan'
|
||||||
|
|
||||||
|
# - name: Creating a file with content
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# dest: "/etc/auto.nas-movies"
|
||||||
|
# content: |
|
||||||
|
# movies -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/movies
|
||||||
|
# mode: '0600'
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
|
||||||
|
# - name: Creating a file with content
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# dest: "/etc/auto.nas-movies"
|
||||||
|
# content: |
|
||||||
|
# movies --fstype=nfs,rw nas.home.lan:/movies
|
||||||
|
# mode: '0600'
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
# - name: Creating a file with content
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# dest: "/etc/auto.nas-music"
|
||||||
|
# content: |
|
||||||
|
# music --fstype=nfs,rw nas.home.lan:/music
|
||||||
|
# mode: '0600'
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
# - name: Creating a file with content
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# dest: "/etc/auto.nas-shows"
|
||||||
|
# content: |
|
||||||
|
# shows --fstype=nfs,rw nas.home.lan:/shows
|
||||||
|
# mode: '0600'
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
# - name: Creating a file with content
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# dest: "/etc/auto.nas-music"
|
||||||
|
# content: |
|
||||||
|
# music -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/music
|
||||||
|
# mode: '0600'
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
|
||||||
|
# - name: Creating a file with content
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# dest: "/etc/auto.nas-music"
|
||||||
|
# content: |
|
||||||
|
# music --fstype=nfs,rw ://nas.home.lan/music
|
||||||
|
# mode: '0600'
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
|
||||||
|
# - name: Creating a file with content
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# dest: "/etc/auto.nas-shows"
|
||||||
|
# content: |
|
||||||
|
# shows -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/shows
|
||||||
|
# mode: '0600'
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
|
||||||
|
# - 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: Creating a file with content
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/auto.nas"
|
||||||
|
content: |
|
||||||
|
docker-data --fstype=nfs,rw nas.home.lan:/docker_data
|
||||||
|
data --fstype=nfs,rw nas.home.lan:/Data
|
||||||
|
qda_1 --fstype=nfs,rw nas.home.lan:/qda_1
|
||||||
|
photo --fstype=nfs,rw nas.home.lan:/Photo
|
||||||
|
install --fstype=nfs,rw nas.home.lan:/install
|
||||||
|
games --fstype=nfs,rw nas.home.lan:/games
|
||||||
|
movies --fstype=nfs,rw nas.home.lan:/movies
|
||||||
|
music --fstype=nfs,rw nas.home.lan:/music
|
||||||
|
shows --fstype=nfs,rw nas.home.lan:/shows
|
||||||
|
xxx --fstype=nfs,rw nas.home.lan:/xxx
|
||||||
|
proxmox --fstype=nfs,rw nas.home.lan:/proxmox
|
||||||
|
live --fstype=nfs,rw nas.home.lan:/live
|
||||||
|
mode: '0600'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
# - 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
|
||||||
|
regexp: "^/media/nas.*"
|
||||||
|
line: /media/nas /etc/auto.nas --timeout 360 --ghost
|
||||||
|
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
regexp: "^/media/m-server.*"
|
||||||
|
line: /media/m-server /etc/auto.m-server --timeout 360 --ghost
|
||||||
|
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
regexp: "^/media/rack.*"
|
||||||
|
line: /media/rack /etc/auto.rack --timeout 360 --ghost
|
||||||
|
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
regexp: "^/media/rpi5.*"
|
||||||
|
line: /media/rpi5 /etc/auto.rpi5 --timeout 360 --ghost
|
||||||
|
- name: Reconfigure autofs Server
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/auto.master
|
||||||
|
regexp: "^/media/amd.*"
|
||||||
|
line: /media/amd /etc/auto.amd --timeout 360 --ghost
|
||||||
|
|
||||||
|
- name: Restart docker service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: autofs
|
||||||
|
state: restarted
|
||||||
127
roles/proxmox/tasks/main.yml
Executable file
127
roles/proxmox/tasks/main.yml
Executable file
@@ -0,0 +1,127 @@
|
|||||||
|
- name: Omv Setup
|
||||||
|
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
|
||||||
|
block:
|
||||||
|
# - name: Gather facts
|
||||||
|
# ansible.builtin.setup:
|
||||||
|
# - name: Print
|
||||||
|
# ansible.builtin.debug:
|
||||||
|
# msg: "{{ ansible_facts }}"
|
||||||
|
- name: Include vault
|
||||||
|
ansible.builtin.include_vars:
|
||||||
|
file: jaydee.yml
|
||||||
|
name: mysecrets
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
- name: Delete content & directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
state: absent
|
||||||
|
path: "{{ dest_folder }}"
|
||||||
|
|
||||||
|
- name: "Check if listed package is installed or not on Debian Linux family"
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
check_mode: true
|
||||||
|
loop:
|
||||||
|
- git
|
||||||
|
register: git_installed
|
||||||
|
|
||||||
|
- name: Include role only if missing
|
||||||
|
ansible.builtin.include_role:
|
||||||
|
name: git
|
||||||
|
when: not git_installed
|
||||||
|
|
||||||
|
- name: Pull repo
|
||||||
|
tags:
|
||||||
|
- git_pull
|
||||||
|
ansible.builtin.git:
|
||||||
|
repo: "https://{{ mysecrets['git_user'] | urlencode }}:{{ mysecrets['git_password_mqtt'] | urlencode }}@gitlab.sectorq.eu/jaydee/proxmox.git"
|
||||||
|
dest: "{{ dest_folder }}"
|
||||||
|
update: true
|
||||||
|
clone: true
|
||||||
|
version: main
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
- name: Print
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "{{ inventory_hostname }}"
|
||||||
|
- name: Create a directory if it does not exist
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /myapps/proxmox
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
|
||||||
|
- name: Upload script
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "{{ dest_folder }}/proxmox.py"
|
||||||
|
dest: /myapps/proxmox/proxmox.py
|
||||||
|
remote_src: true
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
- name: Upload exclude file
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "{{ dest_folder }}/exclude.txt"
|
||||||
|
dest: /myapps/exclude.txt
|
||||||
|
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
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname != 'nas.home.lan'
|
||||||
|
- name: Upload docker_backups.py
|
||||||
|
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 == 'm-server.home.lan'
|
||||||
|
- name: Install venv
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- python3-virtualenv
|
||||||
|
- rsync
|
||||||
|
|
||||||
|
- name: Install specified python requirements in indicated (virtualenv)
|
||||||
|
ansible.builtin.pip:
|
||||||
|
requirements: /myapps/requirements.txt
|
||||||
|
virtualenv: /myapps/venv
|
||||||
|
|
||||||
|
- name: 'Ensure an old job is no longer present. Removes any job that is prefixed by "#Ansible: an old job" from the crontab'
|
||||||
|
ansible.builtin.cron:
|
||||||
|
name: "omv_backup"
|
||||||
|
state: absent
|
||||||
|
- name: Upload service config
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: omv_backup.service
|
||||||
|
dest: /etc/systemd/system/omv_backup.service
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: inventory_hostname == 'amd.home.lan'
|
||||||
|
- name: Restart omv service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: omv_backup
|
||||||
|
state: restarted
|
||||||
|
daemon_reload: true
|
||||||
|
enabled: 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
roles/proxmox/vars/main.yml
Executable file
1
roles/proxmox/vars/main.yml
Executable file
@@ -0,0 +1 @@
|
|||||||
|
dest_folder: "/tmp/ans_repo"
|
||||||
Reference in New Issue
Block a user