#14 Added c7 kickstart based on the one from github/cloudimg repo, and modified for ppc64le/aarch64 needs
Merged 7 months ago by bstinson. Opened 7 months ago by arrfab.
centos/ arrfab/kickstarts c7-kickstart  into  master

@@ -0,0 +1,233 @@ 

+ # System authorization information

+ auth --enableshadow --passalgo=sha512

+ # Reboot after installation

+ reboot

+ # Use network installation

+ url --url="http://mirrorsnap.centos.org/DATESTAMP/centos/7/os/ARCH/"

+ # Firewall configuration

+ firewall --enabled --service=ssh

+ firstboot --disable

+ ignoredisk --only-use=vda

+ # Keyboard layouts

+ # old format: keyboard us

+ # new format:

+ keyboard --vckeymap=us --xlayouts='us'

+ # System language

+ lang en_US.UTF-8

+ repo --name "os" --baseurl="http://mirrorsnap.centos.org/DATESTAMP/centos/7/os/ARCH/" --cost=100

+ repo --name "updates" --baseurl="http://mirrorsnap.centos.org/DATESTAMP/centos/7/updates/ARCH/" --cost=100

+ repo --name "extras" --baseurl="http://mirrorsnap.centos.org/DATESTAMP/centos/7/extras/ARCH/" --cost=100

+ # Network information

+ network  --bootproto=dhcp

+ network  --hostname=localhost.localdomain

+ # Root password

+ rootpw --iscrypted nothing

+ selinux --enforcing

+ services --disabled="kdump" --enabled="network,sshd,rsyslog,chronyd"

+ timezone UTC --isUtc

+ # Disk

+ bootloader --append="console=tty0" --location=mbr --timeout=1 --boot-drive=vda

+ zerombr

+ reqpart

+ clearpart --all --initlabel 

+ #part /boot/efi --fstype="vfat" --ondisk=vda --size=200

+ part / --fstype="xfs" --ondisk=vda --size=4096 --grow

+ 

+ %post --erroronfail

+ 

+ # workaround anaconda requirements

+ passwd -d root

+ passwd -l root

+ 

+ # Create grub.conf for EC2. This used to be done by appliance creator but

+ # anaconda doesn't do it. And, in case appliance-creator is used, we're

+ # overriding it here so that both cases get the exact same file.

+ # Note that the console line is different -- that's because EC2 provides

+ # different virtual hardware, and this is a convenient way to act differently

+ echo -n "Creating grub.conf for pvgrub"

+ rootuuid=$( awk '$2=="/" { print $1 };'  /etc/fstab )

+ mkdir /boot/grub

+ echo -e 'default=0\ntimeout=0\n\n' > /boot/grub/grub.conf

