14 Commits

Author SHA1 Message Date
Tuan-Dat Tran
0a3171b9bc feat(k3s): Added 2 nodes (2/2)
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2026-01-26 23:08:34 +01:00
Tuan-Dat Tran
3068a5a8fb feat(k3s): Added 2 nodesg
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2026-01-26 22:42:19 +01:00
Tuan-Dat Tran
ef652fac20 refactor: yml -> yaml
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-11-07 20:44:14 +01:00
Tuan-Dat Tran
22c1b534ab feat(k3s): Add new node and machine
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-10-26 10:41:11 +01:00
Tuan-Dat Tran
9cb90a8020 feat(caddy): netcup->cf
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-10-25 09:25:40 +02:00
Tuan-Dat Tran
d9181515bb feat(k3s): Added (temporary) node
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-10-19 01:33:42 +02:00
Tuan-Dat Tran
c3905ed144 feat(git): Add .gitattributes for ansible-vault git diff
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-10-19 00:34:51 +02:00
Tuan-Dat Tran
5fb50ab4b2 feat(k3s): Add new node
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-10-07 23:46:40 +02:00
Tuan-Dat Tran
2909d6e16c feat(nfs): Removed unused/removed nfs servers
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
0aed818be5 feat(docker): Removed nodes docker-host10 and docker-host12
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
fbdeec93ce feat(docker): match services that moved to k3s
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
44626101de feat(docker): match services that moved to k3s
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
c1d6f13275 refactor(ansible-lint): fixed ansible-lint warnings
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
282e98e90a fix(proxmox): commented 'non-errors' on script
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-09-15 23:29:03 +02:00
129 changed files with 429 additions and 759 deletions

View File

@@ -13,6 +13,8 @@ skip_list:
- fqcn-builtins - fqcn-builtins
- no-handler - no-handler
- var-naming - var-naming
- no-changed-when
- risky-shell-pipe
# Enforce certain rules that are not enabled by default. # Enforce certain rules that are not enabled by default.
enable_list: enable_list:

8
.gitattributes vendored Normal file
View File

@@ -0,0 +1,8 @@
vars/group_vars/proxmox/secrets_vm.yml diff=ansible-vault merge=binary
vars/group_vars/all/secrets.yml diff=ansible-vault merge=binary
vars/group_vars/docker/secrets.yml diff=ansible-vault merge=binary
vars/group_vars/k3s/secrets.yml diff=ansible-vault merge=binary
vars/group_vars/k3s/secrets_token.yml diff=ansible-vault merge=binary
vars/group_vars/kubernetes/secrets.yml diff=ansible-vault merge=binary
vars/group_vars/proxmox/secrets.yml diff=ansible-vault merge=binary
vars/group_vars/proxmox/secrets_vm.yml diff=ansible-vault merge=binary

View File

@@ -10,7 +10,7 @@ repos:
hooks: hooks:
- id: ansible-galaxy-install - id: ansible-galaxy-install
name: Install ansible-galaxy collections name: Install ansible-galaxy collections
entry: ansible-galaxy collection install -r requirements.yml entry: ansible-galaxy collection install -r requirements.yaml
language: system language: system
pass_filenames: false pass_filenames: false
always_run: true always_run: true
@@ -18,6 +18,6 @@ repos:
rev: v6.22.2 rev: v6.22.2
hooks: hooks:
- id: ansible-lint - id: ansible-lint
files: \.(yaml|yml)$ files: \.(yaml)$
additional_dependencies: additional_dependencies:
- ansible-core==2.15.8 - ansible-core==2.15.8

View File

@@ -66,6 +66,17 @@ The following roles are defined:
ansible-playbook -i vars/k3s.ini playbooks/kubernetes_setup.yml ansible-playbook -i vars/k3s.ini playbooks/kubernetes_setup.yml
``` ```
## Notes
### Vault Git Diff
This repo has a `.gitattributes` which points at the repos ansible-vault files.
These can be temporarily decrypted for git diff by adding this in conjunction with the `.gitattributes`:
```sh
# https://stackoverflow.com/questions/29937195/how-to-diff-ansible-vault-changes
git config --global diff.ansible-vault.textconv "ansible-vault view"
```
## Disclaimer ## Disclaimer
This project is highly customized for the author's specific environment. Using it without modification is not recommended. This project is highly customized for the author's specific environment. Using it without modification is not recommended.

