first commit
This commit is contained in:
8
README.md
Normal file
8
README.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#
|
||||||
|
|
||||||
|
```
|
||||||
|
cd /var/www/html
|
||||||
|
curl -O https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.0/rhcos-4.3.0-x86_64-metal.raw.gz
|
||||||
|
curl -O https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.0/rhcos-4.3.0-x86_64-installer-kernel
|
||||||
|
curl -O https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.0/rhcos-4.3.0-x86_64-installer-initramfs.img
|
||||||
|
```
|
||||||
9
defaults/main.yml
Normal file
9
defaults/main.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
os4_pxe_install_server_address: ""
|
||||||
|
os4_pxe_install_server_gateway: ""
|
||||||
|
os4_pxe_install_server_netmask: ""
|
||||||
|
os4_pxe_install_server_domain_name: ""
|
||||||
|
os4_pxe_install_server_nameserver: ""
|
||||||
|
os4_pxe_install_server_clients: []
|
||||||
|
os4_pxe_install_server_firewalld_configure: yes
|
||||||
|
os4_pxe_install_server_firewalld_zone: public
|
||||||
|
os4_pxe_install_server_httpd_port: 80
|
||||||
4
handlers/main.yml
Normal file
4
handlers/main.yml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
- name: Restart dhcpd
|
||||||
|
service:
|
||||||
|
name: dhcpd
|
||||||
|
state: restarted
|
||||||
17
tasks/firewalld.yml
Normal file
17
tasks/firewalld.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
- name: Ensure firewalld is enabled
|
||||||
|
service:
|
||||||
|
name: firewalld
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
|
||||||
|
- name: Open firewalld ports
|
||||||
|
firewalld:
|
||||||
|
port: "{{ item }}"
|
||||||
|
state: enabled
|
||||||
|
zone: "{{ os4_pxe_install_server_firewalld_zone }}"
|
||||||
|
immediate: yes
|
||||||
|
permanent: yes
|
||||||
|
loop:
|
||||||
|
- "{{ os4_pxe_install_server_httpd_port }}/tcp"
|
||||||
|
- "69/tcp"
|
||||||
|
- "69/udp"
|
||||||
54
tasks/main.yml
Normal file
54
tasks/main.yml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
- name: Install packages
|
||||||
|
yum:
|
||||||
|
name: ["dhcp-server", "syslinux", "tftp", "tftp-server", "xinetd", "httpd"]
|
||||||
|
|
||||||
|
- name: dhcpd configuration
|
||||||
|
template:
|
||||||
|
src: dhcpd.conf.j2
|
||||||
|
dest: /etc/dhcp/dhcpd.conf
|
||||||
|
notify: Restart dhcpd
|
||||||
|
|
||||||
|
- name: tftp configuration
|
||||||
|
template:
|
||||||
|
src: tftp.j2
|
||||||
|
dest: /etc/xinetd.d/tftp
|
||||||
|
|
||||||
|
- name: tftpboot directory
|
||||||
|
file:
|
||||||
|
name: /var/lib/tftpboot/pxelinux.cfg
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: syslinux files
|
||||||
|
file:
|
||||||
|
state: hard
|
||||||
|
src: "/usr/share/syslinux/{{ item }}"
|
||||||
|
dest: "/var/lib/tftpboot/{{ item }}"
|
||||||
|
loop: ["pxelinux.0", "ldlinux.c32"]
|
||||||
|
|
||||||
|
- name: tftpboot configuration
|
||||||
|
template:
|
||||||
|
src: pxelinux.cfg-default.j2
|
||||||
|
dest: "/var/lib/tftpboot/pxelinux.cfg/{{ item.ip | ip4_hex | upper}}"
|
||||||
|
loop: "{{ os4_pxe_install_server_clients }}"
|
||||||
|
|
||||||
|
- name: dhcpd service
|
||||||
|
service:
|
||||||
|
name: dhcpd
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
|
||||||
|
- name: httpd service
|
||||||
|
service:
|
||||||
|
name: httpd
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
|
||||||
|
- name: xinetd service
|
||||||
|
service:
|
||||||
|
name: xinetd
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
|
||||||
|
- name: Configure firewalld
|
||||||
|
import_tasks: firewalld.yml
|
||||||
|
when: os4_pxe_install_server_firewalld_configure
|
||||||
20
templates/dhcpd.conf.j2
Normal file
20
templates/dhcpd.conf.j2
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
subnet {{ os4_pxe_install_server_address | ipaddr('network') }} netmask {{ os4_pxe_install_server_address | ipaddr('netmask') }} {
|
||||||
|
option domain-name-servers {{ os4_pxe_install_server_nameserver }};
|
||||||
|
option domain-name "ocp01.lab.vargen.io";
|
||||||
|
option routers {{ os4_pxe_install_server_gateway }};
|
||||||
|
option broadcast-address {{ os4_pxe_install_server_address | ipaddr('broadcast') }};
|
||||||
|
|
||||||
|
next-server {{ os4_pxe_install_server_address | ipaddr('address') }};
|
||||||
|
filename "pxelinux.0";
|
||||||
|
|
||||||
|
{% for host in os4_pxe_install_server_clients -%}
|
||||||
|
|
||||||
|
host {{ host.hostname }} {
|
||||||
|
hardware ethernet {{ host.mac | upper }};
|
||||||
|
option host-name "{{ host.hostname }}";
|
||||||
|
fixed-address {{ host.ip }};
|
||||||
|
}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
}
|
||||||
6
templates/pxelinux.cfg-default.j2
Normal file
6
templates/pxelinux.cfg-default.j2
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
DEFAULT pxeboot
|
||||||
|
TIMEOUT 20
|
||||||
|
PROMPT 0
|
||||||
|
LABEL pxeboot
|
||||||
|
KERNEL http://{{ os4_pxe_install_server_address | ipaddr('address') }}:{{ os4_pxe_install_server_httpd_port }}/rhcos-4.3.0-x86_64-installer-kernel
|
||||||
|
APPEND ip=dhcp rd.neednet=1 initrd=http://{{ os4_pxe_install_server_address | ipaddr('address') }}:{{ os4_pxe_install_server_httpd_port }}/rhcos-4.3.0-x86_64-installer-initramfs.img console=tty0 console=ttyS0 coreos.inst=yes coreos.inst.install_dev=vda coreos.inst.image_url=http://{{ os4_pxe_install_server_address | ipaddr('address') }}:{{ os4_pxe_install_server_httpd_port }}/rhcos-4.3.0-x86_64-metal.raw.gz coreos.inst.ignition_url=http://{{ os4_pxe_install_server_address | ipaddr('address') }}:{{ os4_pxe_install_server_httpd_port }}/{{ item.ignition }}
|
||||||
13
templates/tftp.j2
Normal file
13
templates/tftp.j2
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
service tftp
|
||||||
|
{
|
||||||
|
socket_type = dgram
|
||||||
|
protocol = udp
|
||||||
|
wait = yes
|
||||||
|
user = root
|
||||||
|
server = /usr/sbin/in.tftpd
|
||||||
|
server_args = -s /var/lib/tftpboot
|
||||||
|
disable = no
|
||||||
|
per_source = 11
|
||||||
|
cps = 100 2
|
||||||
|
flags = IPv4
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user