From 2972e48188db45269e2ac9c5d23a63b3eb011b5a Mon Sep 17 00:00:00 2001 From: Sudoix Date: Wed, 8 Jan 2025 10:15:09 +0100 Subject: [PATCH] add preinstall ansible role --- .../roles/preinstall/tasks/basic-deb.yml | 55 +++++++++++++++++++ deployment/roles/preinstall/tasks/main.yml | 48 ++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 deployment/roles/preinstall/tasks/basic-deb.yml create mode 100644 deployment/roles/preinstall/tasks/main.yml diff --git a/deployment/roles/preinstall/tasks/basic-deb.yml b/deployment/roles/preinstall/tasks/basic-deb.yml new file mode 100644 index 00000000..c987cdea --- /dev/null +++ b/deployment/roles/preinstall/tasks/basic-deb.yml @@ -0,0 +1,55 @@ +- name: Upgrade system + apt: + upgrade: yes + update_cache: true + state: latest + +- name: Install necessary tools + apt: + name: + - vim + - sudo + - wget + - curl + - telnet + - nload + - ca-certificates + state: latest + +- name: Fix broken packages + apt: + state: fixed + +- name: Ensure the /etc/apt/keyrings directory exists + file: + path: /etc/apt/keyrings + state: directory + mode: '0755' + owner: root + group: root + +- name: Add Docker GPG key + get_url: + url: "{{ docker_gpg_key_url }}/gpg" + dest: "{{ docker_gpg_key_path }}" + +- name: Determine the architecture + command: dpkg --print-architecture + register: architecture + +- name: Add Docker APT repository + apt_repository: + repo: "deb [arch={{ architecture.stdout }} signed-by={{ docker_gpg_key_path }}] {{ docker_gpg_key_url }} {{ ansible_distribution_release }} stable" + state: present + update_cache: true + +- name: Install docker and docker compose + apt: + name: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-compose + - docker-buildx-plugin + - docker-compose-plugin + state: present diff --git a/deployment/roles/preinstall/tasks/main.yml b/deployment/roles/preinstall/tasks/main.yml new file mode 100644 index 00000000..453ad4fd --- /dev/null +++ b/deployment/roles/preinstall/tasks/main.yml @@ -0,0 +1,48 @@ +--- +# tasks file for preinstall +- name: Set timezone to UTC + timezone: + name: Etc/UTC + +- name: Set hostname + command: hostnamectl set-hostname {{ inventory_hostname }} + +- name: Add hostname + lineinfile: + path: /etc/hosts + regexp: '^127\.0\.0\.1' + line: "127.0.0.1 {{ inventory_hostname }} localhost" + owner: root + group: root + mode: 0644 + +- name: Add hostname + lineinfile: + path: /etc/hosts + regexp: '^127\.0\.1\.1' + line: "127.0.0.1 {{ inventory_hostname }} localhost" + owner: root + group: root + mode: 0644 + +- name: Add host entries dynamically + lineinfile: + path: /etc/hosts + line: "{{ hostvars[item].private_ip }} {{ item}} {{ item }}.{{ domain }}" + state: present + loop: "{{ groups['all'] }}" + when: hostvars[item].private_ip is defined + +- name: Create directory for docker container data + file: + path: "{{ docker_data_path }}" + state: directory + +# Basic setup tasks for each distro +- name: Debian basic setup + include_tasks: basic-deb.yml + when: ansible_os_family == 'Debian' + +- name: RHEL basic setup + include_tasks: basic-rhel.yml + when: ansible_os_family == 'RedHat'