diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..7f232d1 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,28 @@ +--- +kind: pipeline +type: docker +name: ansible + +steps: + - name: yaml lint + image: cytopia/yamllint:alpine + commands: + - yamllint -c .yamllint.yml . + + - name: ansible lint + image: cytopia/ansible-lint:alpine + commands: + - ansible-lint . + + - name: ansible apply + image: plugins/ansible:3 + settings: + inventory: inventory/hosts.yml + playbook: site.yml + private_key: + from_secret: ansible_private_key + when: + branch: + - master + event: + - push diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 0000000..cf1c947 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,13 @@ +--- +extends: default + +ignore: | + .yamllint.yml + .ansible-lint.yml + +rules: + truthy: + allowed-values: ['true', 'false'] + check-keys: false + level: error + line-length: disable diff --git a/inventory/hosts.yml b/inventory/hosts.yml index 34a8c77..48d1669 100644 --- a/inventory/hosts.yml +++ b/inventory/hosts.yml @@ -38,4 +38,3 @@ all: equinox: children: equinox-servers: - diff --git a/roles/docker/meta/main.yml b/roles/docker/meta/main.yml deleted file mode 100644 index ddd844d..0000000 --- a/roles/docker/meta/main.yml +++ /dev/null @@ -1,51 +0,0 @@ -galaxy_info: - author: Noah Knegt - description: Docker role for Ansible to install Docker on a machine. - - # 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 - 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 - - 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. - -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/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 182142f..3b58639 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-03-2023 # @description : This will make sure that docker is installed on the machine. -#=================================================================================================== +# =================================================================================================== --- - name: Get docker script diff --git a/roles/setup/handlers/main.yml b/roles/setup/handlers/main.yml index 9305ca0..fa64a88 100644 --- a/roles/setup/handlers/main.yml +++ b/roles/setup/handlers/main.yml @@ -1,16 +1,16 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This file contains all the handlers for the base role. -#=================================================================================================== +# =================================================================================================== --- - name: apt_update apt: - update_cache: yes + update_cache: true - name: restart_sshd service: diff --git a/roles/setup/tasks/main.yml b/roles/setup/tasks/main.yml index 47c9733..289818a 100644 --- a/roles/setup/tasks/main.yml +++ b/roles/setup/tasks/main.yml @@ -1,4 +1,4 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com @@ -6,19 +6,17 @@ # @createdOn : 27-02-2023 # @description : This file contains the tasks for the base role, this role will be applied to # all machines. -#=================================================================================================== +# =================================================================================================== --- - include_vars: "{{ ansible_distribution }}.yml" -- block: - # Setup the ansible user - - include_tasks: users/ansible.yml - - include_tasks: users/noahk.yml +# Setup the ansible user +- include_tasks: users/ansible.yml +- include_tasks: users/noahk.yml - # Setup the sshd - - include_tasks: system/openssh.yml - - # Setup the repositories for Debian based systems - - include_tasks: software/repositories.yml +# Setup the sshd +- include_tasks: system/openssh.yml +# Setup the repositories for Debian based systems +- include_tasks: software/repositories.yml diff --git a/roles/setup/tasks/software/repositories.yml b/roles/setup/tasks/software/repositories.yml index e859818..1fdac40 100644 --- a/roles/setup/tasks/software/repositories.yml +++ b/roles/setup/tasks/software/repositories.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This will contain all the default software for the machines. -#=================================================================================================== +# =================================================================================================== --- - name: Install aptitude and software-properties-common diff --git a/roles/setup/tasks/system/openssh.yml b/roles/setup/tasks/system/openssh.yml index 14f95ed..71e2ceb 100644 --- a/roles/setup/tasks/system/openssh.yml +++ b/roles/setup/tasks/system/openssh.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This will setup the ssh server on the machine. -#=================================================================================================== +# =================================================================================================== --- - name: Install or update openssh @@ -19,7 +19,7 @@ service: name: "{{ openssh_service }}" state: started - enabled: yes + enabled: true - name: configure sshd template: diff --git a/roles/setup/tasks/users/ansible.yml b/roles/setup/tasks/users/ansible.yml index 3c0c457..08a7508 100644 --- a/roles/setup/tasks/users/ansible.yml +++ b/roles/setup/tasks/users/ansible.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : It contains the tasks to properly configure the ansible user. -#=================================================================================================== +# =================================================================================================== --- - name: Add ansible group @@ -38,7 +38,7 @@ group: ansible mode: 0700 with_items: - - { dir: /home/ansible/.ssh } + - dir: /home/ansible/.ssh - name: Copy ssh public key authorized_key: diff --git a/roles/setup/tasks/users/noahk.yml b/roles/setup/tasks/users/noahk.yml index 530c366..89c923c 100644 --- a/roles/setup/tasks/users/noahk.yml +++ b/roles/setup/tasks/users/noahk.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This will setup the normal user on the machine. -#=================================================================================================== +# =================================================================================================== --- - name: Create the group @@ -38,7 +38,7 @@ group: noahk mode: 0700 with_items: - - { dir: /home/noahk/.ssh } + - dir: /home/noahk/.ssh - name: Copy ssh public key authorized_key: diff --git a/roles/setup/vars/Archlinux.yml b/roles/setup/vars/Archlinux.yml index 7606ccc..c514b50 100644 --- a/roles/setup/vars/Archlinux.yml +++ b/roles/setup/vars/Archlinux.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This file contains the variables for arch based distros. -#=================================================================================================== +# =================================================================================================== --- sudo_group: wheel diff --git a/roles/setup/vars/Debian.yml b/roles/setup/vars/Debian.yml index f864565..fb86373 100644 --- a/roles/setup/vars/Debian.yml +++ b/roles/setup/vars/Debian.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This file contains all the variables for the base role, for the debian OS. -#=================================================================================================== +# =================================================================================================== --- sudo_group: sudo diff --git a/roles/setup/vars/Ubuntu.yml b/roles/setup/vars/Ubuntu.yml index 581a0e7..65d6eda 100644 --- a/roles/setup/vars/Ubuntu.yml +++ b/roles/setup/vars/Ubuntu.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This file contains all the variables for the base role, for the debian OS. -#=================================================================================================== +# =================================================================================================== --- sudo_group: sudo diff --git a/roles/setup/vars/main.yml b/roles/setup/vars/main.yml index 507eb03..d5795ca 100644 --- a/roles/setup/vars/main.yml +++ b/roles/setup/vars/main.yml @@ -1,11 +1,11 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This file contains the variables for the base role tasks. -#=================================================================================================== +# =================================================================================================== --- ansible_password: '$6$8eLzx6DNI/aamHAp$ZJK3kpbXDaMDUxuCFzRbbYL78aqdDnRRd1zbQPO2ED.pQQdcuAEnwBI2Vf3a36j7I5ED4STx6TLQnB8RiY3Vw/' diff --git a/base.yml b/site.yml similarity index 71% rename from base.yml rename to site.yml index d6660bc..9c46554 100644 --- a/base.yml +++ b/site.yml @@ -1,17 +1,18 @@ -#=================================================================================================== +# =================================================================================================== # ? ABOUT # @author : Noah Knegt # @email : personal@noahknegt.com # @repo : https://git.noahknegt.com/noah.knegt/ansible-automations # @createdOn : 27-02-2023 # @description : This will apply the base configuration to the list of machines. -#=================================================================================================== +# =================================================================================================== --- - hosts: datacenter remote_user: root roles: - setup + when: setup == true # Clean up the system - hosts: datacenter @@ -20,12 +21,12 @@ tasks: - name: cleanup package cache (debian and ubuntu) apt: - autoclean: yes + autoclean: true changed_when: false when: ansible_os_family == "Debian" - name: autoremove packages (debian and ubuntu) apt: - autoremove: yes - purge: yes + autoremove: true + purge: true when: ansible_os_family == "Debian"