96 lines
2.5 KiB
YAML
96 lines
2.5 KiB
YAML
- name: Update ubuntu repos
|
|
when: ansible_distribution == 'Ubuntu'
|
|
become: true
|
|
ansible.builtin.apt:
|
|
update_cache: true
|
|
|
|
- name: Add Kubernetes repo
|
|
when: ansible_distribution == 'Fedora' or ansible_distribution == 'Rocky'
|
|
become: true
|
|
template:
|
|
src: kubernetes.repo.j2
|
|
dest: /etc/yum.repos.d/kubernetes.repo
|
|
force: true
|
|
|
|
- name: Add Docker repo
|
|
when: ansible_distribution == 'Fedora' or ansible_distribution == 'Rocky'
|
|
become: true
|
|
template:
|
|
src: docker.repo.j2
|
|
dest: /etc/yum.repos.d/docker.repo
|
|
force: true
|
|
|
|
- name: Update yum repos
|
|
when: ansible_distribution == 'Fedora' or ansible_distribution == 'Rocky'
|
|
become: true
|
|
ansible.builtin.yum:
|
|
update_cache: true
|
|
# ---------------------------------------------------------------------
|
|
# Upgrade system if it's the first ansible run
|
|
# ---------------------------------------------------------------------
|
|
- name: Check that the ansible_initialized file exists
|
|
become: true
|
|
stat:
|
|
path: /etc/ansible_initialized
|
|
register: stat_result
|
|
|
|
- name: Upgrade system
|
|
when: not stat_result.stat.exists
|
|
block:
|
|
- name: Upgrade ubuntu repos
|
|
when: ansible_distribution == 'Ubuntu'
|
|
become: true
|
|
ansible.builtin.apt:
|
|
upgrade: full
|
|
|
|
- name: Upgrade all packages
|
|
when: ansible_distribution == 'Fedora' or ansible_distribution == 'Rocky'
|
|
become: true
|
|
ansible.builtin.yum:
|
|
name: '*'
|
|
state: latest
|
|
|
|
- name: Reboot to apply upgrades
|
|
when: not stat_result.stat.exists
|
|
become: true
|
|
ansible.builtin.reboot:
|
|
|
|
- name: Create the ansible_initialized file
|
|
become: true
|
|
file:
|
|
path: /etc/ansible_initialized
|
|
state: touch
|
|
when: not stat_result.stat.exists
|
|
|
|
- name: Install host-specific packages
|
|
when: packages is defined
|
|
become: true
|
|
ansible.builtin.package:
|
|
name: "{{ item.name }}"
|
|
state: "{{ item.state }}"
|
|
loop: "{{ packages }}"
|
|
|
|
- name: Install common packages
|
|
become: true
|
|
ansible.builtin.package:
|
|
name: "{{ item.name }}"
|
|
state: "{{ item.state }}"
|
|
loop: "{{ common_packages }}"
|
|
|
|
- name: Configure host-specific services
|
|
when: services is defined
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
state: "{{ item.state }}"
|
|
name: "{{ item.name }}"
|
|
enabled: "{{ item.enabled }}"
|
|
loop: "{{ services }}"
|
|
|
|
- name: Configure common services
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
state: "{{ item.state }}"
|
|
name: "{{ item.name }}"
|
|
enabled: "{{ item.enabled }}"
|
|
loop: "{{ common_services }}"
|