first commit
This commit is contained in:
commit
5816898404
50 changed files with 1031 additions and 0 deletions
80
collections/ansible_collections/adhdgirl/minilab/README.md
Normal file
80
collections/ansible_collections/adhdgirl/minilab/README.md
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
# Adhdgirl Minilab Collection
|
||||
|
||||
This repository contains the `adhdgirl.minilab` Ansible Collection.
|
||||
|
||||
## Tested with Ansible
|
||||
|
||||
Tested with ansible-core >=2.14 releases and the current development version of
|
||||
ansible-core.
|
||||
|
||||
## External requirements
|
||||
|
||||
Some modules and plugins require external libraries. Please check the
|
||||
requirements for each plugin or module you use in the documentation to find out
|
||||
which requirements are needed.
|
||||
|
||||
## Included content
|
||||
|
||||
Please check the included content on the
|
||||
[Ansible Galaxy page for this collection](https://galaxy.ansible.com/adhdgirl/minilab).
|
||||
|
||||
## Using this collection
|
||||
|
||||
```
|
||||
ansible-galaxy collection install adhdgirl.minilab
|
||||
```
|
||||
|
||||
You can also include it in a `requirements.yml` file and install it via
|
||||
`ansible-galaxy collection install -r requirements.yml` using the format:
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
- name: adhdgirl.minilab
|
||||
```
|
||||
|
||||
To upgrade the collection to the latest available version, run the following
|
||||
command:
|
||||
|
||||
```bash
|
||||
ansible-galaxy collection install adhdgirl.minilab --upgrade
|
||||
```
|
||||
|
||||
You can also install a specific version of the collection, for example, if you
|
||||
need to downgrade when something is broken in the latest version (please report
|
||||
an issue in this repository). Use the following syntax where `X.Y.Z` can be any
|
||||
[available version](https://galaxy.ansible.com/adhdgirl/minilab):
|
||||
|
||||
```bash
|
||||
ansible-galaxy collection install adhdgirl.minilab:==X.Y.Z
|
||||
```
|
||||
|
||||
See
|
||||
[Ansible Using Collections](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html)
|
||||
for more details.
|
||||
|
||||
## Release notes
|
||||
|
||||
See the
|
||||
[changelog](https://github.com/ansible-collections/adhdgirl.minilab/tree/main/CHANGELOG.rst).
|
||||
|
||||
## Roadmap
|
||||
|
||||
<!-- Optional. Include the roadmap for this collection, and the proposed release/versioning strategy so users can anticipate the upgrade/update cycle. -->
|
||||
|
||||
## More information
|
||||
|
||||
<!-- List out where the user can find additional information, such as working group meeting times, slack/Matrix channels, or documentation for the product this collection automates. At a minimum, link to: -->
|
||||
|
||||
- [Ansible collection development forum](https://forum.ansible.com/c/project/collection-development/27)
|
||||
- [Ansible User guide](https://docs.ansible.com/ansible/devel/user_guide/index.html)
|
||||
- [Ansible Developer guide](https://docs.ansible.com/ansible/devel/dev_guide/index.html)
|
||||
- [Ansible Collections Checklist](https://docs.ansible.com/ansible/devel/community/collection_contributors/collection_requirements.html)
|
||||
- [Ansible Community code of conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html)
|
||||
- [The Bullhorn (the Ansible Contributor newsletter)](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn)
|
||||
- [News for Maintainers](https://forum.ansible.com/tag/news-for-maintainers)
|
||||
|
||||
## Licensing
|
||||
|
||||
GNU General Public License v3.0 or later.
|
||||
|
||||
See [LICENSE](https://www.gnu.org/licenses/gpl-3.0.txt) to see the full text.
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
services:
|
||||
adguard:
|
||||
image: adguard/adguardhome:v0.107.59
|
||||
container_name: adguardhome
|
||||
volumes:
|
||||
- /opt/adguard/workdir:/opt/adguardhome/work
|
||||
- /opt/adguard/confdir:/opt/adguardhome/conf
|
||||
network_mode: "host"
|
||||
restart: unless-stopped
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
- name: Load distro-specific variables
|
||||
ansible.builtin.include_vars: '{{ item }}'
|
||||
tags: always
|
||||
with_first_found:
|
||||
- files:
|
||||
- "{{ ansible_distribution }}.yaml"
|
||||
skip: true
|
||||
|
||||
- name: Ensure AdGuard Home is running on this device
|
||||
block:
|
||||
- name: Ensure presense of folders for AdGuard Home
|
||||
tags: packages,docker,adguard
|
||||
ansible.builtin.file:
|
||||
path: "/opt/adguard/{{ item }}"
|
||||
state: directory
|
||||
recurse: true
|
||||
owner: root
|
||||
group: root
|
||||
loop:
|
||||
- "workdir"
|
||||
- "confdir"
|
||||
- name: Ensure compose file is available on the server
|
||||
tags: docker,adguard,settings
|
||||
ansible.builtin.copy:
|
||||
src: docker-compose.yaml
|
||||
dest: /opt/adguard/docker-compose.yaml
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=rw,g=r,o=r
|
||||
- name: Ensure docker containers are pulled and running
|
||||
tags: docker,adguard
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/adguard
|
||||
pull: always
|
||||
|
||||
rescue:
|
||||
- name: Set that this task failed
|
||||
ansible.builtin.set_fact:
|
||||
task_failed: true
|
||||
|
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEUrVjr7OOouXuax/peH72TgWiVaE1hacB65lXRUQdmP annika@ansible
|
||||
|
|
@ -0,0 +1 @@
|
|||
permit nopass ansible
|
||||
|
|
@ -0,0 +1 @@
|
|||
ansible ALL=(ALL) NOPASSWD: ALL
|
||||
|
|
@ -0,0 +1 @@
|
|||
permit persist annika
|
||||
|
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE1XzepIOOXlSAjVTVKXlCYiPD4gtlt4/1ky9UWaB/2f annika@ansible
|
||||
|
|
@ -0,0 +1 @@
|
|||
annika ALL=(ALL) ALL
|
||||
|
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGJ3/ZWJHbXEu5+nPvaNfPQraxy2ThXQlNB/u99nr8ci annika@wallace.local.merr.is
|
||||
|
|
@ -0,0 +1 @@
|
|||
permit persist moosetheory
|
||||
|
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE1XzepIOOXlSAjVTVKXlCYiPD4gtlt4/1ky9UWaB/2f annika@ansible
|
||||
|
|
@ -0,0 +1 @@
|
|||
moosetheory ALL=(ALL) ALL
|
||||
|
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGJ3/ZWJHbXEu5+nPvaNfPQraxy2ThXQlNB/u99nr8ci annika@wallace.local.merr.is
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
- name: Make sure aptitude is available
|
||||
tags: packages,system,settings,debian
|
||||
ansible.builtin.apt:
|
||||
name: aptitude
|
||||
state: present
|
||||
when: ansible_distribution in debian_derivatives
|
||||
- name: Make sure sudo and ssh are available
|
||||
tags: packages,system,settings
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- "{{ common_elevate_package }}"
|
||||
- "{{ common_ssh_package }}"
|
||||
state: present
|
||||
- name: Make sure python3 is available (Alpine)
|
||||
tags: packages,system,settings
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- python3
|
||||
state: present
|
||||
when: ansible_distribution == 'Alpine'
|
||||
- name: Ensure ssh is starting at boot (Alpine)
|
||||
tags: packages,system,settings
|
||||
ansible.builtin.service:
|
||||
name: sshd
|
||||
state: started
|
||||
enabled: true
|
||||
when: ansible_distribution == 'Alpine'
|
||||
- name: Ensure ssh is starting at boot (Debian)
|
||||
tags: package,system,settings
|
||||
ansible.builtin.systemd_service:
|
||||
name: ssh
|
||||
state: started
|
||||
enabled: true
|
||||
when: ansible_distribution in debian_derivatives
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
- name: Make sure ansible user exists
|
||||
tags: users,system,ansible
|
||||
ansible.builtin.user:
|
||||
name: ansible
|
||||
password: "*"
|
||||
- name: Add sudoers file
|
||||
tags: moosetheory,settings,sudo,system,users
|
||||
ansible.builtin.copy:
|
||||
src: ansible/sudoers
|
||||
dest: /etc/sudoers.d/ansible
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=r,g=r,o-rwx
|
||||
when: ansible_distribution in debian_derivatives
|
||||
- name: Add doas file
|
||||
tags: ansible,settings,doas,system,users
|
||||
ansible.builtin.copy:
|
||||
src: ansible/doas.conf
|
||||
dest: /etc/doas.d/ansible.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=r,g=r,o-rwx
|
||||
when: ansible_distribution == "Alpine"
|
||||
- name: Set authorized key for ansible user
|
||||
tags: users,system,ansible
|
||||
ansible.posix.authorized_key:
|
||||
user: ansible
|
||||
state: present
|
||||
key: "{{ lookup('file', './files/ansible/ansible_ed25519.pub') }}"
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
- name: Load distro-specific variables
|
||||
ansible.builtin.include_vars: '{{ item }}'
|
||||
tags: always
|
||||
with_first_found:
|
||||
- files:
|
||||
- "{{ ansible_distribution }}.yaml"
|
||||
skip: true
|
||||
|
||||
- name: Set up common functionality
|
||||
block:
|
||||
# Make sure ansible related stuff exists
|
||||
- name: Ensure presense of software needed by later tasks
|
||||
ansible.builtin.import_tasks: ansible/software.yaml
|
||||
- name: Ensure user exists for future runs of Ansible
|
||||
ansible.builtin.import_tasks: ansible/user.yaml
|
||||
|
||||
# Create users
|
||||
- name: Create users
|
||||
ansible.builtin.include_tasks: users.yaml
|
||||
loop:
|
||||
- annika
|
||||
- moosetheory
|
||||
loop_control:
|
||||
loop_var: user_name
|
||||
|
||||
# Install software not specific to Ansible
|
||||
# - name: Ensure software wanted on all hosts is installed
|
||||
# ansible.builtin.import_tasks: general/software.yaml
|
||||
|
||||
|
||||
rescue:
|
||||
- name: Set that this task failed
|
||||
ansible.builtin.set_fact:
|
||||
task_failed: true
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
- name: Load user-specific variables
|
||||
tags: groups,users
|
||||
ansible.builtin.include_vars:
|
||||
file: "users/{{ user_name }}.yaml"
|
||||
- name: Ensure group exists
|
||||
tags: groups,users
|
||||
ansible.builtin.group:
|
||||
name: "{{ user_name }}"
|
||||
state: present
|
||||
- name: Ensure user exists
|
||||
tags: users
|
||||
ansible.builtin.user:
|
||||
name: "{{ user_name }}"
|
||||
group: "{{ user_name }}"
|
||||
groups: "adm,{{ common_sudo_group }}"
|
||||
state: present
|
||||
password: "{{ common_user_password | string | password_hash('sha512') }}"
|
||||
- name: Adjust shell for Debian hosts
|
||||
tags: settings,users,debian
|
||||
ansible.builtin.user:
|
||||
name: "{{ user_name }}"
|
||||
shell: /bin/bash
|
||||
when: ansible_distribution in debian_derivatives
|
||||
- name: Adjust shell for Ansible hosts
|
||||
tags: settings,users,alpine
|
||||
ansible.builtin.user:
|
||||
name: "{{ user_name }}"
|
||||
shell: /bin/ash
|
||||
when: ansible_distribution == "Alpine"
|
||||
- name: Ensure user sudoers file is in place for Debian hosts
|
||||
tags: settings,users,debian
|
||||
ansible.builtin.copy:
|
||||
src: "users/{{ user_name }}/sudoers"
|
||||
dest: "/etc/sudoers.d/{{ user_name }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=r,g=r,o-rwx
|
||||
when: ansible_distribution in debian_derivatives
|
||||
- name: Ensure user doas config is in place for Alpine hosts
|
||||
tags: settings,users,alpine
|
||||
ansible.builtin.copy:
|
||||
src: "users/{{ user_name }}/doas.conf"
|
||||
dest: "/etc/doas.d/{{ user_name }}.conf"
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=r,g=r,o-rwx
|
||||
when: ansible_distribution == "Alpine"
|
||||
- name: Ensure public keys are available for this user
|
||||
tags: settings,users,ssh
|
||||
ansible.posix.authorized_key:
|
||||
user: "{{ user_name }}"
|
||||
state: present
|
||||
key: "{{ lookup('file', item) }}"
|
||||
with_fileglob:
|
||||
- "users/{{ user_name }}/*.pub"
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
common_sudo_group: wheel
|
||||
common_ssh_package: openssh
|
||||
common_elevate_package: doas
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
common_sudo_group: sudo
|
||||
common_ssh_package: ssh
|
||||
common_elevate_package: sudo
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
common_interactive_users:
|
||||
- annika
|
||||
- moosetheory
|
||||
common_annika_passwd: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
31376262376236616461656131623338386564396462663662363934663065333335373338366166
|
||||
3133373464376565393339323461313837363463353636300a653738616137316261656665323835
|
||||
30356563646237653533303832623433343831346234333965623532363565346633313437353865
|
||||
3333366534323032390a643536643361356532666333306635653634373938613134353565643961
|
||||
6665
|
||||
common_moosetheory_passwd: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
37633433626261666330346536356463303431396662333334643633393632383731343037353038
|
||||
3462366461343964386535356239353034323638363937380a633238343839363433356338663632
|
||||
66363663356162666437343863663837346430653665356636356565306263646137383438333233
|
||||
3062313935383164650a626365363362326238386137336538323831373430653366383139326365
|
||||
3961
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
common_user_password: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
39313537373231343839663162373238343837626266323631316234333034343536636664336433
|
||||
3531626364383166383165613563373435623663366461360a613731663639633966353239303933
|
||||
63353537626461383332656265653634656530326133646361643365366665353562396536373834
|
||||
3866343531323237360a353737303766393338353436353864336538373166366637663566363166
|
||||
6364
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
common_user_password: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
39313537373231343839663162373238343837626266323631316234333034343536636664336433
|
||||
3531626364383166383165613563373435623663366461360a613731663639633966353239303933
|
||||
63353537626461383332656265653634656530326133646361643365366665353562396536373834
|
||||
3866343531323237360a353737303766393338353436353864336538373166366637663566363166
|
||||
6364
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
- name: Ensure docker is installed
|
||||
tags: alpine,docker,software
|
||||
community.general.apk:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
loop:
|
||||
- docker
|
||||
- docker-compose
|
||||
- py3-pip
|
||||
- py3-docker-py
|
||||
- name: Start Docker and add to autostart on Alpine
|
||||
tags: alpine,docker,software
|
||||
ansible.builtin.service:
|
||||
name: docker
|
||||
state: started
|
||||
enabled: true
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
---
|
||||
- name: Ensure python dependencies are installed
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
update_cache: true
|
||||
loop:
|
||||
- python3-debian
|
||||
- python3-pip
|
||||
- name: Ensure no unofficial Docker packages are installed on Debian hosts
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
update_cache: false
|
||||
loop:
|
||||
- docker.io
|
||||
- docker-compose
|
||||
- docker-doc
|
||||
- podman-docker
|
||||
- name: Ensure Docker repositories are available on Debian hosts
|
||||
ansible.builtin.deb822_repository:
|
||||
name: docker
|
||||
types: deb
|
||||
uris: https://download.docker.com/linux/debian
|
||||
suites: "{{ ansible_distribution_release }}"
|
||||
components:
|
||||
- stable
|
||||
signed_by: |-
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
YT90qFF93M3v01BbxP+EIY2/9tiIPbrd
|
||||
=0YYh
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
- name: Ensure Docker dependencies are available on Debian hosts
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
update_cache: true
|
||||
loop:
|
||||
- docker-ce
|
||||
- docker-ce-cli
|
||||
- containerd.io
|
||||
- docker-buildx-plugin
|
||||
- docker-compose-plugin
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
- name: Fetch distro-specific variables
|
||||
ansible.builtin.include_vars: '{{ item }}'
|
||||
tags: always
|
||||
with_first_found:
|
||||
- files:
|
||||
- "vars/{{ ansible_distribution }}.yaml"
|
||||
skip: true
|
||||
|
||||
- name: Ensure dependencies for docker module are installed
|
||||
block:
|
||||
- name: Ensure debian hosts are properly configured
|
||||
ansible.builtin.import_tasks: ./debian.yaml
|
||||
when: ansible_distribution in debian_derivatives
|
||||
- name: Ensure alpine hosts are properly configured
|
||||
ansible.builtin.import_tasks: ./alpine.yaml
|
||||
when: ansible_distribution == 'Alpine'
|
||||
|
||||
rescue:
|
||||
- name: Set that this task failed
|
||||
ansible.builtin.set_fact:
|
||||
task_failed: true
|
||||
# code: language=ansible
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
Adhdgirl.Minilab Run Role
|
||||
========================
|
||||
|
||||
A brief description of the role is here.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
Any prerequisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
|
||||
|
||||
Role Variables
|
||||
--------------
|
||||
|
||||
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. host vars, group vars, etc.) should be mentioned here as well.
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
|
||||
|
||||
Example Playbook
|
||||
----------------
|
||||
|
||||
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
|
||||
|
||||
```yaml
|
||||
- name: Execute tasks on servers
|
||||
hosts: servers
|
||||
roles:
|
||||
- role: adhdgirl.minilab.run
|
||||
run_x: 42
|
||||
```
|
||||
|
||||
Another way to consume this role would be:
|
||||
|
||||
```yaml
|
||||
- name: Initialize the run role from adhdgirl.minilab
|
||||
hosts: servers
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Trigger invocation of run role
|
||||
ansible.builtin.include_role:
|
||||
name: adhdgirl.minilab.run
|
||||
vars:
|
||||
run_x: 42
|
||||
```
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
# TO-DO: Update the license to the one you want to use (delete this line after setting the license)
|
||||
BSD
|
||||
|
||||
Author Information
|
||||
------------------
|
||||
|
||||
An optional section for the role authors to include contact information, or a website (HTML is not allowed).
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
- name: Debug print task-1
|
||||
ansible.builtin.debug:
|
||||
msg: "This is task-1"
|
||||
|
||||
- name: Debug print task-2
|
||||
ansible.builtin.debug:
|
||||
msg: "This is task-2"
|
||||
|
||||
- name: Debug print task-3
|
||||
ansible.builtin.debug:
|
||||
msg: "This is task-3"
|
||||
7
collections/requirements.yml
Normal file
7
collections/requirements.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
collections:
|
||||
- name: community.general
|
||||
- name: ansible.posix
|
||||
# - name: ansibleguy.nftables
|
||||
# version: 1.0.3
|
||||
- name: community.docker
|
||||
Loading…
Add table
Add a link
Reference in a new issue