From 729f0089b51dadcd6579ab5e00459811f0610a4f Mon Sep 17 00:00:00 2001 From: luisj1983 <67982749+luisj1983@users.noreply.github.com> Date: Sun, 23 Jul 2023 21:54:51 +0000 Subject: [PATCH] split out tasks-sets into seperate yml files --- README.md | 2 +- main.yml | 2 +- roles/installer/tasks/installer_ansible.yml | 12 ++ roles/installer/tasks/installer_docker.yml | 93 +++++++++++ roles/installer/tasks/installer_molecule.yml | 41 +++++ roles/installer/tasks/installer_prep.yml | 15 ++ roles/installer/tasks/main.yml | 164 +------------------ 7 files changed, 171 insertions(+), 158 deletions(-) create mode 100644 roles/installer/tasks/installer_ansible.yml create mode 100644 roles/installer/tasks/installer_docker.yml create mode 100644 roles/installer/tasks/installer_molecule.yml create mode 100644 roles/installer/tasks/installer_prep.yml diff --git a/README.md b/README.md index ec361f9..451241f 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ However, since those tasks ought to be run (according to the docs) and shouldn't # To do - [ ] Make playbook support additional Operating Systems (e.g. CentOS) -- [ ] Break out sub-tasks such as docker_install, ansible_install +- [x] Break out sub-tasks such as docker_install, ansible_install ## License GPL-3.0-or-later diff --git a/main.yml b/main.yml index f821899..0f0d176 100644 --- a/main.yml +++ b/main.yml @@ -4,7 +4,7 @@ become: true remote_user: root gather_facts: true - ignore_errors: true + ignore_errors: false roles: - installer diff --git a/roles/installer/tasks/installer_ansible.yml b/roles/installer/tasks/installer_ansible.yml new file mode 100644 index 0000000..6318562 --- /dev/null +++ b/roles/installer/tasks/installer_ansible.yml @@ -0,0 +1,12 @@ +--- + +### Ansible installation + + - name: "PIP: Install Ansible" + when: install_ansible_required + become: false + ansible.builtin.pip: + name: + - ansible-core + - ansible-lint + state: present \ No newline at end of file diff --git a/roles/installer/tasks/installer_docker.yml b/roles/installer/tasks/installer_docker.yml new file mode 100644 index 0000000..83b09c2 --- /dev/null +++ b/roles/installer/tasks/installer_docker.yml @@ -0,0 +1,93 @@ +--- + + - name: Update apt-cache + ansible.builtin.apt: + update_cache: true + + - name: Docker Install prep + when: install_docker_required + block: + - name: "Docker pre-reqs" + ansible.builtin.package: + name: + - ca-certificates + - curl + - gnupg + - python3-debian + register: docker_pre_reqs_installed + + - name: Docker clean-up + when: docker_cleanup_required + tags: molecule-idempotence-notest + block: + - name: Cleanup Docker repository + ansible.builtin.deb822_repository: + name: docker + state: absent + register: docker_cleanup_done + + - name: Update apt-cache + ansible.builtin.apt: + update_cache: true + + - name: Add Docker repository + ansible.builtin.deb822_repository: + name: docker + types: deb + suites: '{{ ansible_distribution_release }}' + components: stable + architectures: "{{ dpkg_arch }}" + uris: "{{ docker_base_url }}" + signed_by: "{{ apt_docker_key }}" + state: present + enabled: true + when: docker_pre_reqs_installed + register: docker_repo_installed + + +# ## Docker-in-WSL2 installation + + - name: Installing docker + when: install_docker_required + block: + - name: Update apt-cache + ansible.builtin.apt: + update_cache: true + + - name: Update apt and install docker-ce + ansible.builtin.apt: + name: + - docker-ce + - docker-compose-plugin + state: present + update_cache: false + register: docker_installed + when: docker_repo_installed + + - name: "APT: Install PIP" + ansible.builtin.apt: + name: + - python3-pip + - libssl-dev + state: present + update_cache: false + + - name: Install Docker Module for Python + ansible.builtin.pip: + name: docker + when: docker_installed + + - name: Ensure group "docker" exists + ansible.builtin.group: + name: docker + state: present + + - name: Added user to docker group + ansible.builtin.user: + name: luis + groups: docker + append: true + + - name: Group change notification + ansible.builtin.debug: + msg: "You now need to manually run: newgrp docker" diff --git a/roles/installer/tasks/installer_molecule.yml b/roles/installer/tasks/installer_molecule.yml new file mode 100644 index 0000000..c7e3bc5 --- /dev/null +++ b/roles/installer/tasks/installer_molecule.yml @@ -0,0 +1,41 @@ +--- + +### Molecule installation +## From: +# https://ansible.readthedocs.io/projects/molecule/installation/#requirements + + - name: "Install Molecule" + when: install_molecule_required + block: + - name: "PIP: Install Molecule" + become: false + ansible.builtin.pip: + name: + - molecule + state: present + + - name: "PIP: Install/upgrade setuptools" + become: false + ansible.builtin.pip: + name: setuptools + state: present + + - name: "PIP: Molecule Driver cleanup/remove" + when: molecule_driver_cleanup + tags: molecule-idempotence-notest + become: false + ansible.builtin.pip: + name: + - molecule-{{ molecule_driver }} + - molecule-plugins[{{ molecule_driver }}] + state: absent + register: molecule_driver_result + + - name: "PIP: Install Molecule Driver" + become: false + ansible.builtin.pip: + name: + - molecule-{{ molecule_driver }} + - molecule-plugins[{{ molecule_driver }}] + state: present + register: molecule_driver_result \ No newline at end of file diff --git a/roles/installer/tasks/installer_prep.yml b/roles/installer/tasks/installer_prep.yml new file mode 100644 index 0000000..3aa4667 --- /dev/null +++ b/roles/installer/tasks/installer_prep.yml @@ -0,0 +1,15 @@ +--- + +## WSL prep +# https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/ + - name: Enable systemd for WSL2 + ansible.builtin.lineinfile: + path: /etc/wsl.conf + insertbefore: BOF + line: "{{ item }}" + create: true + mode: '0644' + with_items: + - '[boot]' + - 'systemd=true' + when: enable_wsl_systemd diff --git a/roles/installer/tasks/main.yml b/roles/installer/tasks/main.yml index b12cc81..b39323d 100644 --- a/roles/installer/tasks/main.yml +++ b/roles/installer/tasks/main.yml @@ -4,162 +4,14 @@ - name: Include vars ansible.builtin.include_vars: vars/main.yml -## WSL prep -# https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/ - - name: Enable systemd for WSL2 - ansible.builtin.lineinfile: - path: /etc/wsl.conf - insertbefore: BOF - line: "{{ item }}" - create: true - mode: '0644' - with_items: - - '[boot]' - - 'systemd=true' - when: enable_wsl_systemd + - name: Include installer_prep + ansible.builtin.import_tasks: tasks/installer_prep.yml -## Docker-in-WSL2 prep + - name: Include installer_prep + ansible.builtin.import_tasks: tasks/installer_docker.yml - - name: Update apt-cache - ansible.builtin.apt: - update_cache: true + - name: Include installer_prep + ansible.builtin.import_tasks: tasks/installer_ansible.yml - - name: Docker Install prep - when: install_docker_required - block: - - name: "Docker pre-reqs" - ansible.builtin.package: - name: - - ca-certificates - - curl - - gnupg - - python3-debian - register: docker_pre_reqs_installed - - - name: Docker clean-up - when: docker_cleanup_required - tags: molecule-idempotence-notest - block: - - name: Cleanup Docker repository - ansible.builtin.deb822_repository: - name: docker - state: absent - register: docker_cleanup_done - - - name: Update apt-cache - ansible.builtin.apt: - update_cache: true - - - name: Add Docker repository - ansible.builtin.deb822_repository: - name: docker - types: deb - suites: '{{ ansible_distribution_release }}' - components: stable - architectures: "{{ dpkg_arch }}" - uris: "{{ docker_base_url }}" - signed_by: "{{ apt_docker_key }}" - state: present - enabled: true - when: docker_pre_reqs_installed - register: docker_repo_installed - - -# ## Docker-in-WSL2 installation - - - name: Installing docker - when: install_docker_required - block: - - name: Update apt-cache if the last update is more than 3600 seconds ago - ansible.builtin.apt: - update_cache: true - - - name: Update apt and install docker-ce - ansible.builtin.apt: - name: - - docker-ce - - docker-compose-plugin - state: present - update_cache: false - register: docker_installed - when: docker_repo_installed - - - name: "APT: Install PIP" - ansible.builtin.apt: - name: - - python3-pip - - libssl-dev - state: present - update_cache: false - - - name: Install Docker Module for Python - ansible.builtin.pip: - name: docker - when: docker_installed - - - name: Ensure group "docker" exists - ansible.builtin.group: - name: docker - state: present - - - name: Added user to docker group - ansible.builtin.user: - name: luis - groups: docker - append: true - - - name: Group change notification - ansible.builtin.debug: - msg: "You now need to manually run: newgrp docker" - -### Ansible installation - - - name: "PIP: Install Ansible" - when: install_ansible_required - become: false - ansible.builtin.pip: - name: - - ansible-core - - ansible-lint - state: present - - -### Molecule installation -## From: -# https://ansible.readthedocs.io/projects/molecule/installation/#requirements - - - name: "Install Molecule" - when: install_molecule_required - block: - - name: "PIP: Install Molecule" - become: false - ansible.builtin.pip: - name: - - molecule - state: present - - - name: "PIP: Install/upgrade setuptools" - become: false - ansible.builtin.pip: - name: setuptools - state: present - - - name: "PIP: Molecule Driver cleanup/remove" - when: molecule_driver_cleanup - tags: molecule-idempotence-notest - become: false - ansible.builtin.pip: - name: - - molecule-{{ molecule_driver }} - - molecule-plugins[{{ molecule_driver }}] - state: absent - register: molecule_driver_result - - - name: "PIP: Install Molecule Driver" - become: false - ansible.builtin.pip: - name: - - molecule-{{ molecule_driver }} - - molecule-plugins[{{ molecule_driver }}] - state: present - register: molecule_driver_result + - name: Include installer_prep + ansible.builtin.import_tasks: tasks/installer_molecule.yml