From 62f014d90fa37e3c2e56bae2eaf766f46896bd33 Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Sat, 3 Dec 2022 13:05:55 +0100 Subject: [PATCH] split playbook into roles --- Makefile | 4 +-- playbooks/all.yml | 9 +++++ playbooks/nucs.yml | 62 ----------------------------------- playbooks/pizzeria.yml | 4 +++ playbooks/syncthing.yml | 4 +++ roles/common/tasks/main.yml | 8 +++++ roles/docker/tasks/main.yml | 30 +++++++++++++++++ roles/pizzeria/meta/main.yml | 3 ++ roles/pizzeria/tasks/main.yml | 9 +++++ 9 files changed, 69 insertions(+), 64 deletions(-) create mode 100644 playbooks/all.yml delete mode 100644 playbooks/nucs.yml create mode 100644 playbooks/pizzeria.yml create mode 100644 playbooks/syncthing.yml create mode 100644 roles/common/tasks/main.yml create mode 100644 roles/docker/tasks/main.yml create mode 100644 roles/pizzeria/meta/main.yml create mode 100644 roles/pizzeria/tasks/main.yml diff --git a/Makefile b/Makefile index aa86a8b..c190226 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -run: - ansible-playbook playbooks/nucs.yml -i inventory/hosts.yml --ask-vault-pass +%: + ansible-playbook playbooks/$@.yml -i inventory/hosts.yml --ask-vault-pass .PHONY: run diff --git a/playbooks/all.yml b/playbooks/all.yml new file mode 100644 index 0000000..93e5419 --- /dev/null +++ b/playbooks/all.yml @@ -0,0 +1,9 @@ +--- +- name: Install pizzeria static website + hosts: nucs + roles: + - pizzeria +- name: Install Syncthing + hosts: nucs + roles: + - syncthing diff --git a/playbooks/nucs.yml b/playbooks/nucs.yml deleted file mode 100644 index 9eab727..0000000 --- a/playbooks/nucs.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -- name: Setup ansible - hosts: nucs - tasks: - - name: Create Ansible directory - file: - path: /ansible - state: directory - - name: Install essential packages - apt: - pkg: - - python3-pip - state: latest - update_cache: true -- name: Install Docker - hosts: nucs - tasks: - - name: Install prerequisites - apt: - pkg: - - ca-certificates - - curl - - gnupg - - lsb-release - state: latest - update_cache: true - - name: Add Docker APT key - apt_key: - url: https://download.docker.com/linux/ubuntu/gpg - - name: Add Docker repository - apt_repository: - repo: deb https://download.docker.com/linux/ubuntu focal stable # TODO: parameterize distro - - name: Install Docker packages - apt: - pkg: - - docker-ce - - docker-ce-cli - - containerd.io - - docker-compose-plugin - state: latest - update_cache: true - - name: Install Docker module for Python - pip: - name: - - docker - - docker-compose -- name: Install pizzeria static website - hosts: nucs - tasks: - - name: Clone pizzeria repository - git: - repo: https://github.com/pizzapim/pizzeria - dest: /ansible/pizzeria - - name: Start the Docker compose - community.docker.docker_compose: - project_src: /ansible/pizzeria - pull: true - remove_orphans: true -- name: Install Syncthing - hosts: nucs - roles: - - syncthing diff --git a/playbooks/pizzeria.yml b/playbooks/pizzeria.yml new file mode 100644 index 0000000..0e3e61f --- /dev/null +++ b/playbooks/pizzeria.yml @@ -0,0 +1,4 @@ +- name: Install pizzeria static website + hosts: nucs + roles: + - pizzeria diff --git a/playbooks/syncthing.yml b/playbooks/syncthing.yml new file mode 100644 index 0000000..afc96bd --- /dev/null +++ b/playbooks/syncthing.yml @@ -0,0 +1,4 @@ +- name: Install syncthing + hosts: nucs + roles: + - syncthing diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml new file mode 100644 index 0000000..ede437c --- /dev/null +++ b/roles/common/tasks/main.yml @@ -0,0 +1,8 @@ +- name: Create /data directory + file: + path: /data + state: directory +- name: Create /apps directory + file: + path: /apps + state: directory diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml new file mode 100644 index 0000000..39ecb5a --- /dev/null +++ b/roles/docker/tasks/main.yml @@ -0,0 +1,30 @@ +- name: Install Docker prerequisites + apt: + pkg: + - ca-certificates + - curl + - gnupg + - lsb-release + - python3-pip + state: latest + update_cache: true +- name: Add Docker APT key + apt_key: + url: https://download.docker.com/linux/ubuntu/gpg +- name: Add Docker repository + apt_repository: + repo: "deb https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" +- name: Install Docker packages + apt: + pkg: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-compose-plugin + state: latest + update_cache: true +- name: Install Docker modules for Python + pip: + name: + - docker + - docker-compose diff --git a/roles/pizzeria/meta/main.yml b/roles/pizzeria/meta/main.yml new file mode 100644 index 0000000..090690b --- /dev/null +++ b/roles/pizzeria/meta/main.yml @@ -0,0 +1,3 @@ +dependencies: + - role: common + - role: docker diff --git a/roles/pizzeria/tasks/main.yml b/roles/pizzeria/tasks/main.yml new file mode 100644 index 0000000..649d5af --- /dev/null +++ b/roles/pizzeria/tasks/main.yml @@ -0,0 +1,9 @@ +- name: Clone pizzeria repository + git: + repo: https://github.com/pizzapim/pizzeria + dest: /apps/pizzeria +- name: Start the Docker compose + community.docker.docker_compose: + project_src: /apps/pizzeria + pull: true + remove_orphans: true