Skip to content

Commit

Permalink
split out tasks-sets into seperate yml files
Browse files Browse the repository at this point in the history
  • Loading branch information
luisj1983 committed Jul 23, 2023
1 parent 3010bc9 commit 729f008
Show file tree
Hide file tree
Showing 7 changed files with 171 additions and 158 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
become: true
remote_user: root
gather_facts: true
ignore_errors: true
ignore_errors: false

roles:
- installer
12 changes: 12 additions & 0 deletions roles/installer/tasks/installer_ansible.yml
Original file line number Diff line number Diff line change
@@ -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
93 changes: 93 additions & 0 deletions roles/installer/tasks/installer_docker.yml
Original file line number Diff line number Diff line change
@@ -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"
41 changes: 41 additions & 0 deletions roles/installer/tasks/installer_molecule.yml
Original file line number Diff line number Diff line change
@@ -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
15 changes: 15 additions & 0 deletions roles/installer/tasks/installer_prep.yml
Original file line number Diff line number Diff line change
@@ -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
164 changes: 8 additions & 156 deletions roles/installer/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 729f008

Please sign in to comment.