165 lines
4.5 KiB
YAML
165 lines
4.5 KiB
YAML
---
|
|
|
|
|
|
###############################################
|
|
# Install packages needed for PXE
|
|
###############################################
|
|
- name: APT - Install Packages
|
|
apt:
|
|
name:
|
|
- "{{ item }}"
|
|
state: present
|
|
loop: "{{ pxe_packages }}"
|
|
when: not refresh_only | bool
|
|
|
|
###############################################
|
|
# DHCP Server
|
|
###############################################
|
|
# Stop DHCP server
|
|
- name: DHCP - Stop DHCP
|
|
service:
|
|
name: isc-dhcp-server
|
|
state: stopped
|
|
enabled: yes
|
|
|
|
# Copy DHCP config file 1
|
|
- name: DHCP - Copy dhcpd.conf
|
|
template:
|
|
src: dhcpd.conf.j2
|
|
dest: /etc/dhcp/dhcpd.conf
|
|
mode: 0644
|
|
|
|
# Copy DHCP config file 2
|
|
- name: DHCP - Copy isc-dhcp-server
|
|
template:
|
|
src: isc-dhcp-server.j2
|
|
dest: /etc/default/isc-dhcp-server
|
|
mode: 0644
|
|
|
|
# Start DHCP server
|
|
- name: DHCP - Start DHCP
|
|
service:
|
|
name: isc-dhcp-server
|
|
state: started
|
|
enabled: yes
|
|
|
|
# Download vendor list for dhcp-lease-list
|
|
- name: DHCP - Download vendor list for dhcp-lease-list
|
|
get_url:
|
|
url: "http://standards-oui.ieee.org/oui.txt"
|
|
dest: /usr/local/etc/oui.txt
|
|
mode: '0644'
|
|
|
|
###############################################
|
|
# TFTP Server
|
|
###############################################
|
|
|
|
# Stop TFTP Server
|
|
- name: TFTP - Stop TFTP
|
|
service:
|
|
name: tftpd-hpa
|
|
state: stopped
|
|
enabled: yes
|
|
|
|
# Create TFTP server folder structure
|
|
- name: TFTP - Create tftp directory
|
|
file:
|
|
path: /srv/tftp
|
|
state: directory
|
|
mode: '0755'
|
|
owner: tftp
|
|
group: tftp
|
|
|
|
# Copy TFTP Config File
|
|
- name: TFTP - Copy tftpd-hpa
|
|
template:
|
|
src: tftpd-hpa.j2
|
|
dest: /etc/default/tftpd-hpa
|
|
mode: 0644
|
|
|
|
# Start TFTP Server
|
|
- name: TFTP - Start TFTP
|
|
service:
|
|
name: tftpd-hpa
|
|
state: started
|
|
enabled: yes
|
|
|
|
###############################################
|
|
# Copy necessary files
|
|
###############################################
|
|
|
|
# Create destination folder for all the next stuff
|
|
- name: Files - Create debian-installer directory
|
|
file:
|
|
path: /var/www/html/debian-installer/amd64
|
|
state: directory
|
|
mode: '0755'
|
|
owner: www-data
|
|
group: www-data
|
|
|
|
## Old comments:
|
|
## Extract trixie debian netboot files
|
|
## These are from the syslinux-common package
|
|
## Some of the files from the trixie netboot archive
|
|
## are needed for this voodoo to all work
|
|
## This is one of the two files called in the grub bootloader
|
|
## This is the other file called in the grub bootloader
|
|
## Changing from bookworm to trixie, bookworm curl command:
|
|
## curl -L https://deb.debian.org/debian/dists/bookworm/main/installer-amd64/current/images/netboot/netboot.tar.gz | \
|
|
- name: Files - copy static files
|
|
shell: |
|
|
curl -L https://deb.debian.org/debian/dists/trixie/main/installer-amd64/current/images/netboot/netboot.tar.gz | \
|
|
tar xz -C /var/www/html/debian-installer/amd64
|
|
cp /usr/lib/syslinux/modules/bios/* /srv/tftp/
|
|
cp -R /var/www/html/debian-installer/amd64/debian-installer /srv/tftp/
|
|
cp /var/www/html/debian-installer/amd64/debian-installer/amd64/linux /srv/tftp/debian-installer/amd64/linux
|
|
cp /var/www/html/debian-installer/amd64/debian-installer/amd64/initrd.gz /srv/tftp/debian-installer/amd64/initrd.gz
|
|
register: static_files_output
|
|
|
|
# Oh Hai grub bootloader, I was just talking about you
|
|
- name: Files - copy the grub
|
|
block:
|
|
- name: Files - Copy grub.cfg to tftp
|
|
when: not deploy_iso | bool
|
|
template:
|
|
src: grub.cfg.j2
|
|
dest: /srv/tftp/debian-installer/amd64/grub/grub.cfg
|
|
mode: 0644
|
|
|
|
- name: Files - Copy grub-iso.cfg to tftp
|
|
when: deploy_iso | bool
|
|
template:
|
|
src: grub-iso.cfg.j2
|
|
dest: /srv/tftp/debian-installer/amd64/grub/grub.cfg
|
|
mode: 0644
|
|
|
|
# This is the preseed file for unattended server installation
|
|
# It's served from HTTP now because bollocks to weird TFTP foolishness
|
|
- name: Files - Copy server preseed to http
|
|
template:
|
|
src: preseed-server-v2.cfg.j2
|
|
dest: /var/www/html/preseed-server.cfg
|
|
mode: 0644
|
|
|
|
# Build Fresh Init Archive
|
|
- name: Files - Cosmos Init
|
|
ansible.builtin.archive:
|
|
path: "/var/jenkins_home/ansible/roles/pxe_server/files/init"
|
|
dest: "/var/jenkins_home/ansible/roles/pxe_server/files/cosmos-init.tar"
|
|
format: "tar"
|
|
delegate_to: localhost
|
|
|
|
# update archive_fresh
|
|
- name: update archive_fresh
|
|
set_fact:
|
|
archive_fresh: true
|
|
|
|
# Copy Archive to Target
|
|
- name: Files - Copy cosmos-init.tar to target
|
|
copy:
|
|
src: /var/jenkins_home/ansible/roles/pxe_server/files/cosmos-init.tar
|
|
dest: /var/www/html/cosmos-init.tar
|
|
mode: 0644
|
|
...
|
|
|