View File

@@ -14,7 +14,7 @@ vault_password_file=/media/veracrypt1/scripts/ansible_vault.sh
# (list) Check all of these extensions when looking for 'variable' files which should be YAML or JSON or vaulted versions of these. # (list) Check all of these extensions when looking for 'variable' files which should be YAML or JSON or vaulted versions of these.
# This affects vars_files, include_vars, inventory and vars plugins among others. # This affects vars_files, include_vars, inventory and vars plugins among others.
yaml_valid_extensions=.yml yaml_valid_extensions=.yaml
# (boolean) Set this to "False" if you want to avoid host key checking by the underlying tools Ansible uses to connect to the host # (boolean) Set this to "False" if you want to avoid host key checking by the underlying tools Ansible uses to connect to the host
host_key_checking=False host_key_checking=False

View File

@@ -3,9 +3,9 @@
hosts: docker_host hosts: docker_host
gather_facts: true gather_facts: true
roles: roles:
- role: common # - role: common
tags: # tags:
- common # - common
- role: docker_host - role: docker_host
tags: tags:
- docker_host - docker_host

5
playbooks/docker.yaml Normal file
View File

@@ -0,0 +1,5 @@
---
- name: Setup Docker Hosts
ansible.builtin.import_playbook: docker-host.yaml
- name: Setup Docker load balancer
ansible.builtin.import_playbook: docker-lb.yaml

View File

@@ -1,5 +0,0 @@
---
- name: Setup Docker Hosts
ansible.builtin.import_playbook: docker-host.yml
- name: Setup Docker load balancer
ansible.builtin.import_playbook: docker-lb.yml

View File

@@ -0,0 +1,6 @@
---
- name: Create new VM(s)
ansible.builtin.import_playbook: proxmox.yaml
- name: Provision VM
ansible.builtin.import_playbook: k3s-agents.yaml

View File

@@ -79,12 +79,13 @@
path: ~/.config/nvim path: ~/.config/nvim
register: nvim_config register: nvim_config
- name: Clone LazyVim starter to Neovim config directory - name: Clone personal Neovim config directory
ansible.builtin.git: ansible.builtin.git:
repo: https://github.com/LazyVim/starter repo: https://codeberg.org/tudattr/nvim
dest: ~/.config/nvim dest: ~/.config/nvim
clone: true clone: true
update: false update: false
version: 1.0.0
when: not nvim_config.stat.exists when: not nvim_config.stat.exists
- name: Remove .git directory from Neovim config - name: Remove .git directory from Neovim config

View File

@@ -0,0 +1,13 @@
---
- name: Configure Time
ansible.builtin.include_tasks: time.yaml
- name: Configure Packages
ansible.builtin.include_tasks: packages.yaml
- name: Configure Hostname
ansible.builtin.include_tasks: hostname.yaml
- name: Configure Extra-Packages
ansible.builtin.include_tasks: extra_packages.yaml
- name: Configure Bash
ansible.builtin.include_tasks: bash.yaml
- name: Configure SSH
ansible.builtin.include_tasks: sshd.yaml

View File

@@ -1,13 +0,0 @@
---
- name: Configure Time
ansible.builtin.include_tasks: time.yml
- name: Configure Packages
ansible.builtin.include_tasks: packages.yml
- name: Configure Hostname
ansible.builtin.include_tasks: hostname.yml
- name: Configure Extra-Packages
ansible.builtin.include_tasks: extra_packages.yml
- name: Configure Bash
ansible.builtin.include_tasks: bash.yml
- name: Configure SSH
ansible.builtin.include_tasks: sshd.yml

View File

@@ -15,3 +15,4 @@ common_packages:
- ripgrep - ripgrep
- nfs-common - nfs-common
- open-iscsi - open-iscsi
- parted

View File

