Created
September 15, 2022 21:32
-
-
Save goldenprifti/732af304c4192000531c7823c0c1ee3d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#version=OL8 | |
# Reboot after installation | |
reboot | |
# Use graphical install | |
text | |
repo --name="BaseOS" --baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/ | |
repo --name="AppStream" --baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/ | |
%packages | |
@^server-product-environment | |
cloud-init | |
jq | |
%end | |
# Keyboard layouts | |
keyboard --xlayouts='us' | |
# System language | |
lang en_US.UTF-8 | |
%pre | |
FIRST_INTERFACE=$(ip link | grep BROADCAST | grep "state UP" | awk 'NR==1' | awk '{print$2}' | tr -d "\:") | |
SECOND_INTERFACE=$(ip link | grep BROADCAST | grep "state UP" | awk 'NR==2' | awk '{print$2}' | tr -d "\:") | |
%end | |
# Network information | |
network --bootproto=dhcp --device=$FIRST_INTERFACE --ipv6=auto --activate | |
network --bootproto=dhcp --device=$SECOND_INTERFACE --ipv6=auto | |
network --hostname=pxehost | |
# Use network installation | |
url --url="https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/" | |
# Run the Setup Agent on first boot | |
firstboot --enable | |
%pre | |
lsblk --bytes | grep -v nvme | grep disk | awk '{print$4,$1}' | sort -n | head -2 | awk '{print$2}' | tr '\n' ',' | awk '{print"ignoredisk --only-use="$1}'| sed 's/,$/\n/' > /tmp/part-include | |
%end | |
# === include partitioning scheme generated in pre === | |
%include /tmp/part-include | |
# ==================================================== | |
#SMALLEST_DISKS=$(lsblk | grep -v nvme | grep disk | awk '{print$4,$1}' | sort | head -2 | awk '{print$2}' | tr '\n' ',' | sed 's/,$/\n/') | |
#ignoredisk --only-use=$SMALLEST_DISKS | |
# System bootloader configuration | |
bootloader --append=" console=ttyS1,115200n8 crashkernel=auto" --location=mbr --boot-drive=sda | |
# Partition clearing information | |
clearpart --none --initlabel | |
# Disk partitioning information | |
part raid.971 --fstype="mdmember" --ondisk=sda --size=4100 | |
part raid.564 --fstype="mdmember" --ondisk=sdb --size=2050 | |
part raid.978 --fstype="mdmember" --ondisk=sdb --size=4100 | |
part raid.571 --fstype="mdmember" --ondisk=sda --size=2050 | |
part raid.1283 --fstype="mdmember" --ondisk=sda --size=106560 --grow | |
part raid.1290 --fstype="mdmember" --ondisk=sdb --size=106560 --grow | |
raid swap --device=swap --fstype="swap" --level=RAID1 raid.971 raid.978 | |
raid /boot --device=boot --fstype="ext3" --level=RAID1 --label=boot raid.564 raid.571 | |
raid / --device=root --fstype="xfs" --level=RAID1 raid.1283 raid.1290 | |
# | |
# System timezone | |
timezone America/New_York --isUtc | |
# Root password | |
rootpw --iscrypted $6$UBwS1zYddqk2huZ1$2p3vhD0R0/IcZShZTuxWmeiQ1ZnF56UGB.wuNJeyAKzRreHqUaZAOYXCMUA5BosZ2nkogllPIP08udJu.d9q0. | |
%addon com_redhat_kdump --enable --reserve-mb='auto' | |
%end | |
%anaconda | |
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty | |
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok | |
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty | |
%end | |
%post | |
curl -s https://metadata.platformequinix.com/metadata -o /tmp/metadata | |
curl -s http://86.109.7.103/pxeboot/OL8/metal_cloud_init.cfg -o /etc/cloud/cloud.cfg | |
echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg | |
echo "alias bond0 bonding" > /etc/modprobe.d/bonding.conf | |
echo "options bond0 mode=4 miimon=100 downdelay=200 updelay=200 xmit_hash_policy=layer3+4 lacp_rate=1" >> /etc/modprobe.d/bonding.conf | |
FIRST_INTERFACE=$(ip link | grep BROADCAST | grep "state UP" | awk 'NR==1' | awk '{print$2}' | tr -d "\:") | |
SECOND_INTERFACE=$(ip link | grep BROADCAST | grep "state UP" | awk 'NR==2' | awk '{print$2}' | tr -d "\:") | |
echo "MASTER=bond0" > /etc/sysconfig/network-scripts/ifcfg-$FIRST_INTERFACE | |
echo "DEVICE="$FIRST_INTERFACE >> /etc/sysconfig/network-scripts/ifcfg-$FIRST_INTERFACE | |
echo "SLAVE=yes" >> /etc/sysconfig/network-scripts/ifcfg-$FIRST_INTERFACE | |
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-$FIRST_INTERFACE | |
echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-$FIRST_INTERFACE | |
echo "MASTER=bond0" > /etc/sysconfig/network-scripts/ifcfg-$SECOND_INTERFACE | |
echo "DEVICE="$SECOND_INTERFACE >> /etc/sysconfig/network-scripts/ifcfg-$SECOND_INTERFACE | |
echo "SLAVE=yes" >> /etc/sysconfig/network-scripts/ifcfg-$SECOND_INTERFACE | |
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-$SECOND_INTERFACE | |
echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-$SECOND_INTERFACE | |
cat > /etc/sysconfig/network-scripts/ifcfg-bond0 << EOL | |
Generated by post section of kickstart | |
TYPE=Bond | |
NAME=bond0 | |
DEVICE=bond0 | |
BOOTPROTO=none | |
ONBOOT=yes | |
USERCTL=no | |
BONDING_OPTS="mode=4 miimon=100 downdelay=200 updelay=200" | |
DNS1=147.75.207.207 | |
DNS2=147.75.207.208 | |
EOL | |
cp /etc/sysconfig/network-scripts/ifcfg-bond0 /etc/sysconfig/network-scripts/ifcfg-bond0:0 | |
sed -i -e '/^NAME=bond0/s/^.*$/NAME=bond0:0/' /etc/sysconfig/network-scripts/ifcfg-bond0:0 | |
sed -i -e '/^DEVICE=bond0/s/^.*$/DEVICE=bond0:0/' /etc/sysconfig/network-scripts/ifcfg-bond0:0 | |
jq -r '.network.addresses[] | select((.public==true) and .address_family==4) | "IPADDR="+.address' /tmp/metadata >> /etc/sysconfig/network-scripts/ifcfg-bond0 | |
jq -r '.network.addresses[] | select((.public==true) and .address_family==4) | "NETMASK="+.netmask' /tmp/metadata >> /etc/sysconfig/network-scripts/ifcfg-bond0 | |
jq -r '.network.addresses[] | select((.public==true) and .address_family==4) | "GATEWAY="+.gateway' /tmp/metadata >> /etc/sysconfig/network-scripts/ifcfg-bond0 | |
jq -r '.network.addresses[] | select((.public==false) and .address_family==4) | "IPADDR="+.address' /tmp/metadata >> /etc/sysconfig/network-scripts/ifcfg-bond0:0 | |
jq -r '.network.addresses[] | select((.public==false) and .address_family==4) | "NETMASK="+.netmask' /tmp/metadata >> /etc/sysconfig/network-scripts/ifcfg-bond0:0 | |
jq -r '.network.addresses[] | select((.public==false) and .address_family==4) | "GATEWAY="+.gateway' /tmp/metadata >> /etc/sysconfig/network-scripts/ifcfg-bond0:0 | |
jq -r '.network.addresses[] | select((.public==false) and .address_family==4) | "10.0.0.0/8 via "+.gateway+" dev bond0:0"' /tmp/metadata > /etc/sysconfig/network-scripts/route-bond0 | |
hostnamectl set-hostname $(jq -r '.hostname' /tmp/metadata) | |
%end | |
%post --nochroot | |
hostnamectl set-hostname $(jq -r '.hostname' /tmp/metadata) | |
hostnamectl --pretty set-hostname $(jq -r '.hostname' /tmp/metadata) | |
cp /etc/hostname /mnt/sysimage/etc/hostname | |
cp /etc/machine-info /mnt/sysimage/etc/machine-info | |
%end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment