#version=RHEL7 # Install OS instead of upgrade install # Keyboard layouts keyboard 'us'# Reboot after installation reboot # Root password rootpw --plaintext %ROOTPW% # System timezone timezone America/New_York --isUtc # System language lang en_US.UTF-8 user --name=vagrant --password=vagrant # Firewall configuration firewall --disabled # System authorization information auth --enableshadow --enablemd5 # Use text mode install text # SELinux configuration selinux --enforcing # Do not configure the X Window System skipx # Network information network --bootproto=dhcp --device=eth0 repo --name="koji-override-0" --baseurl=http://mirror.centos.org/centos/7/extras/x86_64/ repo --name="koji-override-1" --baseurl=http://mirror.centos.org/centos/7/updates/x86_64/ repo --name="koji-override-2" --baseurl=http://cbs.centos.org/repos/cloud7-openstack-common-candidate/x86_64/os/ # System bootloader configuration bootloader --append="console=tty0 console=ttyS0,115200 net.ifnames=0 biosdevname=0" --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --drives=vda # Disk partitioning information part biosboot --fstype="biosboot" --size=1 part /boot --fstype="xfs" --size=300 part pv.01 --grow volgroup vg001 pv.01 logvol / --fstype="xfs" --size=8192 --name=root --vgname=vg001 %post # Setting storage for docker # http://www.projectatomic.io/blog/2015/06/notes-on-fedora-centos-and-docker-storage-drivers/ if [ -b /dev/mapper/vg001-root ]; then lvcreate -l 8%FREE -n docker-meta vg001 lvcreate -l 100%FREE -n docker-data vg001 cat <> /etc/sysconfig/docker-storage DOCKER_STORAGE_OPTIONS=--storage-opt dm.fs=xfs --storage-opt dm.datadev=/dev/mapper/vg001-docker--data --storage-opt dm.metadatadev=/dev/mapper/vg001-docker--meta EOF fi # Needed to allow this to boot a second time with an unknown MAC sed -i "/HWADDR/d" /etc/sysconfig/network-scripts/ifcfg-eth* sed -i "/UUID/d" /etc/sysconfig/network-scripts/ifcfg-eth* #Fixing issue #29 cat << EOF > kube-apiserver.service [Unit] Description=Kubernetes API Server Documentation=https://github.com/GoogleCloudPlatform/kubernetes After=network.target [Service] EnvironmentFile=-/etc/kubernetes/config EnvironmentFile=-/etc/kubernetes/apiserver User=kube ExecStart=/usr/bin/kube-apiserver \\ \$KUBE_LOGTOSTDERR \\ \$KUBE_LOG_LEVEL \\ \$KUBE_ETCD_SERVERS \\ \$KUBE_API_ADDRESS \\ \$KUBE_API_PORT \\ \$KUBELET_PORT \\ \$KUBE_ALLOW_PRIV \\ \$KUBE_SERVICE_ADDRESSES \\ \$KUBE_ADMISSION_CONTROL \\ \$KUBE_API_ARGS Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF mv kube-apiserver.service /etc/systemd/system/ systemctl daemon-reload # set tuned profile to force virtual-guest tuned-adm profile virtual-guest # sudo echo "%vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/vagrant sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers #enable Kubernetes master services #etcd kube-apiserver kube-controller-manager kube-scheduler systemctl enable etcd systemctl enable kube-apiserver kube-controller-manager kube-scheduler #enable Kubernetes minion services #kube-proxy kubelet docker systemctl enable kube-proxy kubelet systemctl enable docker groupadd docker usermod -a -G docker vagrant # Default insecure vagrant key mkdir -m 0700 -p /home/vagrant/.ssh echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" >> /home/vagrant/.ssh/authorized_keys chmod 600 /home/vagrant/.ssh/authorized_keys chown -R vagrant:vagrant /home/vagrant/.ssh %end %packages @core @development PyYAML atomic bash-completion deltarpm docker docker-registry etcd flannel git kubernetes libyaml-devel man-pages nfs-utils rsync screen tuned %end