mirror of
https://github.com/khuedoan/homelab.git
synced 2025-01-05 21:11:52 +07:00
Restructure pxe server role files and templates
This commit is contained in:
parent
f42eb4c54d
commit
32b86b6c68
21
metal/roles/pxe-server/files/docker-compose.yml
Normal file
21
metal/roles/pxe-server/files/docker-compose.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
dhcp:
|
||||||
|
build: ./dhcp
|
||||||
|
volumes:
|
||||||
|
- ./dhcp/dhcpd.conf:/etc/dhcp/dhcpd.conf
|
||||||
|
network_mode: host
|
||||||
|
tftp:
|
||||||
|
build: ./tftp
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- ./tftp/grub.cfg:/var/lib/tftpboot/grub.cfg
|
||||||
|
http:
|
||||||
|
build: ./http
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- ./data/iso:/usr/share/nginx/html/iso
|
||||||
|
- ./data/init-config/:/usr/share/nginx/html/init-config
|
||||||
|
environment:
|
||||||
|
NGINX_PORT: 80
|
@ -1,25 +0,0 @@
|
|||||||
version: "3"
|
|
||||||
|
|
||||||
services:
|
|
||||||
dhcp:
|
|
||||||
build: ./dhcp
|
|
||||||
volumes:
|
|
||||||
- ./dhcp/dhcpd.conf:/etc/dhcp/dhcpd.conf
|
|
||||||
network_mode: host
|
|
||||||
tftp:
|
|
||||||
build: ./tftp
|
|
||||||
network_mode: host
|
|
||||||
volumes:
|
|
||||||
- ./tftp/tftpboot/grub.cfg:/var/lib/tftpboot/grub.cfg
|
|
||||||
- ./mnt/EFI/fedora/grubx64.efi:/var/lib/tftpboot/grubx64.efi
|
|
||||||
- ./mnt/images/ignition.img:/var/lib/tftpboot/ignition.img
|
|
||||||
- ./mnt/images/pxeboot/initrd.img:/var/lib/tftpboot/initrd.img
|
|
||||||
- ./mnt/images/pxeboot/vmlinuz:/var/lib/tftpboot/vmlinuz
|
|
||||||
http:
|
|
||||||
build: ./http
|
|
||||||
network_mode: host
|
|
||||||
volumes:
|
|
||||||
- ./mnt:/usr/share/nginx/html/CoreOS
|
|
||||||
- ./http/ignition/:/usr/share/nginx/html/ignition
|
|
||||||
environment:
|
|
||||||
NGINX_PORT: 80
|
|
@ -1,6 +1,6 @@
|
|||||||
set timeout=1
|
set timeout=1
|
||||||
|
|
||||||
menuentry '{{ os_name }} (Live)' {
|
menuentry '{{ iso_url | basename | splitext | first }} (PXE)' {
|
||||||
linux vmlinuz \
|
linux vmlinuz \
|
||||||
ip=dhcp \
|
ip=dhcp \
|
||||||
ignition.platform.id=metal \
|
ignition.platform.id=metal \
|
@ -1,79 +0,0 @@
|
|||||||
variant: fcos
|
|
||||||
version: 1.3.0
|
|
||||||
|
|
||||||
passwd:
|
|
||||||
users:
|
|
||||||
- name: root
|
|
||||||
ssh_authorized_keys:
|
|
||||||
- {{ ssh_public_key }}
|
|
||||||
|
|
||||||
storage:
|
|
||||||
files:
|
|
||||||
# Set hostname
|
|
||||||
- path: /etc/hostname
|
|
||||||
mode: 0644
|
|
||||||
contents:
|
|
||||||
inline: {{ hostvars[item]['inventory_hostname'] }}
|
|
||||||
# Set static IP
|
|
||||||
- path: /etc/NetworkManager/system-connections/{{ network_interface }}.nmconnection
|
|
||||||
mode: 0600
|
|
||||||
contents:
|
|
||||||
inline: |
|
|
||||||
[connection]
|
|
||||||
id={{ network_interface }}
|
|
||||||
type=ethernet
|
|
||||||
interface-name={{ network_interface }}
|
|
||||||
permissions=
|
|
||||||
[ipv4]
|
|
||||||
address1={{ (hostvars[item]['ansible_host'] + '/' + ansible_default_ipv4.netmask) | ansible.netcommon.ipaddr('host/prefix') }},{{ ansible_default_ipv4.gateway }}
|
|
||||||
dns={{ dns_server }};
|
|
||||||
dns-search=
|
|
||||||
method=manual
|
|
||||||
# Make audit logs less verbose
|
|
||||||
- path: /etc/sysctl.d/20-silence-audit.conf
|
|
||||||
contents:
|
|
||||||
inline: |
|
|
||||||
kernel.printk=4
|
|
||||||
# Fix flannel support
|
|
||||||
- path: /etc/systemd/network/50-flannel.link
|
|
||||||
contents:
|
|
||||||
inline: |
|
|
||||||
[Match]
|
|
||||||
OriginalName=flannel*
|
|
||||||
[Link]
|
|
||||||
MACAddressPolicy=none
|
|
||||||
links:
|
|
||||||
# Set timezone
|
|
||||||
- path: /etc/localtime
|
|
||||||
target: /usr/share/zoneinfo/{{ timezone }}
|
|
||||||
|
|
||||||
systemd:
|
|
||||||
units:
|
|
||||||
# iSCSI for Longhorn distributed block storage
|
|
||||||
- name: iscsid.service
|
|
||||||
enabled: true
|
|
||||||
{% if item == "metal0" %}
|
|
||||||
# Terraform state backend
|
|
||||||
- name: tfstate.service
|
|
||||||
enabled: true
|
|
||||||
contents: |
|
|
||||||
[Unit]
|
|
||||||
Description=Run etcd for Terraform state backend
|
|
||||||
After=network-online.target
|
|
||||||
Wants=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStartPre=-/usr/bin/docker kill tfstate
|
|
||||||
ExecStartPre=-/usr/bin/docker rm tfstate
|
|
||||||
ExecStart=/usr/bin/docker run --name tfstate \
|
|
||||||
--volume tfstate:/bitnami/etcd/data \
|
|
||||||
--env ALLOW_NONE_AUTHENTICATION=yes \
|
|
||||||
--publish 23799:2379 \
|
|
||||||
--restart always \
|
|
||||||
bitnami/etcd
|
|
||||||
ExecStop=/usr/bin/docker stop tfstate
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
{% endif %}
|
|
Loading…
Reference in New Issue
Block a user