@@ -5,7 +5,6 @@
state: directory state: directory
mode: "0755" mode: "0755"
loop: loop:
- /media/docker
- /media/series - /media/series
- /media/movies - /media/movies
- /media/songs - /media/songs
@@ -38,4 +37,5 @@
- /media/series - /media/series
- /media/movies - /media/movies
- /media/songs - /media/songs
- /media/downloads
become: true become: true

View File

@@ -0,0 +1,21 @@
---
- name: Setup VM
ansible.builtin.include_tasks: 10_setup.yaml
- name: Install docker
ansible.builtin.include_tasks: 20_installation.yaml
- name: Setup user and group for docker
ansible.builtin.include_tasks: 30_user_group_setup.yaml
- name: Setup directory structure for docker
ansible.builtin.include_tasks: 40_directory_setup.yaml
# - name: Deploy configs
# ansible.builtin.include_tasks: 50_provision.yaml
- name: Deploy docker compose
ansible.builtin.include_tasks: 60_deploy_compose.yaml
- name: Publish metrics
ansible.builtin.include_tasks: 70_export.yaml

View File

@@ -1,21 +0,0 @@
---
- name: Setup VM
ansible.builtin.include_tasks: 10_setup.yml
- name: Install docker
ansible.builtin.include_tasks: 20_installation.yml
- name: Setup user and group for docker
ansible.builtin.include_tasks: 30_user_group_setup.yml
- name: Setup directory structure for docker
ansible.builtin.include_tasks: 40_directory_setup.yml
- name: Deploy configs
ansible.builtin.include_tasks: 50_provision.yml
- name: Deploy docker compose
ansible.builtin.include_tasks: 60_deploy_compose.yml
- name: Publish metrics
ansible.builtin.include_tasks: 70_export.yml

View File

@@ -1,7 +1,5 @@
docker_host_package_common_dependencies: docker_host_package_common_dependencies:
- nfs-common - nfs-common
- firmware-misc-nonfree
- linux-image-amd64
apt_lock_files: apt_lock_files:
- /var/lib/dpkg/lock - /var/lib/dpkg/lock

View File

@@ -0,0 +1,3 @@
---
- name: Install k3s agent
include_tasks: installation.yaml

View File

@@ -1,3 +0,0 @@
---
- name: Install k3s agent
include_tasks: installation.yml

View File

@@ -1,9 +1,9 @@
--- ---
- name: Installation - name: Installation
ansible.builtin.include_tasks: installation.yml ansible.builtin.include_tasks: installation.yaml
- name: Configure - name: Configure
ansible.builtin.include_tasks: configuration.yml ansible.builtin.include_tasks: configuration.yaml
- name: Setup DNS on Netcup - name: Setup DNS on Netcup
community.general.netcup_dns: community.general.netcup_dns:

View File

@@ -14,16 +14,16 @@
register: k3s_status register: k3s_status
- name: Install primary k3s server - name: Install primary k3s server
include_tasks: primary_installation.yml include_tasks: primary_installation.yaml
when: ansible_default_ipv4.address == k3s_primary_server_ip when: ansible_default_ipv4.address == k3s_primary_server_ip
- name: Get token from primary k3s server - name: Get token from primary k3s server
include_tasks: pull_token.yml include_tasks: pull_token.yaml
- name: Install seconary k3s servers - name: Install seconary k3s servers
include_tasks: secondary_installation.yml include_tasks: secondary_installation.yaml
when: ansible_default_ipv4.address != k3s_primary_server_ip when: ansible_default_ipv4.address != k3s_primary_server_ip
- name: Set kubeconfig on localhost - name: Set kubeconfig on localhost
include_tasks: create_kubeconfig.yml include_tasks: create_kubeconfig.yaml
when: ansible_default_ipv4.address == k3s_primary_server_ip when: ansible_default_ipv4.address == k3s_primary_server_ip

View File

@@ -1 +1 @@
k3s_server_token_vault_file: ../vars/group_vars/k3s/secrets_token.yml k3s_server_token_vault_file: ../vars/group_vars/k3s/secrets_token.yaml

View File

