Initial Push of scraped playbooks
This commit is contained in:
parent
8ea7a36196
commit
7aa8e04057
2
LICENSE
2
LICENSE
@ -58,7 +58,7 @@ APPENDIX: How to apply the Apache License to your work.
|
|||||||
|
|
||||||
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
|
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
Copyright 2021 Janic Voser
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
# Ansible
|
# Ansible
|
||||||
|
|
||||||
Ansible Playbooks & Jinja2 Templates
|
Ansible Playbooks & Jinja2 Templates
|
||||||
|
|
||||||
|
# Structure
|
||||||
|
|
||||||
|
35
playbooks/Netadmin/NetAdmin.yaml
Normal file
35
playbooks/Netadmin/NetAdmin.yaml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
- name: "Mount NAS (NetAdmin)"
|
||||||
|
hosts: home
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: "Create Mountpoint (/mnt/NetAdmin)"
|
||||||
|
file:
|
||||||
|
path: /mnt/NetAdmin
|
||||||
|
state: directory
|
||||||
|
become: True
|
||||||
|
- name: "Install & Upgrade NFS (Debian)"
|
||||||
|
package:
|
||||||
|
name: "nfs-common"
|
||||||
|
state: "present"
|
||||||
|
when: ansible_os_family == "Debian"
|
||||||
|
become: True
|
||||||
|
- name: "Install & Upgrade NFS (Arch)"
|
||||||
|
package:
|
||||||
|
name: "nfs-utils"
|
||||||
|
state: "present"
|
||||||
|
when: ansible_os_family == "Arch"
|
||||||
|
become: True
|
||||||
|
- name: "Edit Mountfile (/etc/fstab)"
|
||||||
|
shell: grep -c "^192.168.1.3:/NetAdmin" /etc/fstab || true
|
||||||
|
register: LineInFile
|
||||||
|
- name: "Mount All mount"
|
||||||
|
lineinfile:
|
||||||
|
dest: /etc/fstab
|
||||||
|
line: "192.168.1.3:/NetAdmin /mnt/NetAdmin nfs rw,hard,intr,timeo=14 0 0"
|
||||||
|
when: LineInFile.stdout == "0"
|
||||||
|
become: True
|
||||||
|
- name: "Mount All if needed"
|
||||||
|
shell: mount -a
|
||||||
|
become: True
|
||||||
|
...
|
35
playbooks/dnsfix/NetAdmin.yaml
Normal file
35
playbooks/dnsfix/NetAdmin.yaml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
- name: "Mount NAS (NetAdmin)"
|
||||||
|
hosts: home
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: "Create Mountpoint (/mnt/NetAdmin)"
|
||||||
|
file:
|
||||||
|
path: /mnt/NetAdmin
|
||||||
|
state: directory
|
||||||
|
become: True
|
||||||
|
- name: "Install & Upgrade NFS (Debian)"
|
||||||
|
package:
|
||||||
|
name: "nfs-common"
|
||||||
|
state: "present"
|
||||||
|
when: ansible_os_family == "Debian"
|
||||||
|
become: True
|
||||||
|
- name: "Install & Upgrade NFS (Arch)"
|
||||||
|
package:
|
||||||
|
name: "nfs-utils"
|
||||||
|
state: "present"
|
||||||
|
when: ansible_os_family == "Arch"
|
||||||
|
become: True
|
||||||
|
- name: "Edit Mountfile (/etc/fstab)"
|
||||||
|
shell: grep -c "^192.168.1.3:/NetAdmin" /etc/fstab || true
|
||||||
|
register: LineInFile
|
||||||
|
- name: "Mount All mount"
|
||||||
|
lineinfile:
|
||||||
|
dest: /etc/fstab
|
||||||
|
line: "192.168.1.3:/NetAdmin /mnt/NetAdmin nfs rw,hard,intr,timeo=14 0 0"
|
||||||
|
when: LineInFile.stdout == "0"
|
||||||
|
become: True
|
||||||
|
- name: "Mount All if needed"
|
||||||
|
shell: mount -a
|
||||||
|
become: True
|
||||||
|
...
|
14
playbooks/dnsfix/dnsfix.yaml
Normal file
14
playbooks/dnsfix/dnsfix.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: "Fix DNS"
|
||||||
|
hosts: rpis
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: "Copy working resolv.conf"
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: /srv/ansible/files/rpis/resolve.conf
|
||||||
|
dest: /etc/resolv.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
become: True
|
||||||
|
...
|
31
playbooks/fail2ban/fail2ban.yaml
Normal file
31
playbooks/fail2ban/fail2ban.yaml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
- name: "Install Fail2Ban"
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: "Install Fail2Ban"
|
||||||
|
package:
|
||||||
|
name: "fail2ban"
|
||||||
|
state: "present"
|
||||||
|
become: True
|
||||||
|
|
||||||
|
- name: "Start Fail2ban service"
|
||||||
|
service:
|
||||||
|
name: "fail2ban.service"
|
||||||
|
state: "started"
|
||||||
|
enabled: "yes"
|
||||||
|
become: True
|
||||||
|
- name: "Copy Custom Fail2ban Config "
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: /srv/ansible/files/fail2ban/jail.local
|
||||||
|
dest: /etc/fail2ban/jail.local
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
become: True
|
||||||
|
- name: "Restart Fail2ban"
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: fail2ban
|
||||||
|
state: reloaded
|
||||||
|
become: True
|
||||||
|
...
|
14
playbooks/firewalld/all.rules.firewalld.yaml
Normal file
14
playbooks/firewalld/all.rules.firewalld.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: "Apply Custom Firewall Rules to every Ansible-Managed Machine"
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
# Create Firewall Rules
|
||||||
|
# SSH - ALL
|
||||||
|
- name: "Create Firewall Rule - SSH"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
service: ssh
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
...
|
46
playbooks/firewalld/firewalld.yaml
Normal file
46
playbooks/firewalld/firewalld.yaml
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
- name: "Install & Configure Firewalld"
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
# Setup correct Firewall
|
||||||
|
- name: "Stop and disable ufw"
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: "ufw"
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
become: True
|
||||||
|
- name: "Remove ufw"
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: "ufw"
|
||||||
|
state: "absent"
|
||||||
|
become: True
|
||||||
|
- name: "Install & Update firewalld"
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: "firewalld"
|
||||||
|
state: "latest"
|
||||||
|
become: True
|
||||||
|
- name: "Start and enable firewalld"
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: "firewalld"
|
||||||
|
state: "started"
|
||||||
|
enabled: yes
|
||||||
|
# Create Firewall Rules loaded from external Playbooks
|
||||||
|
- name: "Create Firewall Rules for any Node"
|
||||||
|
import_playbook: all.rules.firewalld.yaml
|
||||||
|
# Create Firewall Rules for Groups loaded from external Playbooks
|
||||||
|
- name: "Create Firewall Rules for Servers"
|
||||||
|
import_playbook: servers.rules.firewalld.yaml
|
||||||
|
- name: "Create Firewall Rules for RPIS"
|
||||||
|
import_playbook: rpis.rules.firewalld.yaml
|
||||||
|
# Create Firewall Rules for specific Hosts loaded from external Playbooks
|
||||||
|
- name: "Create Firewall Rules for srvdoc01"
|
||||||
|
import_playbook: srvdoc01.rul0es.firewalld.yaml
|
||||||
|
# Reload Firewall to activate new Rules
|
||||||
|
- name: "Reload Firewall Rules"
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: "firewall-cmd --reload"
|
||||||
|
# Due to security Conditions Fail2ban gets installed too
|
||||||
|
- name: "Install Fail2ban with custom Ansible-Playbook"
|
||||||
|
import_playbook: ../prod/fail2ban.yaml
|
||||||
|
...
|
14
playbooks/firewalld/rpis.rules.firewalld.yaml
Normal file
14
playbooks/firewalld/rpis.rules.firewalld.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: "Apply Custom Firewall Rules to every Ansible-Managed Raspberry"
|
||||||
|
hosts: rpis
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
# Create Firewall Rules
|
||||||
|
# SSH - ALL
|
||||||
|
- name: "Create Firewall Rule - SSH"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
service: ssh
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
...
|
14
playbooks/firewalld/servers.rules.firewalld.yaml
Normal file
14
playbooks/firewalld/servers.rules.firewalld.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: "Apply Custom Firewall Rules to every Ansible-Managed Server"
|
||||||
|
hosts: servers
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
# Create Firewall Rules
|
||||||
|
# Cockpit - ALL Servers
|
||||||
|
- name: "Create Firewall Rule - SSH"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
service: cockpit
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
...
|
84
playbooks/firewalld/srvdoc01.rules.firewalld.yaml
Normal file
84
playbooks/firewalld/srvdoc01.rules.firewalld.yaml
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
- name: "IApply Custom Firewall Rules to SRVDOC01 "
|
||||||
|
hosts: srvdoc01
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- HTTP"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
service: http
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- HTTPS"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
service: https
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- SMTP"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 25/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- POP3"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 110/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- IMAP"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 143/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- SMTPs"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 465/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- SMTP"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 587/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- IMAPs"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 993/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- POP3s"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 995/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- DNS"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 53/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- DNS"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 53/udp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- DNSs"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 853/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
- name: "Create Firewall Rule [SRVDOC01]- DNSs"
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: public
|
||||||
|
port: 853/udp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
...
|
12
playbooks/gatherfacts/gather_facts.yaml
Normal file
12
playbooks/gatherfacts/gather_facts.yaml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
gather_facts: yes
|
||||||
|
become: false
|
||||||
|
tasks:
|
||||||
|
- name: Distribution
|
||||||
|
debug: msg="{{ ansible_distribution }}"
|
||||||
|
- name: Distribution version
|
||||||
|
debug: msg="{{ ansible_distribution_version}}"
|
||||||
|
- name: Distribution major version
|
||||||
|
debug: msg="{{ ansible_distribution_major_version }}"
|
||||||
|
...
|
30
playbooks/keepalived/keepalived.yaml
Normal file
30
playbooks/keepalived/keepalived.yaml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
- name: Install & Configure Keepalived VIP
|
||||||
|
hosts: rpis
|
||||||
|
remote_user: root
|
||||||
|
become: True
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update APT-cache if Debianbased
|
||||||
|
apt: update_cache=yes cache_valid_time=3600
|
||||||
|
when: ansible_os_family == 'Debian'
|
||||||
|
- name: Install keepalived
|
||||||
|
package:
|
||||||
|
name: keepalived
|
||||||
|
state: latest
|
||||||
|
- name: Configure keepalived
|
||||||
|
template:
|
||||||
|
src: /srv/ansible/files/templates/keepalived/keepalived.conf.j2
|
||||||
|
dest: /etc/keepalived/keepalived.conf
|
||||||
|
register: template
|
||||||
|
- name: Restart keepalive Server
|
||||||
|
service:
|
||||||
|
name: keepalived
|
||||||
|
state: restarted
|
||||||
|
when: template.changed
|
||||||
|
- name: Running keepalive Server
|
||||||
|
service:
|
||||||
|
name: keepalived
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
...
|
19
playbooks/update/update.yaml
Normal file
19
playbooks/update/update.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
- name: "Update Linux Servers"
|
||||||
|
hosts: servers
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: "Update && Upgrade Servers (Debianbased)"
|
||||||
|
apt:
|
||||||
|
name: '*'
|
||||||
|
state: latest
|
||||||
|
when: ansible_facts['os_family'] == "Debian"
|
||||||
|
become: True
|
||||||
|
|
||||||
|
- name: "Update && Upgrade Servers (Redhatbased)"
|
||||||
|
dnf:
|
||||||
|
name: '*'
|
||||||
|
state: latest
|
||||||
|
when: ansible_facts['os_family'] == "RedHat"
|
||||||
|
become: True
|
||||||
|
...
|
Loading…
Reference in New Issue
Block a user