; [all:vars] ; ansible_user=ubuntu-s # using same user for all VMs ; # If you use the SSH key method above: ; # ansible_ssh_private_key_file=~/.ssh/id_rsa ; # using mounted private key from windows folder structure from does not work ; #ansible_ssh_private_key_file=/mnt/c/Users/wendg2/.ssh/id_ed25519 ; ansible_ssh_private_key_file=~/.ssh/id_ed25519 ; [master] ; 192.168.3.91 ; [workers] ; 192.168.3.93 ; 192.168.3.92 ; 192.168.3.94 ;[master] ;192.168.3.91 ansible_user=master-1 ;192.168.3.120 ansible-user=master ;192.168.3.97 ansible-user=master-7 [master] invixel-ubuntu4 ansible_host=192.168.3.156 ansible_user=master invixel-vm1 ansible_host=192.168.3.91 ansible_user=master-1 invixel-vm7 ansible_host=192.168.3.97 ansible_user=master-7 ;ssh-keygen -t ed25519 -C "josh@admin" -> generiere ssh schlüssel paar einfach zweimal leer Enter drücken ;sudo visudo : in the server you want to add ;add master ALL=(ALL) NOPASSWD:ALL ; oder echo "master ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/master -> invixel-ubuntu2 ; for debian: echo "master ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/master ; --> alternativ ohne Änderung auf Visudo mit -K ask nach Root Password ; ansible-playbook -i hosts.ini k3s-remote-control.yaml -K ; for debian: chmod 0440 /etc/sudoers.d/master ;ssh-copy-id -i ~/.ssh/id_ed25519 master@192.168.3.156 -> kopiere auf die Server # different user name [pure_dbworkers] invixel-ubuntu2 ansible_host=192.168.3.155 ansible_user=master ;192.168.3.122 ansible_user=master invixel-vm5 ansible_host=192.168.3.95 ansible_user=master-5 invixel-vm6 ansible_host=192.168.3.96 ansible_user=master-6 invixel-ubuntu3 ansible_host=192.168.3.153 ansible_user=master invixel-ubuntu5 ansible_host=192.168.3.154 ansible_user=master [workers] invixel-debian1 ansible_host=192.168.3.151 ansible_user=master invixel-ubuntu5 ansible_host=192.168.3.154 ansible_user=master invixel-ubuntu3 ansible_host=192.168.3.153 ansible_user=master # Hier bündeln wir die echten DB-Worker inklusive dem Master vm7 [dbworkers:children] pure_dbworkers [dbworkers:hosts] invixel-vm1 # Ansible weiß jetzt, dass vm1 hier dazugehört und nutzt die IP/User von oben! invixel-vm7 # This group combines both for easy targeting [k8s_nodes:children] master workers [k3s_agents:children] pure_dbworkers workers # [k8s_nodes:vars] # # Ensure Ansible uses the correct Python on the remote nodes # ansible_python_interpreter=/usr/bin/python3 # # If you use the same SSH key for all: # ansible_ssh_private_key_file=~/.ssh/id_rsa # Das Endergebnis im Cluster # Sobald dein Playbook durchgelaufen ist und du auf deinem Laptop kubectl get nodes eingibst, sieht deine Topologie so aus: # 3 Master (HA-Control-Plane mit etcd): invixel-vm1, invixel-vm7 und invixel-ubuntu4. Alle drei können auch Pods ausführen. # 3 dedizierte DB-Worker: .92, .93, .94 (plus invixel-vm7 als Master-DB-Hybrid). # 5 dedizierte normale Worker: .95, .96, .153, .154, .155 (plus invixel-ubuntu4 als Master-Worker-Hybrid).