@@ -0,0 +1,5 @@
---
- name: Install dependencies
ansible.builtin.include_tasks: requirements.yaml
- name: Install k3s
ansible.builtin.include_tasks: installation.yaml

View File

@@ -1,5 +0,0 @@
---
- name: Install dependencies
ansible.builtin.include_tasks: requirements.yml
- name: Install k3s
ansible.builtin.include_tasks: installation.yml

View File

@@ -33,7 +33,7 @@
- name: Apply ArgoCD Ingress - name: Apply ArgoCD Ingress
kubernetes.core.k8s: kubernetes.core.k8s:
definition: "{{ lookup('ansible.builtin.template', 'ingress.yml.j2') | from_yaml }}" definition: "{{ lookup('ansible.builtin.template', 'ingress.yaml.j2') | from_yaml }}"
state: present state: present
namespace: "{{ argocd_namespace }}" namespace: "{{ argocd_namespace }}"
register: apply_manifests register: apply_manifests
@@ -53,7 +53,7 @@
- name: Apply ArgoCD repository - name: Apply ArgoCD repository
kubernetes.core.k8s: kubernetes.core.k8s:
definition: "{{ lookup('ansible.builtin.template', 'repository.yml.j2') | from_yaml }}" definition: "{{ lookup('ansible.builtin.template', 'repository.yaml.j2') | from_yaml }}"
state: present state: present
namespace: "{{ argocd_namespace }}" namespace: "{{ argocd_namespace }}"
register: apply_manifests register: apply_manifests
@@ -63,7 +63,7 @@
- name: Apply ArgoCD Root Application - name: Apply ArgoCD Root Application
kubernetes.core.k8s: kubernetes.core.k8s:
definition: "{{ lookup('ansible.builtin.template', 'root_application.yml.j2') | from_yaml }}" definition: "{{ lookup('ansible.builtin.template', 'root_application.yaml.j2') | from_yaml }}"
state: present state: present
namespace: "{{ argocd_namespace }}" namespace: "{{ argocd_namespace }}"
register: apply_manifests register: apply_manifests

View File

@@ -0,0 +1,6 @@
- name: Get Version
ansible.builtin.include_tasks: get_version.yaml
- name: Install
ansible.builtin.include_tasks: install.yaml
- name: Setup Service
ansible.builtin.include_tasks: systemd.yaml

View File

@@ -1,6 +0,0 @@
- name: Get Version
ansible.builtin.include_tasks: get_version.yml
- name: Install
ansible.builtin.include_tasks: install.yml
- name: Setup Service
ansible.builtin.include_tasks: systemd.yml

View File

@@ -2,11 +2,6 @@
This role facilitates the management of Proxmox VE resources, including virtual machines (VMs) and LXC containers. It automates the setup of Proxmox nodes and the creation, configuration, and destruction of guests. This role facilitates the management of Proxmox VE resources, including virtual machines (VMs) and LXC containers. It automates the setup of Proxmox nodes and the creation, configuration, and destruction of guests.
## Requirements
- `community.general.proxmox_vm_info`
- `community.general.proxmox_kvm`
## Role Variables ## Role Variables
| Variable | Description | Default Value | | Variable | Description | Default Value |

View File

@@ -65,11 +65,11 @@ restart_vm() {
} }
# Main execution # Main execution
log_message "Starting monitoring of VM $VM_ID on port $PORT..." # log_message "Starting monitoring of VM $VM_ID on port $PORT..."
# Check if port 22 is open # Check if port 22 is open
if ! check_port; then if ! check_port; then
restart_vm restart_vm
else # else
log_message "Port $PORT is reachable. VM is running normally." # log_message "Port $PORT is reachable. VM is running normally."
fi fi

View File

@@ -0,0 +1,8 @@
---
- name: Prepare Localhost
ansible.builtin.include_tasks: ./01_setup_localhost.yaml
when: is_localhost
- name: Prepare Localhost
ansible.builtin.include_tasks: ./05_setup_node.yaml
when: is_proxmox_node

View File

