{{tag>[hardware apu centos 6.5 kickstart]}}
=====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