diff options
| author | Sam Chudnick <sam@chudnick.com> | 2023-06-25 09:52:36 -0400 |
|---|---|---|
| committer | Sam Chudnick <sam@chudnick.com> | 2023-06-25 09:52:36 -0400 |
| commit | 95b73daa36b23565a8566f71f9b202d3459b685f (patch) | |
| tree | cb17b021be70e7868d0ec235a761f0ecdc80f3f2 /roles/linux_base | |
Diffstat (limited to 'roles/linux_base')
| -rw-r--r-- | roles/linux_base/defaults/main.yml | 1 | ||||
| -rw-r--r-- | roles/linux_base/handlers/main.yml | 16 | ||||
| -rw-r--r-- | roles/linux_base/tasks/main.yml | 57 |
3 files changed, 74 insertions, 0 deletions
diff --git a/roles/linux_base/defaults/main.yml b/roles/linux_base/defaults/main.yml new file mode 100644 index 0000000..3fb0cb5 --- /dev/null +++ b/roles/linux_base/defaults/main.yml | |||
| @@ -0,0 +1 @@ | |||
| domain: "home.local" | |||
diff --git a/roles/linux_base/handlers/main.yml b/roles/linux_base/handlers/main.yml new file mode 100644 index 0000000..0065ae9 --- /dev/null +++ b/roles/linux_base/handlers/main.yml | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | - name: update and upgrade - debian | ||
| 2 | when: ansible_facts['distribution'] == 'Debian' | ||
| 3 | become: yes | ||
| 4 | apt: | ||
| 5 | name: "*" | ||
| 6 | state: latest | ||
| 7 | update_cache: yes | ||
| 8 | register: apt_upgrade | ||
| 9 | retries: 100 | ||
| 10 | until: apt_upgrade is success or ('Failed to lock apt for exclusive operation' not in apt_upgrade.msg and '/var/lib/dpkg/lock' not in apt_upgrade.msg) | ||
| 11 | |||
| 12 | - name: update and upgrade - fedora | ||
| 13 | when: ansible_facts['distribution'] == 'Fedora' | ||
| 14 | dnf: | ||
| 15 | name: "*" | ||
| 16 | state: latest | ||
diff --git a/roles/linux_base/tasks/main.yml b/roles/linux_base/tasks/main.yml new file mode 100644 index 0000000..ef523ef --- /dev/null +++ b/roles/linux_base/tasks/main.yml | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | - name: remove cloud config managed /etc/hosts | ||
| 2 | lineinfile: | ||
| 3 | path: /etc/cloud/cloud.cfg | ||
| 4 | regexp: ".*update_etc_hosts.*" | ||
| 5 | state: absent | ||
| 6 | |||
| 7 | - name: set fully qualified hostname | ||
| 8 | notify: | ||
| 9 | - update and upgrade - debian | ||
| 10 | - update and upgrade - fedora | ||
| 11 | hostname: | ||
| 12 | name: "{{ ansible_hostname }}.{{ domain }}" | ||
| 13 | |||
| 14 | - name: use https repos - debian | ||
| 15 | when: ansible_facts['distribution'] == 'Debian' | ||
| 16 | replace: | ||
| 17 | path: /etc/apt/sources.list | ||
| 18 | regexp: "http://" | ||
| 19 | replace: "https://" | ||
| 20 | |||
| 21 | - name: install packages | ||
| 22 | package: | ||
| 23 | name: "{{ base_packages }}" | ||
| 24 | state: latest | ||
| 25 | |||
| 26 | - name: allow ssh | ||
| 27 | when: ansible_facts['hostname'] != 'proxmox' | ||
| 28 | ufw: | ||
| 29 | rule: allow | ||
| 30 | name: ssh | ||
| 31 | |||
| 32 | - name: reload ufw | ||
| 33 | when: ansible_facts['hostname'] != 'proxmox' | ||
| 34 | ufw: | ||
| 35 | state: reloaded | ||
| 36 | |||
| 37 | - name: enable ufw | ||
| 38 | when: ansible_facts['hostname'] != 'proxmox' | ||
| 39 | ufw: | ||
| 40 | state: enabled | ||
| 41 | |||
| 42 | - name: default deny incoming | ||
| 43 | when: ansible_facts['hostname'] != 'proxmox' | ||
| 44 | ufw: | ||
| 45 | default: deny | ||
| 46 | direction: incoming | ||
| 47 | |||
| 48 | - name: default allow outgoing | ||
| 49 | when: ansible_facts['hostname'] != 'proxmox' | ||
| 50 | ufw: | ||
| 51 | default: allow | ||
| 52 | direction: outgoing | ||
| 53 | |||
| 54 | - name: reload ufw | ||
| 55 | when: ansible_facts['hostname'] != 'proxmox' | ||
| 56 | ufw: | ||
| 57 | state: reloaded | ||