@@ -1,8 +0,0 @@
---
- name: Prepare Localhost
ansible.builtin.include_tasks: ./01_setup_localhost.yml
when: is_localhost
- name: Prepare Localhost
ansible.builtin.include_tasks: ./05_setup_node.yml
when: is_proxmox_node

View File

@@ -7,4 +7,4 @@
loop: "{{ proxmox_node_dependencies }}" loop: "{{ proxmox_node_dependencies }}"
- name: Ensure Harware Acceleration on node - name: Ensure Harware Acceleration on node
ansible.builtin.include_tasks: 06_hardware_acceleration.yml ansible.builtin.include_tasks: 06_hardware_acceleration.yaml

View File

@@ -23,6 +23,7 @@
vfio_virqfd vfio_virqfd
create: true create: true
backup: true backup: true
mode: 644
register: vfio_result register: vfio_result
- name: Update initramfs - name: Update initramfs

View File

@@ -6,7 +6,7 @@
mode: "0600" mode: "0600"
- name: Update Vault data - name: Update Vault data
ansible.builtin.include_tasks: 15_create_secret.yml ansible.builtin.include_tasks: 15_create_secret.yaml
loop: "{{ vms | map(attribute='name') }}" loop: "{{ vms | map(attribute='name') }}"
loop_control: loop_control:
loop_var: "vm_name" loop_var: "vm_name"

View File

@@ -1,7 +1,6 @@
--- ---
- name: Decrypt vm vault file - name: Decrypt vm vault file
ansible.builtin.shell: cd ../; ansible-vault decrypt "./playbooks/{{ proxmox_vault_file }}" ansible.builtin.shell: cd ../; ansible-vault decrypt "./playbooks/{{ proxmox_vault_file }}"
ignore_errors: true
no_log: true no_log: true
- name: Load existing vault content - name: Load existing vault content
@@ -43,5 +42,4 @@
- name: Encrypt vm vault file - name: Encrypt vm vault file
ansible.builtin.shell: cd ../; ansible-vault encrypt "./playbooks/{{ proxmox_vault_file }}" ansible.builtin.shell: cd ../; ansible-vault encrypt "./playbooks/{{ proxmox_vault_file }}"
ignore_errors: true
no_log: true no_log: true

View File

@@ -1,6 +1,6 @@
--- ---
- name: Download Cloud Init Isos - name: Download Cloud Init Isos
ansible.builtin.include_tasks: 42_download_isos.yml ansible.builtin.include_tasks: 42_download_isos.yaml
loop: "{{ proxmox_cloud_init_images | dict2items | map(attribute='value') }}" loop: "{{ proxmox_cloud_init_images | dict2items | map(attribute='value') }}"
loop_control: loop_control:
loop_var: distro loop_var: distro

View File

@@ -5,13 +5,13 @@
name: vm_secrets name: vm_secrets
# - name: Destroy vms (Only during rapid testing) # - name: Destroy vms (Only during rapid testing)
# ansible.builtin.include_tasks: 54_destroy_vm.yml # ansible.builtin.include_tasks: 54_destroy_vm.yaml
# loop: "{{ vms }}" # loop: "{{ vms }}"
# loop_control: # loop_control:
# loop_var: "vm" # loop_var: "vm"
- name: Create vms - name: Create vms
ansible.builtin.include_tasks: 55_create_vm.yml ansible.builtin.include_tasks: 55_create_vm.yaml
loop: "{{ vms }}" loop: "{{ vms }}"
loop_control: loop_control:
loop_var: "vm" loop_var: "vm"

View File

