Compare commits

..

7 commits

View file

@ -1,127 +0,0 @@
- name: "LOCALHOST: adding new config to default profile of {{ incus.project.name | default('pxe') }} project"
hebergemoi.incus.incus_profile:
merge_profile: true
name: "{{ incus.profile.name | default('pxe') }}"
project: "{{ incus.project.name | default('pxe') }}"
state: present
config:
boot.autostart: "false"
security.secureboot: "false"
devices:
root:
path: /
size: 10GiB
type: disk
pool: default
eth0:
type: nic
network: "{{ incus.bridge.name | default('pxebr1') }}"
name: eth0
- name: "LOCALHOST: create {{ incus.instance.server.name | default('pxeServer') }} container"
hebergemoi.incus.incus_container:
name: "{{ incus.instance.server.name | default('pxeServer') }}"
project: "{{ incus.project.name | default('pxe') }}"
state: started
ephemeral: "true"
wait_for_ipv4_addresses: "true"
devices:
eth0:
type: nic
network: "{{ incus.bridge.name | default('pxebr1') }}"
ipv4.address: "{{ incus.instance.server.addr_v4 | default('10.35.182.2') }}"
source:
type: image
alias: debian/bookworm
protocol: simplestreams
profiles: ["{{ incus.profile.name | default('pxe') }}"]
- name: "LOCALHOST: refresh ansible_facts"
setup:
- name: "LOCALHOST: refresh inventory"
meta: refresh_inventory
- hosts: "{{ hostvars.localhost.incus.instance.server.name | default('pxeServer') }}"
tasks:
- name: "{{ hostvars.localhost.incus.instance.server.name | default('pxeServer') }}: include config vars"
ansible.builtin.include_vars:
dir: ../config
extensions:
- "yml"
- "yaml"
ignore_unknown_extensions: true
- name: "{{ incus.instance.server.name | default('pxeServer') }}: install packages"
ansible.builtin.package:
name:
- make
- gcc
- binutils
- git
- perl
- liblzma-dev
- mtools
- mkisofs
- syslinux
- isolinux
- nginx
- dnsmasq
state: present
- name: "{{ incus.instance.server.name | default('pxeServer') }}: clone ipxe repository"
ansible.builtin.git:
repo: https://github.com/ipxe/ipxe.git
dest: /opt/ipxe
- name: "{{ incus.instance.server.name | default('pxeServer') }}: make ipxe binary"
community.general.make:
chdir: /opt/ipxe/src
target: bin-x86_64-efi/ipxe.efi
jobs: 4
- name: "{{ incus.instance.server.name | default('pxeServer') }}: create {{ incus.instance.server.services.dnsmasq.tftp_root }} directory"
ansible.builtin.file:
path: "{{ incus.instance.server.services.dnsmasq.tftp_root | default('/srv/tftp') }}"
state: directory
- name: "{{ incus.instance.server.name | default('pxeServer') }}: copy ipxe binary into tftp directory service"
ansible.builtin.copy:
remote_src: true
src: /opt/ipxe/src/bin-x86_64-efi/ipxe.efi
dest: "{{ incus.instance.server.services.dnsmasq.tftp_root | default('/srv/tftp') }}/ipxe.efi"
owner: dnsmasq
- name: "{{ incus.instance.server.name | default('pxeServer') }}: configure dnsmasq tftp service"
ansible.builtin.template:
src: templates/dnsmasq/tftp.conf.j2
dest: /etc/dnsmasq.d/tftp.conf
- name: "{{ incus.instance.server.name | default('pxeServer') }}: configure dnsmasq dhcp service if enabled"
ansible.builtin.template:
src: templates/dnsmasq/dhcp.conf.j2
dest: /etc/dnsmasq.d/dhcp.conf
when: incus.instance.server.services.dnsmasq.dhcp
- name: "{{ incus.instance.server.name | default('pxeServer') }}: remove dnsmasq dhcp service file if disabled"
ansible.builtin.file:
state: absent
path: /etc/dnsmasq.d/dhcp.conf
when: not incus.instance.server.services.dnsmasq.dhcp
- name: "{{ incus.instance.server.name | default('pxeServer') }}: activate dnsmasq systemd service"
ansible.builtin.systemd:
name: dnsmasq
state: started
- hosts: localhost
tasks:
- name: "LOCALHOST: create empty virtual machine {{ incus.instance.client.name | default('vmTest') }} for pxebooting"
hebergemoi.incus.incus_container:
type: virtual-machine
name: "{{ incus.instance.client.name | default('vmTest') }}"
project: "{{ incus.project.name | default('pxe') }}"
ephemeral: "true"
state: started
source:
type: none
profiles: ["{{ incus.profile.name | default('pxe') }}"]