Ben's notes

Linux, Unix, network, radio...

User Tools

Site Tools


centos_6.5_on_apu_-_kickstart_file

PC Engines APU - CentOS 6.5 KickStart

2014-05-22 - updated SSD config

  • I Used a 16GB mSATA SSD, all data on disk will be cleared!
  • Add your own password hash below at PUTYOURHASHHERE. Generate it with:
    grub-crypt --sha-512

PXE config /tftpboot/pxelinux.cfg/default

serial 0 115200
default centos-serial
prompt 0
timeout 0

label centos-serial
  kernel http://repo.mgmt.yourdomain.com/centos/6/base/images/pxeboot/vmlinuz
  append initrd=http://repo.mgmt.yourdomain.com/centos/6/base/images/pxeboot/initrd.img ks=http://pxe.mgmt.yourdomain.com/apu.ks ksdevice=eth0 console=ttyS0,115200n8

KickStart file

####
#### PC Engines APU KickStart installation
####
install
text

# Base repo
url --url=http://repo/centos/6/base/

# Updates repo
repo --name="updates" --baseurl=http://repo/centos/6/updates/

network --onboot yes --device eth0 --bootproto dhcp
lang en_US.UTF-8
keyboard us
rootpw  --iscrypted PUTYOURHASHHERE
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Europe/Amsterdam

# Set serial console.
bootloader --location=mbr --driveorder=sda --append="console=ttyS0,115200n8"

# Any disks whose formatting is unrecognized are initialized.
zerombr

# Erases all partitions from the system.
clearpart --all --drives=sda --initlabel

# Initialize boot partition.
part /boot --fstype=ext4 --fsoptions="defaults,noatime,commit=60" --size=512 --asprimary

# Create LVM pv and vg.
part pv.01 --size=1000 --grow --asprimary
volgroup vg pv.01

# Create lv's, set discard, noatime and commit time. Leave some space left in the VG for later use.
logvol swap  --vgname=vg --size=512  --name=lv_swap --fstype=swap
logvol /     --vgname=vg --size=4096 --name=lv_root --fstype=ext4 --fsoptions="defaults,noatime,commit=60"
logvol /var  --vgname=vg --size=4096 --name=lv_var  --fstype=ext4 --fsoptions="defaults,noatime,commit=60"
logvol /home --vgname=vg --size=512  --name=lv_home --fstype=ext4 --fsoptions="defaults,noatime,commit=60"

# Create non administrative user
user --name=benst --homedir=/home/benst --password= PUTYOURHASHHERE --iscrypted

# Reboot after installation.
reboot

# Install minimal, exclude @Base, exclude documentation
%packages --nobase --excludedocs
@Core           #default
bind-utils      #dig, host, nslookup
openssh-clients #ssh client, key agent, sftp, scp
nc              #nc (netcat)
mailx           #mailer
%end

%post
# No ZeroConf http://en.wikipedia.org/wiki/Zero-configuration_networking
echo "NOZEROCONF=yes" >> /etc/sysconfig/network

#Add weekly fstrim job
cat << EOF >  /etc/cron.weekly/fstrim
#!/bin/sh
#this script will run weekly, will overwrite log.

trimlog=/var/log/fstrim.log
echo > \$trimlog
for mount in \`lsblk -ro "rota,rm,fstype,mountpoint" | egrep "0 0 ext[2|3|4]" | cut -d " " -f4\`; do
  printf "\`date\` - \`fstrim -v \$mount\`\n" >>\$trimlog
done
EOF
chmod +x /etc/cron.weekly/fstrim

# Enable LVM to issue discards, regenerate initrd (which includes lvm.conf)
/bin/sed -i.bak 's/issue_discards = 0/issue_discards = 1/g' /etc/lvm/lvm.conf
/sbin/dracut -f

# Change scheduler to noop
cat << EOF >  /etc/udev/rules.d/99-schedulers.rules
# set noop scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", TEST!="queue/rotational", ATTR{queue/scheduler}="noop"
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
EOF

# Reduce swappiness.
mkdir -p /etc/sysctl.d
cat << EOF > /etc/sysctl.d/swappiness.conf
vm.swappiness=1
vm.vfs_cache_pressure=50
EOF

# Add /tmp as tmpfs.
echo "tmpfs /tmp tmpfs size=64m 0 0" >> /etc/fstab

exit 0
%end
centos_6.5_on_apu_-_kickstart_file.txt · Last modified: 2021/10/09 15:14 by 127.0.0.1