@@ -1,6 +1,6 @@
--- ---
- name: Gather info about VM - name: Gather info about VM
community.general.proxmox_vm_info: community.proxmox.proxmox_vm_info:
api_user: "{{ proxmox_api_user }}@pam" api_user: "{{ proxmox_api_user }}@pam"
api_token_id: "{{ proxmox_api_token_id }}" api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}" api_token_secret: "{{ proxmox_api_token_secret }}"
@@ -9,7 +9,7 @@
register: vm_info register: vm_info
- name: Stop VM - name: Stop VM
community.general.proxmox_kvm: community.proxmox.proxmox_kvm:
api_user: "{{ proxmox_api_user }}@pam" api_user: "{{ proxmox_api_user }}@pam"
api_token_id: "{{ proxmox_api_token_id }}" api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}" api_token_secret: "{{ proxmox_api_token_secret }}"
@@ -21,7 +21,7 @@
when: vm_info.proxmox_vms | length > 0 when: vm_info.proxmox_vms | length > 0
- name: Destroy VM - name: Destroy VM
community.general.proxmox_kvm: community.proxmox.proxmox_kvm:
api_user: "{{ proxmox_api_user }}@pam" api_user: "{{ proxmox_api_user }}@pam"
api_token_id: "{{ proxmox_api_token_id }}" api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}" api_token_secret: "{{ proxmox_api_token_secret }}"

View File

@@ -1,6 +1,6 @@
--- ---
- name: Create VM - name: Create VM
community.general.proxmox_kvm: community.proxmox.proxmox_kvm:
api_user: "{{ proxmox_api_user }}@pam" api_user: "{{ proxmox_api_user }}@pam"
api_token_id: "{{ proxmox_api_token_id }}" api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}" api_token_secret: "{{ proxmox_api_token_secret }}"
@@ -27,5 +27,5 @@
register: proxmox_deploy_info register: proxmox_deploy_info
- name: Provision created VM - name: Provision created VM
ansible.builtin.include_tasks: 56_provision_new_vm.yml ansible.builtin.include_tasks: 56_provision_new_vm.yaml
when: proxmox_deploy_info.changed when: proxmox_deploy_info.changed

View File

@@ -25,7 +25,7 @@
delegate_to: "{{ vm.node }}" delegate_to: "{{ vm.node }}"
- name: Start VM - name: Start VM
community.general.proxmox_kvm: community.proxmox.proxmox_kvm:
api_user: "{{ proxmox_api_user }}@pam" api_user: "{{ proxmox_api_user }}@pam"
api_token_id: "{{ proxmox_api_token_id }}" api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}" api_token_secret: "{{ proxmox_api_token_secret }}"
@@ -35,14 +35,14 @@
state: started state: started
- name: Retry stopping VM - name: Retry stopping VM
ansible.builtin.include_tasks: ./57_stop_and_verify_vm.yml ansible.builtin.include_tasks: ./57_stop_and_verify_vm.yaml
- name: Pause for 5 seconds for api - name: Pause for 5 seconds for api
ansible.builtin.pause: ansible.builtin.pause:
seconds: 5 seconds: 5
- name: Start VM - name: Start VM
community.general.proxmox_kvm: community.proxmox.proxmox_kvm:
api_user: "{{ proxmox_api_user }}@pam" api_user: "{{ proxmox_api_user }}@pam"
api_token_id: "{{ proxmox_api_token_id }}" api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}" api_token_secret: "{{ proxmox_api_token_secret }}"
@@ -99,7 +99,7 @@
- name: Creates PATH-entry for crontab - name: Creates PATH-entry for crontab
ansible.builtin.cron: ansible.builtin.cron:
name: PATH name: PATH
env: yes env: true
job: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin job: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
delegate_to: "{{ vm.node }}" delegate_to: "{{ vm.node }}"

View File

@@ -5,7 +5,7 @@
retry_count: "{{ 0 if retry_count is undefined else retry_count | int + 1 }}" retry_count: "{{ 0 if retry_count is undefined else retry_count | int + 1 }}"
- name: Stop VM - name: Stop VM
community.general.proxmox_kvm: community.proxmox.proxmox_kvm:
api_user: "{{ proxmox_api_user }}@pam" api_user: "{{ proxmox_api_user }}@pam"
api_token_id: "{{ proxmox_api_token_id }}" api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}" api_token_secret: "{{ proxmox_api_token_secret }}"
@@ -16,7 +16,7 @@
force: true force: true
- name: Wait until VM is fully stopped - name: Wait until VM is fully stopped
community.general.proxmox_vm_info: community.proxmox.proxmox_vm_info:
api_user: "{{ proxmox_api_user }}@pam" api_user: "{{ proxmox_api_user }}@pam"
api_token_id: "{{ proxmox_api_token_id }}" api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}" api_token_secret: "{{ proxmox_api_token_secret }}"
@@ -36,4 +36,4 @@
seconds: 5 seconds: 5
- name: "Failed to stop VM - Retrying..." - name: "Failed to stop VM - Retrying..."
include_tasks: ./57_stop_and_verify_vm.yml include_tasks: ./57_stop_and_verify_vm.yaml

