diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/authentik/vars/main.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/authentik/vars/main.yaml new file mode 100644 index 0000000..535df36 --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/authentik/vars/main.yaml @@ -0,0 +1,5 @@ +--- +authentik_pg_pass: 3z9lARPV5Jt2aghxnmnkyPQbhHCBF0MhKAIUCW236YFUK/iR +authentik_secret_key: Vt5KeQ5TJyuCBpJN1F5j5KmrqucoU/K1EYLOzDNcP8QtTPulJFrwtKsm4+zpaB2OTvW9ZfLGpBpJjlGp +authentik_email__username: apikey +authentik_email__password: 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 diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/coder/files/docker-compose.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/coder/files/docker-compose.yaml new file mode 100644 index 0000000..f24a5e9 --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/coder/files/docker-compose.yaml @@ -0,0 +1,21 @@ +--- +services: + code-server: + image: lscr.io/linuxserver/code-server:${CODE_VERSION:-latest} + container_name: code-server + environment: + - PUID=1001 + - PGID=1001 + - TZ=America/New_York + - HASHED_PASSWORD=${HASHED_PASSWORD} #optional + - SUDO_PASSWORD_HASH=${SUDO_PASSWORD_HASH} #optional + - PROXY_DOMAIN=${PROXY_DOMAIN} #optional + - DEFAULT_WORKSPACE=${DEFAULT_WORKSPACE} #optional + - DOCKER_MODS=linuxserver/mods:code-server-golang|linuxserver/mods:code-server-nodejs|linuxserver/mods:code-server-npmglobal + - NODEJS_MOD_VERSION=22 + volumes: + - /opt/coder/config:/config + - /opt/coder/workspace:/workspace + ports: + - 8443:8443 + restart: unless-stopped diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/coder/tasks/main.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/coder/tasks/main.yaml new file mode 100644 index 0000000..0cc9fda --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/coder/tasks/main.yaml @@ -0,0 +1,49 @@ +--- +- name: Load distro-specific variables + ansible.builtin.include_vars: '{{ item }}' + tags: always + with_first_found: + - files: + - "{{ ansible_distribution }}.yaml" + skip: true + +- name: Ensure coder is installed on hosts + block: + - name: Ensure presense of folders for processes on the server + tags: packages,docker,coder + ansible.builtin.file: + path: "/opt/coder/{{ item }}" + state: directory + owner: 1001 + group: 1001 + recurse: true + loop: + - config + - workspace + - name: Ensure compose file is available on the server + tags: packages,docker,coder + ansible.builtin.copy: + src: docker-compose.yaml + dest: "/opt/coder/docker-compose.yaml" + owner: 1001 + group: 1001 + mode: u=rw,g=r,o=r + - name: Ensure environment variables file is available on the server + tags: packages,docker,coder + ansible.builtin.template: + src: env.j2 + dest: /opt/coder/.env + owner: 1001 + group: 1001 + mode: u=rw,g-rwx,o-rwx + - name: Ensure docker containers are pulled and running + tags: docker,coder + community.docker.docker_compose_v2: + project_src: "/opt/coder" + pull: always + + rescue: + - name: Set that this task failed + ansible.builtin.set_fact: + task_failed: true +# code: language=ansible diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/coder/templates/env.j2 b/collections/ansible_collections/adhdgirl/minilab/roles/coder/templates/env.j2 new file mode 100644 index 0000000..0a0d8ad --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/coder/templates/env.j2 @@ -0,0 +1,4 @@ +HASHED_PASSWORD={{ coder_hashed_password }} +SUDO_PASSWORD_HASH={{ coder_sudo_hashed_password }} +PROXY_DOMAIN={{ coder_proxy_domain }} +DEFAULT_WORKSPACE={{ coder_default_workspace }} diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/coder/vars/main.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/coder/vars/main.yaml new file mode 100644 index 0000000..c0f9f37 --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/coder/vars/main.yaml @@ -0,0 +1,25 @@ +--- +coder_hashed_password: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 62333564316138383039363662626331353837623964393737383537636563373530643533373132 + 3566626533643038356139326661386133656634636462640a626131653532346665646562616263 + 64393263313662386539343930303337366233623161393031316336316266353162373332633666 + 3163643039396532350a653166663630376238666637656131623864313237373532626262396265 + 65313134646461666436343564313865623663613535343362333462643739636662396263396331 + 39333263306231653835343265316439623063653430623066353439393932393031633238626332 + 62623031636631623636396530663535316166643935343932383232373963323665353136306333 + 63306362623837343132613034616261326336386461356265303234333762323063623634393531 + 3762 +coder_sudo_hashed_password: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 62333564316138383039363662626331353837623964393737383537636563373530643533373132 + 3566626533643038356139326661386133656634636462640a626131653532346665646562616263 + 64393263313662386539343930303337366233623161393031316336316266353162373332633666 + 3163643039396532350a653166663630376238666637656131623864313237373532626262396265 + 65313134646461666436343564313865623663613535343362333462643739636662396263396331 + 39333263306231653835343265316439623063653430623066353439393932393031633238626332 + 62623031636631623636396530663535316166643935343932383232373963323665353136306333 + 63306362623837343132613034616261326336386461356265303234333762323063623634393531 + 3762 +coder_proxy_domain: coder.local.cobb.lgbt +coder_default_workspace: /workspace diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/common/files/ansible/ansible_ed25519.pub b/collections/ansible_collections/adhdgirl/minilab/roles/common/files/ansible/ansible_ed25519.pub index 92f0375..e497ca8 100644 --- a/collections/ansible_collections/adhdgirl/minilab/roles/common/files/ansible/ansible_ed25519.pub +++ b/collections/ansible_collections/adhdgirl/minilab/roles/common/files/ansible/ansible_ed25519.pub @@ -1 +1 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEUrVjr7OOouXuax/peH72TgWiVaE1hacB65lXRUQdmP annika@ansible +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEUrVjr7OOouXuax/peH72TgWiVaE1hacB65lXRUQdmP ansible@ansible diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/common/files/users/annika/id_ed25519.pub b/collections/ansible_collections/adhdgirl/minilab/roles/common/files/users/annika/id_ed25519.pub index 838bee1..7410589 100644 --- a/collections/ansible_collections/adhdgirl/minilab/roles/common/files/users/annika/id_ed25519.pub +++ b/collections/ansible_collections/adhdgirl/minilab/roles/common/files/users/annika/id_ed25519.pub @@ -1 +1 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE1XzepIOOXlSAjVTVKXlCYiPD4gtlt4/1ky9UWaB/2f annika@ansible +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE1XzepIOOXlSAjVTVKXlCYiPD4gtlt4/1ky9UWaB/2f annika@ansible.local.cobb.lgbt diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/common/tasks/users.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/common/tasks/users.yaml index e28b5ba..07a8421 100644 --- a/collections/ansible_collections/adhdgirl/minilab/roles/common/tasks/users.yaml +++ b/collections/ansible_collections/adhdgirl/minilab/roles/common/tasks/users.yaml @@ -25,7 +25,7 @@ ansible.builtin.user: name: "{{ user_name }}" password: "{{ common_user_password | string | password_hash('sha512') }}" - when: user_exists.state != 'present' + when: user_exists is defined and user_exists.state != 'present' - name: Adjust shell for Debian hosts tags: settings,users,debian ansible.builtin.user: diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/unifi-controller/tasks/main.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/unifi-controller/tasks/main.yaml index eb04840..c7aa4e4 100644 --- a/collections/ansible_collections/adhdgirl/minilab/roles/unifi-controller/tasks/main.yaml +++ b/collections/ansible_collections/adhdgirl/minilab/roles/unifi-controller/tasks/main.yaml @@ -41,7 +41,7 @@ community.docker.docker_compose_v2: project_src: "/opt/unifi" pull: always - + rescue: - name: Set that this task failed ansible.builtin.set_fact: diff --git a/inventory/host_vars/stephanie.yaml b/inventory/host_vars/stephanie.yaml new file mode 100644 index 0000000..a07808a --- /dev/null +++ b/inventory/host_vars/stephanie.yaml @@ -0,0 +1,2 @@ +--- +server_name: stephanie diff --git a/inventory/hosts.yaml b/inventory/hosts.yaml index 719d3d4..85b21df 100644 --- a/inventory/hosts.yaml +++ b/inventory/hosts.yaml @@ -15,10 +15,13 @@ all: ansible_host: 10.69.10.54 trady: ansible_host: 10.69.11.5 + stephanie: + ansible_host: 10.69.11.51 children: alpine: hosts: adguard: + stephanie: debian: hosts: maxim: @@ -32,9 +35,13 @@ all: adguard: pump: trady: + stephanie: unifi_controller: hosts: pump: adguard_servers: hosts: adguard: + coder: + hosts: + stephanie: diff --git a/minilab.yaml b/minilab.yaml index 7911620..4167e81 100644 --- a/minilab.yaml +++ b/minilab.yaml @@ -29,3 +29,9 @@ become: true roles: - adhdgirl.minilab.adguardhome +- name: Configure Coder hosts + hosts: coder + tags: docker,coder + become: true + roles: + - adhdgirl.minilab.coder