commit a3192e55c3cdbeb924ea31d8711d7310faf33473 Author: Udo Waechter Date: Thu Sep 26 17:06:04 2024 +0200 initial diff --git a/.project b/.project new file mode 100644 index 0000000..9aeb17f --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + maketank-ansible + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/inventory.yaml b/inventory.yaml new file mode 100644 index 0000000..ca80879 --- /dev/null +++ b/inventory.yaml @@ -0,0 +1,7 @@ +mkt: + hosts: + rechner02.maketank.net: + mx03.maketank.net: + uncle02.maketank.net: + mon01.maketank.net: + \ No newline at end of file diff --git a/roles/autofs/tasks/main.yaml b/roles/autofs/tasks/main.yaml new file mode 100644 index 0000000..0d479e9 --- /dev/null +++ b/roles/autofs/tasks/main.yaml @@ -0,0 +1,24 @@ +- name: Install autofs + apt: + state: present + name: + - autofs + +- name: Create /net + file: + path: /net + state: directory + +- name: Update auto.master + lineinfile: + path: /etc/auto.master + regexp: '^#/net' + line: /net -hosts + register: auto_master_update + + +- name: Restart autofs + service: + name: autofs + state: restarted + when: auto_master_update.changed \ No newline at end of file diff --git a/roles/common/tasks/darwin.yaml b/roles/common/tasks/darwin.yaml new file mode 100644 index 0000000..7c8c464 --- /dev/null +++ b/roles/common/tasks/darwin.yaml @@ -0,0 +1,14 @@ +- name: Install common packages + become: true + become_user: admin + homebrew: + state: present + name: + - btop + - htop + - rsync + - rclone + - vim + - curl + - arping + diff --git a/roles/common/tasks/linux.yaml b/roles/common/tasks/linux.yaml new file mode 100644 index 0000000..8b0a89e --- /dev/null +++ b/roles/common/tasks/linux.yaml @@ -0,0 +1,63 @@ +- name: Install common packages + apt: + state: present + name: + - btop + - htop + - iotop + - net-tools + - tcpdump + - curl + - vim + - rclone + - rsync + - borgmatic + - cifs-utils + - nfs-common + - etckeeper + - iputils-arping + - bwm-ng + - iftop + +- name: Remove packages in VMs + apt: + state: absent + purge: true + name: + - smartmontools + - lm-sensors + - ipmitools + - openipmi + when: ansible_facts['virtualization_role'] == "guest" + +- name: Install packages on physical hosts + apt: + state: present + name: + - lm-sensors + - hdparm + when: ansible_facts['virtualization_role'] == "host" + +- name: Update /etc/hosts + lineinfile: + path: /etc/hosts + regexp: '^127\.0\.1\.1' + line: 127.0.1.1 {{ ansible_nodename }} + +- name: Kernel modules + include_role: + name: modules + +- name: sudo for Linux + include_role: + name: sudo + +#- name: autofs for Linux +# include_role: +# name: autofs +# +# Set vm.swappiness to 5 in /etc/sysctl.conf +- sysctl: + name: vm.swappiness + value: '5' + state: present diff --git a/roles/common/tasks/main.yaml b/roles/common/tasks/main.yaml new file mode 100644 index 0000000..9f03b90 --- /dev/null +++ b/roles/common/tasks/main.yaml @@ -0,0 +1,6 @@ +- name: Common Tasks for all hosts + include_tasks: "{{ ansible_system | lower }}.yaml" + +- name: Prometheus + include_role: + name: prometheus-node-exporter diff --git a/roles/modules/tasks/main.yaml b/roles/modules/tasks/main.yaml new file mode 100644 index 0000000..770381b --- /dev/null +++ b/roles/modules/tasks/main.yaml @@ -0,0 +1,5 @@ +- name: Kernel module nf_conntrack + community.general.modprobe: + name: nf_conntrack + state: present + persistent: present \ No newline at end of file diff --git a/roles/prometheus-node-exporter/tasks/darwin.yaml b/roles/prometheus-node-exporter/tasks/darwin.yaml new file mode 100644 index 0000000..34d9e2c --- /dev/null +++ b/roles/prometheus-node-exporter/tasks/darwin.yaml @@ -0,0 +1,25 @@ +- name: Install node-exporter + become: true + become_user: admin + homebrew: + state: present + name: + - node_exporter + +# TODO: Fix this +#- name: Check service running +# become: true +# become_user: admin +# command: "/opt/homebrew/bin/brew services info --json node_exporter" +# register: service_running +# ignore_errors: True +# +#- name: Debug +# debug: +# msg: "{{ service_running }}" +# +#- name: Start service +# become: true +# become_user: admin +# command: "/opt/homebrew/bin/brew services start node_exporter" +# when: {{ service_running[*].status }} != "started" \ No newline at end of file diff --git a/roles/prometheus-node-exporter/tasks/linux.yaml b/roles/prometheus-node-exporter/tasks/linux.yaml new file mode 100644 index 0000000..39e23df --- /dev/null +++ b/roles/prometheus-node-exporter/tasks/linux.yaml @@ -0,0 +1,5 @@ +- name: Install node-exporter + apt: + state: present + name: + - prometheus-node-exporter \ No newline at end of file diff --git a/roles/prometheus-node-exporter/tasks/main.yaml b/roles/prometheus-node-exporter/tasks/main.yaml new file mode 100644 index 0000000..4aaa85d --- /dev/null +++ b/roles/prometheus-node-exporter/tasks/main.yaml @@ -0,0 +1,2 @@ +- name: Prometheus Node Exporter + include_tasks: "{{ ansible_system | lower }}.yaml" diff --git a/roles/sudo/tasks/main.yaml b/roles/sudo/tasks/main.yaml new file mode 100644 index 0000000..71d19c2 --- /dev/null +++ b/roles/sudo/tasks/main.yaml @@ -0,0 +1,13 @@ +- name: Install sudo + apt: + name: sudo + state: present + +- name: ensure Admini role + user: + comment: Administrative User + user: admini + password: $6$WmyMaztTbqI6Ga19$AADxgXtK.3q/ne0v.rimlKWRmZoX0bXApWRmoVTiQAdcGrfMwiInDHWElz5zfQiBGTZM6wOnSletT9JfdO6Zl0 + groups: + - sudo + append: true \ No newline at end of file diff --git a/site.yaml b/site.yaml new file mode 100644 index 0000000..aecc225 --- /dev/null +++ b/site.yaml @@ -0,0 +1,7 @@ +- hosts: all + gather_facts: true + + roles: + - role: common + tags: common +