homelab_automation/ansible/playbooks/builtin/_builtin_install_base_tools.yml

116 lines
3.1 KiB
YAML

---
- name: Install base tools required by builtin metrics collection
hosts: all:!localhost:!hp.truenas.home:!ali2v.truenas.home
become: true
gather_facts: true
vars:
_builtin_playbook: true
_builtin_id: install_base_tools
_collect_metrics: false
base_packages_debian:
- coreutils
- util-linux
- gawk
- grep
- python3
- iproute2
- procps
optional_packages_debian:
- lvm2
- lm-sensors
- zfsutils-linux
optional_packages_rpi_debian:
- libraspberrypi-bin
tasks:
- name: Detect Raspberry Pi (Debian)
ansible.builtin.set_fact:
is_raspberry_pi: >-
{{
(ansible_distribution | default('')) in ['Raspbian']
or ((ansible_lsb | default({})).id | default('')) in ['Raspbian']
or ('raspberry' in (ansible_machine | default('') | lower))
}}
when: ansible_os_family == "Debian"
- name: Install base packages (Debian/Ubuntu)
ansible.builtin.apt:
name: "{{ base_packages_debian }}"
state: present
update_cache: true
when: ansible_os_family == "Debian"
register: apt_base
- name: Install optional packages (Debian/Ubuntu)
ansible.builtin.apt:
name: "{{ optional_packages_debian }}"
state: present
update_cache: false
when: ansible_os_family == "Debian"
register: apt_optional
ignore_errors: true
- name: Install Raspberry Pi optional packages (Debian/Ubuntu)
ansible.builtin.apt:
name: "{{ optional_packages_rpi_debian }}"
state: present
update_cache: false
when:
- ansible_os_family == "Debian"
- is_raspberry_pi | default(false)
register: apt_optional_rpi
ignore_errors: true
- name: Install base packages (RedHat)
ansible.builtin.yum:
name:
- coreutils
- util-linux
- gawk
- grep
- python3
- iproute
- procps-ng
state: present
when: ansible_os_family == "RedHat"
register: yum_base
- name: Install optional packages (RedHat)
ansible.builtin.yum:
name:
- lvm2
- lm_sensors
state: present
when: ansible_os_family == "RedHat"
register: yum_optional
ignore_errors: true
- name: Install packages (Alpine)
ansible.builtin.apk:
name:
- coreutils
- util-linux
- gawk
- grep
- python3
- iproute2
- procps
- lvm2
- lm-sensors
state: present
update_cache: true
when: ansible_os_family == "Alpine"
register: apk_base
- name: Install base packages (FreeBSD)
ansible.builtin.package:
name:
- gawk
- python3
state: present
when: ansible_os_family == "FreeBSD"
register: pkg_base
- name: Output installation summary
ansible.builtin.debug:
msg: "BASE_TOOLS_INSTALL_RESULT host={{ inventory_hostname }} os_family={{ ansible_os_family }}"