+ for kv in $( ls -1v /boot/vmlinuz* |grep -v rescue |sed s/.*vmlinuz-//  ); do

+   echo "title CentOS Linux 7 ($kv)" >> /boot/grub/grub.conf

+   echo -e "\troot (hd0)" >> /boot/grub/grub.conf

+   echo -e "\tkernel /boot/vmlinuz-$kv ro root=$rootuuid console=hvc0 LANG=en_US.UTF-8" >> /boot/grub/grub.conf

+   echo -e "\tinitrd /boot/initramfs-$kv.img" >> /boot/grub/grub.conf

+   echo

+ done

+ 

+ #link grub.conf to menu.lst for ec2 to work

+ echo -n "Linking menu.lst to old-style grub.conf for pv-grub"

+ ln -sf grub.conf /boot/grub/menu.lst

+ ln -sf /boot/grub/grub.conf /etc/grub.conf

+ 

+ # setup systemd to boot to the right runlevel

+ echo -n "Setting default runlevel to multiuser text mode"

+ rm -f /etc/systemd/system/default.target

+ ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

+ echo .

+ 

+ # this is installed by default but we don't need it in virt

+ echo "Removing linux-firmware package."

+ yum -C -y remove linux-firmware

+ 

+ # Remove firewalld; it is required to be present for install/image building.

+ echo "Removing firewalld."

+ yum -C -y remove firewalld --setopt="clean_requirements_on_remove=1"

+ 

+ # remove avahi and networkmanager

+ echo "Removing avahi/zeroconf and NetworkManager"

+ yum -C -y remove avahi\* Network\*

+ 

+ echo -n "Getty fixes"

+ # although we want console output going to the serial console, we don't

+ # actually have the opportunity to login there. FIX.

+ # we don't really need to auto-spawn _any_ gettys.

+ sed -i '/^#NAutoVTs=.*/ a\

+ NAutoVTs=0' /etc/systemd/logind.conf

+ 

+ echo -n "Network fixes"

+ # initscripts don't like this file to be missing.

+ cat > /etc/sysconfig/network << EOF

+ NETWORKING=yes

+ NOZEROCONF=yes

+ EOF

+ 

+ # For cloud images, 'eth0' _is_ the predictable device name, since

+ # we don't want to be tied to specific virtual (!) hardware

+ rm -f /etc/udev/rules.d/70*

+ ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

+ 

+ # simple eth0 config, again not hard-coded to the build hardware

+ cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF

+ DEVICE="eth0"

+ BOOTPROTO="dhcp"

+ ONBOOT="yes"

+ TYPE="Ethernet"

+ USERCTL="yes"

+ PEERDNS="yes"

+ IPV6INIT="no"

+ PERSISTENT_DHCLIENT="1"

+ EOF

+ 

+ # set virtual-guest as default profile for tuned

+ echo "virtual-guest" > /etc/tuned/active_profile

+ 

+ # generic localhost names

+ cat > /etc/hosts << EOF

+ 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

+ ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

+ 

+ EOF

+ echo .

+ 

+ # Because memory is scarce resource in most cloud/virt environments,

+ # and because this impedes forensics, we are differing from the Fedora

+ # default of having /tmp on tmpfs.

+ echo "Disabling tmpfs for /tmp."

+ systemctl mask tmp.mount

+ 

+ cat <<EOL > /etc/sysconfig/kernel

+ # UPDATEDEFAULT specifies if new-kernel-pkg should make

+ # new kernels the default

+ UPDATEDEFAULT=yes

+ 

+ # DEFAULTKERNEL specifies the default kernel package type

+ DEFAULTKERNEL=kernel

+ EOL

+ 

+ # make sure firstboot doesn't start

+ echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot

+ 

+ # workaround https://bugzilla.redhat.com/show_bug.cgi?id=966888

+ #if ! grep -q growpart /etc/cloud/cloud.cfg; then

+ #  sed -i 's/ - resizefs/ - growpart\n - resizefs/' /etc/cloud/cloud.cfg

+ #fi

+ 

+ 

+ #echo -e 'cloud-user\tALL=(ALL)\tNOPASSWD: ALL' >> /etc/sudoers

+ 

+ echo "Cleaning old yum repodata."

+ yum clean all

+ 

+ echo "set instance type markers"

+ echo 'genclo' > /etc/yum/vars/infra

+ 

+ # chance dhcp client retry/timeouts to resolve #6866

+ cat  >> /etc/dhcp/dhclient.conf << EOF

+ 

+ timeout 300;

+ retry 60;

+ EOF

+ 

+ # clean up installation logs"

+ rm -rf /var/log/yum.log

+ rm -rf /var/lib/yum/*

+ rm -rf /root/install.log

+ rm -rf /root/install.log.syslog

+ rm -rf /root/anaconda-ks.cfg

+ rm -rf /var/log/anaconda*

+ rm -rf /root/anac*

+ 

+ echo "Fixing SELinux contexts."

+ touch /var/log/cron

+ touch /var/log/boot.log

+ mkdir -p /var/cache/yum

+ /usr/sbin/fixfiles -R -a restore

+ 

+ # reorder console entries

+ sed -i 's/console=tty0/console=tty0 console=ttyS0,115200n8/' /boot/grub2/grub.cfg

+ 

+ #echo "Zeroing out empty space."

+ # This forces the filesystem to reclaim space from deleted files

+ dd bs=1M if=/dev/zero of=/var/tmp/zeros || :

+ rm -f /var/tmp/zeros

+ echo "(Don't worry -- that out-of-space error was expected.)"

+ 

+ %end

+ 

+ %packages

+ @core

+ chrony

+ cloud-init

+ cloud-utils-growpart

+ dracut-config-generic

+ dracut-norescue

+ firewalld

+ grub2

+ kernel

+ nfs-utils

+ rsync

+ tar

+ yum-utils

+ -NetworkManager

+ -aic94xx-firmware

+ -alsa-firmware

+ -alsa-lib

+ -alsa-tools-firmware

+ -biosdevname

+ -iprutils

+ -ivtv-firmware

+ -iwl100-firmware

+ -iwl1000-firmware

+ -iwl105-firmware

+ -iwl135-firmware

+ -iwl2000-firmware

+ -iwl2030-firmware

+ -iwl3160-firmware

+ -iwl3945-firmware

+ -iwl4965-firmware

+ -iwl5000-firmware

+ -iwl5150-firmware

+ -iwl6000-firmware

+ -iwl6000g2a-firmware

+ -iwl6000g2b-firmware

+ -iwl6050-firmware

+ -iwl7260-firmware

+ -libertas-sd8686-firmware

+ -libertas-sd8787-firmware

+ -libertas-usb8388-firmware

+ -plymouth

+ 

+ %end

+ 

Initial import from other git repo used in the past (https://github.com/CentOS/sig-cloud-instance-build/blob/master/cloudimg/CentOS-7-x86_64-hvm.ks) and modified to build centos 7 cloud images artifacts from centos infra, and also covering ppc64le/aarch64 architectures (missing but needed for now)
This commit only covers (so far) the GenericCloud image

Signed-off-by: Fabian Arrotin arrfab@centos.org

Pull-Request has been merged by bstinson

7 months ago
Metadata