IT

CentOS kickstart example

concave 2021. 1. 1. 15:14
반응형

Prerequisite

PXE를 사용하여 Network install시 kickstart script를 사용하면 OS를 자동으로 설치 가능하다.
네트워크 부팅은 dnsmasq를 사용하여 구성되었고 여기서는 kickstart script만 정리하였다.

kickstart script

kickstart script는 기본적으로 OS를 설치하면 root 홈에 anaconda.ks 파일로 존재한다. 이 스크립트를 기본으로 sudo, ssh key copy를 해두면 정말 편리하게 자동화를 구성할 수 있다.

#version=RHEL8
# Use graphical install
text

repo --name="AppStream" --baseurl=http://mirror.kakao.com/centos/8/AppStream/x86_64/os

%packages
@^minimal-environment

%end

# Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=ens18 --nodefroute --noipv6 --activate
network  --bootproto=dhcp --device=ens19 --noipv6 --activate
network  --hostname=localhost.localdomain

# Use network installation
url --url="http://mirror.kakao.com/centos/8/BaseOS/x86_64/os/"

# Run the Setup Agent on first boot
firstboot --enable

ignoredisk --only-use=sda
# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information
part pv.1135 --fstype="lvmpv" --ondisk=sda --size=15358
part /boot/efi --fstype="efi" --ondisk=sda --size=512 --fsoptions="umask=0077,shortname=winnt" --label=boot-efi
part /boot --fstype="ext4" --ondisk=sda --size=512 --label=boot
volgroup cl --pesize=4096 pv.1135
logvol / --fstype="xfs" --size=15356 --label="root" --name=root --vgname=cl

# System timezone
timezone Asia/Seoul --isUtc --nontp

#Root password
rootpw --lock
user --groups=wheel --name=awslife --password=$6$blablablabla.................. --iscrypted --uid=1000 --gecos="awslife" --gid=1000
selinux --permissive

reboot

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

%post --log=/root/ks-post.log

cat > /etc/sudoers.d/awslife << EOF
awslife ALL=(ALL) NOPASSWD:ALL
EOF

mkdir -p ~awslife/.ssh
cat > ~awslife/.ssh/authorized_keys << EOF
ssh-rsa blablabla blabla@blablabla-MBP
ssh-rsa blablabla blabla@bootstrap
EOF
chown -R awslife:awslife ~awslife/.ssh

%end
반응형