Compare commits
7 commits
1229621854
...
5046eae5f5
| Author | SHA1 | Date | |
|---|---|---|---|
| 5046eae5f5 | |||
| afde58b884 | |||
| db7fa4b8f7 | |||
| e0314da734 | |||
| ff049868e2 | |||
| f632971d1c | |||
| ab7e5d9a47 |
1 changed files with 0 additions and 127 deletions
|
|
@ -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') }}"]
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue