From 9898547b8102f221183e5b606ec288f37480ce3b Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Tue, 6 Sep 2022 19:21:42 +0100 Subject: [PATCH] fixing linting issues --- playbooks/backup-docker-volumes.yml | 20 ++++--- playbooks/bootstrap.yml | 13 ++--- playbooks/restore-docker-volumes.yml | 5 +- playbooks/setup-homelab.yml | 58 ++++++++++----------- playbooks/setup-linode.yml | 9 ++-- playbooks/verify-homelab.yml | 78 ++++++++++++++-------------- roles/bootstrap/meta/main.yml | 53 +++---------------- roles/bootstrap/tasks/main.yml | 7 +-- roles/setup_docker/meta/main.yml | 10 ++-- 9 files changed, 108 insertions(+), 145 deletions(-) diff --git a/playbooks/backup-docker-volumes.yml b/playbooks/backup-docker-volumes.yml index 64a5b3e..8d781d4 100644 --- a/playbooks/backup-docker-volumes.yml +++ b/playbooks/backup-docker-volumes.yml @@ -8,9 +8,9 @@ schedule: nightly pre_tasks: - - name: Include vault variables. - include_vars: '../{{ vault_file }}' - tags: [always] + - name: Include vault variables. + ansible.builtin.include_vars: '../{{ vault_file }}' + tags: [always] tasks: - name: Find Containers With Backup Label @@ -18,20 +18,18 @@ containers: true containers_filters: label: - - "ie.cianhatton.backup.enabled=true" - - "ie.cianhatton.backup.schedule={{ schedule }}" + - "ie.cianhatton.backup.enabled=true" + - "ie.cianhatton.backup.schedule={{ schedule }}" register: filter_output - name: Get Container Names - set_fact: container_names="{{ filter_output.containers | map(attribute="Names") | flatten }}" - - - debug: msg="{{ container_names }}" + ansible.builtin.set_fact: container_names="{{ filter_output.containers | map(attribute="Names") | flatten }}" - name: Backup Containers with backup label - include_role: - name: chatton.docker_backup.docker_s3_backup + ansible.builtin.include_role: + name: chatton.docker_backup.docker_s3_backup vars: - container_backup: "{{ container_item | regex_replace('^\\/', '') }}" + container_backup: "{{ container_item | regex_replace('^\\/', '') }}" with_items: "{{ container_names }}" loop_control: loop_var: container_item diff --git a/playbooks/bootstrap.yml b/playbooks/bootstrap.yml index b0287c7..ce5ceb2 100644 --- a/playbooks/bootstrap.yml +++ b/playbooks/bootstrap.yml @@ -7,12 +7,13 @@ hosts: localhost connection: local tasks: - - name: Generate an OpenSSH rsa keypair for ansible - community.crypto.openssh_keypair: - path: ~/.ssh/ansible - passphrase: '' + - name: Generate an OpenSSH rsa keypair for ansible + community.crypto.openssh_keypair: + path: ~/.ssh/ansible + passphrase: '' -- hosts: all +- name: Bootstrap Ansible hosts. + hosts: all become: true roles: - - role: bootstrap + - role: bootstrap diff --git a/playbooks/restore-docker-volumes.yml b/playbooks/restore-docker-volumes.yml index 497711d..00eeab6 100644 --- a/playbooks/restore-docker-volumes.yml +++ b/playbooks/restore-docker-volumes.yml @@ -1,9 +1,10 @@ --- -- hosts: qnap +- name: Restore a docker volume. + hosts: qnap become: true pre_tasks: - name: Include vault variables. - include_vars: '../{{vault_file}}' + ansible.builtin.include_vars: '../{{ vault_file }}' tags: [always] roles: - role: chatton.docker_backup.docker_s3_volume_restore diff --git a/playbooks/setup-homelab.yml b/playbooks/setup-homelab.yml index 3d4ac3f..ec9dd84 100644 --- a/playbooks/setup-homelab.yml +++ b/playbooks/setup-homelab.yml @@ -4,51 +4,51 @@ hosts: all become: true pre_tasks: - - name: Update Packages - apt: - upgrade: dist - update_cache: true + - name: Update Packages + ansible.builtin.apt: + upgrade: dist + update_cache: true roles: - - role: setup_users + - role: setup_users - name: Install docker on docker hosts hosts: dockerhosts become: true roles: - - role: setup_docker - tags: [setup, docker] + - role: setup_docker + tags: [setup, docker] - name: Setup and deploy services on the QNAP hosts: qnap become: true pre_tasks: - - name: Include vault variables. - include_vars: '../{{ vault_file }}' - tags: [always] + - name: Include vault variables. + ansible.builtin.include_vars: '../{{ vault_file }}' + tags: [always] roles: - - role: setup_mergerfs - tags: [mergerfs] - - role: setup_samba - tags: [samba] - - role: setup_portainer - tags: [services, portainer] - - role: setup_hosted_services - tags: [services] + - role: setup_mergerfs + tags: [mergerfs] + - role: setup_samba + tags: [samba] + - role: setup_portainer + tags: [services, portainer] + - role: setup_hosted_services + tags: [services] -- hosts: linodes +- name: Setup home lab on linode instances. + hosts: linodes become: true - pre_tasks: - - name: Include vault variables. - include_vars: '../{{ vault_file }}' - tags: [always] + - name: Include vault variables. + ansible.builtin.include_vars: '../{{ vault_file }}' + tags: [always] roles: - - role: setup_samba - tags: [samba] - - role: setup_docker - tags: [docker] - - role: setup_hosted_services - tags: [services] + - role: setup_samba + tags: [samba] + - role: setup_docker + tags: [docker] + - role: setup_hosted_services + tags: [services] diff --git a/playbooks/setup-linode.yml b/playbooks/setup-linode.yml index c9c9d67..11d8760 100644 --- a/playbooks/setup-linode.yml +++ b/playbooks/setup-linode.yml @@ -1,7 +1,8 @@ --- -- hosts: localhost +- name: Setup linode instance. + hosts: localhost become: true roles: - - role: roles/setup_linode - vars: - state: present + - role: roles/setup_linode + vars: + state: present diff --git a/playbooks/verify-homelab.yml b/playbooks/verify-homelab.yml index 03eba59..0cafda7 100644 --- a/playbooks/verify-homelab.yml +++ b/playbooks/verify-homelab.yml @@ -1,48 +1,48 @@ --- -- hosts: all +- name: Verify HomeLab has been correctly set up. + hosts: all become: true pre_tasks: - - name: Include vault variables. - include_vars: ../{{vault_file}} - tags: - - always + - name: Include vault variables. + ansible.builtin.include_vars: ../{{ vault_file }} + tags: + - always tasks: - - name: Docker Compose Files Exist - command: stat {{directories.docker_compose_directory}}/{{ item.name }}/docker-compose.yml - with_items: '{{services}}' - changed_when: false - register: docker_compose_stat + - name: Docker Compose Files Exist + ansible.builtin.command: stat {{ directories.docker_compose_directory }}/{{ item.name }}/docker-compose.yml + with_items: '{{ services }}' + changed_when: false + register: docker_compose_stat - - name: Assert all Docker Compose files were created - assert: - that: item.rc == 0 - with_items: '{{docker_compose_stat.results}}' + - name: Assert all Docker Compose files were created + ansible.builtin.assert: + that: item.rc == 0 + with_items: '{{ docker_compose_stat.results }}' - - name: Populate service facts - service_facts: {} - - name: Assert docker is installed and started - assert: - that: - - ansible_facts.services.docker.state == "running" - - ansible_facts.services['docker.service'].status == "enabled" - - name: Inspect all images - docker_image_info: {} - register: image_details - - name: Assert desired images exist - assert: - that: "{{ item in image_details.images | map(attribute='RepoTags') | flatten }}" - with_items: '{{desired_docker_images}}' + - name: Populate service facts + ansible.builtin.service_facts: {} - - name: Fetch Sudoers Files - command: stat /etc/sudoers.d/{{item.name}} - changed_when: false - register: sudoers_stat - with_items: '{{users}}' - when: item.passwordless_sudo == true - - - name: Assert sudoers files are created - assert: - that: item.rc == 0 - with_items: '{{sudoers_stat.results}}' + - name: Assert docker is installed and started + ansible.builtin.assert: + that: + - ansible_facts.services.docker.state == "running" + - ansible_facts.services['docker.service'].status == "enabled" + - name: Inspect all images + docker_image_info: {} + register: image_details + - name: Assert desired images exist + ansible.builtin.assert: + that: "{{ item in image_details.images | map(attribute='RepoTags') | flatten }}" + with_items: '{{ desired_docker_images }}' + - name: Fetch Sudoers Files + ansible.builtin.command: stat /etc/sudoers.d/{{ item.name }} + changed_when: false + register: sudoers_stat + with_items: '{{ users }}' + when: item.passwordless_sudo + - name: Assert sudoers files are created + ansible.builtin.assert: + that: item.rc == 0 + with_items: '{{ sudoers_stat.results }}' diff --git a/roles/bootstrap/meta/main.yml b/roles/bootstrap/meta/main.yml index 6bfa85e..2d1cdf6 100644 --- a/roles/bootstrap/meta/main.yml +++ b/roles/bootstrap/meta/main.yml @@ -1,53 +1,12 @@ galaxy_info: author: Cian Hatton namespace: chatton - description: your role description - company: your company (optional) - - # If the issue tracker for your role is not on github, uncomment the - # next line and provide a value - # issue_tracker_url: http://example.com/issue/tracker - - # Choose a valid license ID from https://spdx.org - some suggested licenses: - # - BSD-3-Clause (default) - # - MIT - # - GPL-2.0-or-later - # - GPL-3.0-only - # - Apache-2.0 - # - CC-BY-4.0 + description: Bootstrap ansible license: MIT - - min_ansible_version: 2.1 - - # If this a Container Enabled role, provide the minimum Ansible Container version. - # min_ansible_container_version: - - # - # Provide a list of supported platforms, and for each platform a list of versions. - # If you don't wish to enumerate all versions for a particular platform, use 'all'. - # To view available platforms and versions (or releases), visit: - # https://galaxy.ansible.com/api/v1/platforms/ - # - # platforms: - # - name: Fedora - # versions: - # - all - # - 25 - # - name: SomePlatform - # versions: - # - all - # - 1.0 - # - 7 - # - 99.99 - + min_ansible_version: "2.1" galaxy_tags: [] - # List tags for your role here, one per line. A tag is a keyword that describes - # and categorizes the role. Users find roles by searching for tags. Be sure to - # remove the '[]' above, if you add tags to this list. - # - # NOTE: A tag is limited to a single word comprised of alphanumeric characters. - # Maximum 20 tags per role. - + platforms: + - name: Debian + versions: + - all dependencies: [] - # List your role dependencies here, one per line. Be sure to remove the '[]' above, - # if you add dependencies to this list. diff --git a/roles/bootstrap/tasks/main.yml b/roles/bootstrap/tasks/main.yml index c382ae3..ca8cdbd 100644 --- a/roles/bootstrap/tasks/main.yml +++ b/roles/bootstrap/tasks/main.yml @@ -1,10 +1,11 @@ +--- - name: Update Packages - apt: + ansible.builtin.apt: upgrade: dist update_cache: true - name: Create ansible user - user: + ansible.builtin.user: name: ansible groups: root shell: /bin/bash @@ -16,7 +17,7 @@ key: "{{ lookup('file', '~/.ssh/ansible.pub') }}" - name: Add sudoers file for ansible - copy: + ansible.builtin.copy: src: sudoer_ansible dest: /etc/sudoers.d/ansible owner: root diff --git a/roles/setup_docker/meta/main.yml b/roles/setup_docker/meta/main.yml index 0d40d0d..ae3a438 100644 --- a/roles/setup_docker/meta/main.yml +++ b/roles/setup_docker/meta/main.yml @@ -1,10 +1,12 @@ galaxy_info: author: Cian Hatton namespace: chatton - description: Bootstrap ansible - company: your company (optional) + description: Setup Docker license: MIT - min_ansible_version: 2.1 + min_ansible_version: "2.1" galaxy_tags: [] - + platforms: + - name: Debian + versions: + - all dependencies: []