Compare commits

...

2 commits

9 changed files with 67 additions and 19 deletions

View file

@ -1,5 +1,5 @@
ansible_ssh_private_key_file: ~/.ssh/id_rsa
ssh_public_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
ssh_public_key: "{{ lookup('file', '~/.ssh/id_ed25519.pub') }}"
# Network config
subnet: "192.168.6.0"

View file

@ -9,8 +9,13 @@
roles:
- wol-wake
- name: Clean up playbook execution
- name: Clean up PXE environment
hosts: localhost
gather_facts: false
roles:
- pxe-cleanup
- name: Configure networking
hosts: metal
roles:
- systemd-networkd

View file

@ -2,9 +2,25 @@ metal:
children:
masters:
hosts:
lab-mini-1: {ansible_host: 192.168.6.21, mac: '4c:52:62:1c:bf:6c', disk: '/dev/sda'}
lab-mini-2: {ansible_host: 192.168.6.22, mac: '4c:52:62:0f:09:6d', disk: '/dev/sda'}
lab-mini-3: {ansible_host: 192.168.6.23, mac: '4c:52:62:0f:0a:23', disk: '/dev/sda'}
lab-mini-1:
ansible_host: 192.168.6.21
mac: '4c:52:62:1c:bf:6c'
disk: '/dev/nvme0n1'
ansible_become_pass: '{{ vault_ansible_become_password }}'
lab-mini-2:
ansible_host: 192.168.6.22
mac: '4c:52:62:0f:09:6d'
disk: '/dev/nvme0n1'
ansible_become_pass: '{{ vault_ansible_become_password }}'
lab-mini-3:
ansible_host: 192.168.6.23
mac: '4c:52:62:0f:0a:23'
disk: '/dev/nvme0n1'
ansible_become_pass: '{{ vault_ansible_become_password }}'
workers:
hosts:
lab-mini-4: {ansible_host: 192.168.6.24, mac: '90:1b:0e:f8:e8:af', disk: '/dev/sda'}
lab-mini-4:
ansible_host: 192.168.6.24
mac: '90:1b:0e:f8:e8:af'
disk: '/dev/nvme0n1'
ansible_become_pass: '{{ vault_ansible_become_password }}'

View file

@ -1,8 +1,5 @@
- name: Tear down PXE stack
docker_compose:
project_name: "pxe"
project_src: "{{ playbook_dir }}/roles/pxe-server/files/"
state: absent
ansible.builtin.command: "docker compose --project-name pxe down"
- name: Remove preseed files
file:

View file

@ -1,2 +1,2 @@
os_download_url: "https://deb.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz"
os_download_checksum: "sha256:ec3b71964457f30a57061ea758c12394bf2b792b461c697e61cc2d47053c5878"
os_download_checksum: "sha256:e8edf26ac9837d7dbbcfd96f47f51530260a6c68568938978e1b63ea698d5663"

View file

@ -30,9 +30,4 @@
loop: "{{ groups['metal'] }}"
- name: Start PXE stack
docker_compose:
project_src: "{{ role_path }}/files"
project_name: "pxe"
state: present
restarted: true
build: true
ansible.builtin.command: "docker compose --project-name pxe -f {{ role_path }}/files/docker-compose.yml up -d --build"

View file

@ -0,0 +1,28 @@
- name: "Configure systemd-networkd"
become: true
block:
- name: "Render network config"
template:
src: default.network.j2
dest: "/etc/systemd/network/default.network"
mode: 0644
- name: "Enable systemd-networkd"
ansible.builtin.systemd:
name: systemd-networkd
enabled: true
- name: "Remove /etc/network"
ansible.builtin.file:
path: /etc/network
state: absent
- name: "Reboot with systemd-networkd configured"
ansible.builtin.reboot:
reboot_timeout: 180
- name: "Remove ifupdown"
ansible.builtin.apt:
name: ifupdown
state: absent
purge: true

View file

@ -0,0 +1,7 @@
[Match]
MACAddress={{ hostvars[inventory_hostname]['mac'] }}
[Network]
Address={{ hostvars[inventory_hostname]['ansible_host'] }}/{{ (hostvars[inventory_hostname]['ansible_host'] + '/' + netmask) | ansible.utils.ipaddr('prefix') }}
Gateway={{ gateway }}
DNS={{ nameserver }}

View file

@ -5,4 +5,4 @@
- name: Wait for machines to come online with installed OS
wait_for_connection:
timeout: 600
timeout: 900