arrfab / centos / kickstarts

Forked from centos/kickstarts 5 years ago
Clone

Blame CentOS-7-GenericCloud.ks

92fd60
# System authorization information
92fd60
auth --enableshadow --passalgo=sha512
92fd60
# Reboot after installation
92fd60
reboot
92fd60
# Use network installation
92fd60
url --url="http://mirrorsnap.centos.org/DATESTAMP/centos/7/os/ARCH/"
92fd60
# Firewall configuration
92fd60
firewall --enabled --service=ssh
92fd60
firstboot --disable
92fd60
ignoredisk --only-use=vda
92fd60
# Keyboard layouts
92fd60
# old format: keyboard us
92fd60
# new format:
92fd60
keyboard --vckeymap=us --xlayouts='us'
92fd60
# System language
92fd60
lang en_US.UTF-8
92fd60
repo --name "os" --baseurl="http://mirrorsnap.centos.org/DATESTAMP/centos/7/os/ARCH/" --cost=100
92fd60
repo --name "updates" --baseurl="http://mirrorsnap.centos.org/DATESTAMP/centos/7/updates/ARCH/" --cost=100
92fd60
repo --name "extras" --baseurl="http://mirrorsnap.centos.org/DATESTAMP/centos/7/extras/ARCH/" --cost=100
92fd60
# Network information
92fd60
network  --bootproto=dhcp
92fd60
network  --hostname=localhost.localdomain
92fd60
# Root password
92fd60
rootpw --iscrypted nothing
92fd60
selinux --enforcing
92fd60
services --disabled="kdump" --enabled="network,sshd,rsyslog,chronyd"
92fd60
timezone UTC --isUtc
92fd60
# Disk
92fd60
bootloader --append="console=tty0" --location=mbr --timeout=1 --boot-drive=vda
92fd60
zerombr
92fd60
reqpart
92fd60
clearpart --all --initlabel 
92fd60
#part /boot/efi --fstype="vfat" --ondisk=vda --size=200
92fd60
part / --fstype="xfs" --ondisk=vda --size=4096 --grow
92fd60
92fd60
%post --erroronfail
92fd60
92fd60
# workaround anaconda requirements
92fd60
passwd -d root
92fd60
passwd -l root
92fd60
92fd60
# Create grub.conf for EC2. This used to be done by appliance creator but
92fd60
# anaconda doesn't do it. And, in case appliance-creator is used, we're
92fd60
# overriding it here so that both cases get the exact same file.
92fd60
# Note that the console line is different -- that's because EC2 provides
92fd60
# different virtual hardware, and this is a convenient way to act differently
92fd60
echo -n "Creating grub.conf for pvgrub"
92fd60
rootuuid=$( awk '$2=="/" { print $1 };'  /etc/fstab )
92fd60
mkdir /boot/grub
92fd60
echo -e 'default=0\ntimeout=0\n\n' > /boot/grub/grub.conf
92fd60
for kv in $( ls -1v /boot/vmlinuz* |grep -v rescue |sed s/.*vmlinuz-//  ); do
92fd60
  echo "title CentOS Linux 7 ($kv)" >> /boot/grub/grub.conf
92fd60
  echo -e "\troot (hd0)" >> /boot/grub/grub.conf
92fd60
  echo -e "\tkernel /boot/vmlinuz-$kv ro root=$rootuuid console=hvc0 LANG=en_US.UTF-8" >> /boot/grub/grub.conf
92fd60
  echo -e "\tinitrd /boot/initramfs-$kv.img" >> /boot/grub/grub.conf
92fd60
  echo
92fd60
done
92fd60
92fd60
#link grub.conf to menu.lst for ec2 to work
92fd60
echo -n "Linking menu.lst to old-style grub.conf for pv-grub"
92fd60
ln -sf grub.conf /boot/grub/menu.lst
92fd60
ln -sf /boot/grub/grub.conf /etc/grub.conf
92fd60
92fd60
# setup systemd to boot to the right runlevel
92fd60
echo -n "Setting default runlevel to multiuser text mode"
92fd60
rm -f /etc/systemd/system/default.target
92fd60
ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
92fd60
echo .
92fd60
92fd60
# this is installed by default but we don't need it in virt
92fd60
echo "Removing linux-firmware package."
92fd60
yum -C -y remove linux-firmware
92fd60
92fd60
# Remove firewalld; it is required to be present for install/image building.
92fd60
echo "Removing firewalld."
92fd60
yum -C -y remove firewalld --setopt="clean_requirements_on_remove=1"
92fd60
92fd60
# remove avahi and networkmanager
92fd60
echo "Removing avahi/zeroconf and NetworkManager"
92fd60
yum -C -y remove avahi\* Network\*
92fd60
92fd60
echo -n "Getty fixes"
92fd60
# although we want console output going to the serial console, we don't
92fd60
# actually have the opportunity to login there. FIX.
92fd60
# we don't really need to auto-spawn _any_ gettys.
92fd60
sed -i '/^#NAutoVTs=.*/ a\
92fd60
NAutoVTs=0' /etc/systemd/logind.conf
92fd60
92fd60
echo -n "Network fixes"
92fd60
# initscripts don't like this file to be missing.
92fd60
cat > /etc/sysconfig/network << EOF
92fd60
NETWORKING=yes
92fd60
NOZEROCONF=yes
92fd60
EOF
92fd60
92fd60
# For cloud images, 'eth0' _is_ the predictable device name, since
92fd60
# we don't want to be tied to specific virtual (!) hardware
92fd60
rm -f /etc/udev/rules.d/70*
92fd60
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules
92fd60
92fd60
# simple eth0 config, again not hard-coded to the build hardware
92fd60
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
92fd60
DEVICE="eth0"
92fd60
BOOTPROTO="dhcp"
92fd60
ONBOOT="yes"
92fd60
TYPE="Ethernet"
92fd60
USERCTL="yes"
92fd60
PEERDNS="yes"
92fd60
IPV6INIT="no"
92fd60
PERSISTENT_DHCLIENT="1"
92fd60
EOF
92fd60
92fd60
# set virtual-guest as default profile for tuned
92fd60
echo "virtual-guest" > /etc/tuned/active_profile
92fd60
92fd60
# generic localhost names
92fd60
cat > /etc/hosts << EOF
92fd60
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
92fd60
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
92fd60
92fd60
EOF
92fd60
echo .
92fd60
92fd60
# Because memory is scarce resource in most cloud/virt environments,
92fd60
# and because this impedes forensics, we are differing from the Fedora
92fd60
# default of having /tmp on tmpfs.
92fd60
echo "Disabling tmpfs for /tmp."
92fd60
systemctl mask tmp.mount
92fd60
92fd60
cat <<EOL > /etc/sysconfig/kernel
92fd60
# UPDATEDEFAULT specifies if new-kernel-pkg should make
92fd60
# new kernels the default
92fd60
UPDATEDEFAULT=yes
92fd60
92fd60
# DEFAULTKERNEL specifies the default kernel package type
92fd60
DEFAULTKERNEL=kernel
92fd60
EOL
92fd60
92fd60
# make sure firstboot doesn't start
92fd60
echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot
92fd60
92fd60
# workaround https://bugzilla.redhat.com/show_bug.cgi?id=966888
92fd60
#if ! grep -q growpart /etc/cloud/cloud.cfg; then
92fd60
#  sed -i 's/ - resizefs/ - growpart\n - resizefs/' /etc/cloud/cloud.cfg
92fd60
#fi
92fd60
92fd60
92fd60
#echo -e 'cloud-user\tALL=(ALL)\tNOPASSWD: ALL' >> /etc/sudoers
92fd60
92fd60
echo "Cleaning old yum repodata."
92fd60
yum clean all
92fd60
92fd60
echo "set instance type markers"
92fd60
echo 'genclo' > /etc/yum/vars/infra
92fd60
92fd60
# chance dhcp client retry/timeouts to resolve #6866
92fd60
cat  >> /etc/dhcp/dhclient.conf << EOF
92fd60
92fd60
timeout 300;
92fd60
retry 60;
92fd60
EOF
92fd60
92fd60
# clean up installation logs"
92fd60
rm -rf /var/log/yum.log
92fd60
rm -rf /var/lib/yum/*
92fd60
rm -rf /root/install.log
92fd60
rm -rf /root/install.log.syslog
92fd60
rm -rf /root/anaconda-ks.cfg
92fd60
rm -rf /var/log/anaconda*
92fd60
rm -rf /root/anac*
92fd60
92fd60
echo "Fixing SELinux contexts."
92fd60
touch /var/log/cron
92fd60
touch /var/log/boot.log
92fd60
mkdir -p /var/cache/yum
92fd60
/usr/sbin/fixfiles -R -a restore
92fd60
92fd60
# reorder console entries
92fd60
sed -i 's/console=tty0/console=tty0 console=ttyS0,115200n8/' /boot/grub2/grub.cfg
92fd60
92fd60
#echo "Zeroing out empty space."
92fd60
# This forces the filesystem to reclaim space from deleted files
92fd60
dd bs=1M if=/dev/zero of=/var/tmp/zeros || :
92fd60
rm -f /var/tmp/zeros
92fd60
echo "(Don't worry -- that out-of-space error was expected.)"
92fd60
92fd60
%end
92fd60
92fd60
%packages
92fd60
@core
92fd60
chrony
92fd60
cloud-init
92fd60
cloud-utils-growpart
92fd60
dracut-config-generic
92fd60
dracut-norescue
92fd60
firewalld
92fd60
grub2
92fd60
kernel
92fd60
nfs-utils
92fd60
rsync
92fd60
tar
92fd60
yum-utils
92fd60
-NetworkManager
92fd60
-aic94xx-firmware
92fd60
-alsa-firmware
92fd60
-alsa-lib
92fd60
-alsa-tools-firmware
92fd60
-biosdevname
92fd60
-iprutils
92fd60
-ivtv-firmware
92fd60
-iwl100-firmware
92fd60
-iwl1000-firmware
92fd60
-iwl105-firmware
92fd60
-iwl135-firmware
92fd60
-iwl2000-firmware
92fd60
-iwl2030-firmware
92fd60
-iwl3160-firmware
92fd60
-iwl3945-firmware
92fd60
-iwl4965-firmware
92fd60
-iwl5000-firmware
92fd60
-iwl5150-firmware
92fd60
-iwl6000-firmware
92fd60
-iwl6000g2a-firmware
92fd60
-iwl6000g2b-firmware
92fd60
-iwl6050-firmware
92fd60
-iwl7260-firmware
92fd60
-libertas-sd8686-firmware
92fd60
-libertas-sd8787-firmware
92fd60
-libertas-usb8388-firmware
92fd60
-plymouth
92fd60
92fd60
%end
92fd60