View File

@@ -5,7 +5,7 @@
name: vm_secrets name: vm_secrets
- name: Create vms - name: Create vms
ansible.builtin.include_tasks: 65_create_container.yml ansible.builtin.include_tasks: 65_create_container.yaml
loop: "{{ lxcs }}" loop: "{{ lxcs }}"
loop_control: loop_control:
loop_var: "container" loop_var: "container"

View File

@@ -0,0 +1,19 @@
---
- name: Prepare Machines
ansible.builtin.include_tasks: 00_setup_machines.yaml
- name: Create VM vault
ansible.builtin.include_tasks: 10_create_secrets.yaml
when: is_localhost
- name: Prime node for VM
ansible.builtin.include_tasks: 40_prepare_vm_creation.yaml
when: is_proxmox_node
- name: Create VMs
ansible.builtin.include_tasks: 50_create_vms.yaml
when: is_localhost
- name: Create LXC containers
ansible.builtin.include_tasks: 60_create_containers.yaml
when: is_localhost

View File

@@ -1,19 +0,0 @@
---
- name: Prepare Machines
ansible.builtin.include_tasks: 00_setup_machines.yml
- name: Create VM vault
ansible.builtin.include_tasks: 10_create_secrets.yml
when: is_localhost
- name: Prime node for VM
ansible.builtin.include_tasks: 40_prepare_vm_creation.yml
when: is_proxmox_node
- name: Create VMs
ansible.builtin.include_tasks: 50_create_vms.yml
when: is_localhost
- name: Create LXC containers
ansible.builtin.include_tasks: 60_create_containers.yml
when: is_localhost

View File

@@ -3,7 +3,7 @@ proxmox_creator: ansible
proxmox_storage: proxmox proxmox_storage: proxmox
proxmox_vault_file: ../vars/group_vars/proxmox/secrets_vm.yml proxmox_vault_file: ../vars/group_vars/proxmox/secrets_vm.yaml
proxmox_secrets_prefix: secrets_vm proxmox_secrets_prefix: secrets_vm
proxmox_cloud_init_images: proxmox_cloud_init_images:
debian: debian:

View File

@@ -25,7 +25,7 @@
become: true become: true
- name: Build Custom Caddy with netcup - name: Build Custom Caddy with netcup
ansible.builtin.command: xcaddy build --with github.com/caddy-dns/netcup ansible.builtin.command: xcaddy build --with github.com/caddy-dns/cloudflare
environment: environment:
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin" PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin"
register: xcaddy_build register: xcaddy_build

View File

@@ -0,0 +1,14 @@
---
# - name: Setup DNS on Netcup
# community.general.netcup_dns:
# api_key: "{{ netcup_api_key }}"
# api_password: "{{ netcup_api_password }}"
# customer_id: "{{ netcup_customer_id }}"
# domain: "{{ domain }}"
# name: "{{ service.name }}"
# type: "A"
# value: "{{ hostvars['docker-lb'].ansible_default_ipv4.address }}"
# loop: "{{ services }}"
# loop_control:
# loop_var: service
# delegate_to: localhost

View File

@@ -1,14 +0,0 @@
---
- name: Setup DNS on Netcup
community.general.netcup_dns:
api_key: "{{ netcup_api_key }}"
api_password: "{{ netcup_api_password }}"
customer_id: "{{ netcup_customer_id }}"
domain: "{{ domain }}"
name: "{{ service.name }}"
type: "A"
value: "{{ hostvars['docker-lb'].ansible_default_ipv4.address }}"
loop: "{{ services }}"
loop_control:
loop_var: service
delegate_to: localhost

Some files were not shown because too many files have changed in this diff Show More