리눅스
CentOS 7에서 Kickstart 설치 및 구성하는 방법
변군이글루
2017. 4. 8. 18:59
반응형
CentOS 7에서 Kickstart 설치 및 구성하는 방법(V.201704)
1. repository 디렉토리 생성
필요한 디렉토리 생성
mkdir -p /appdata/www/repository/{centos/6.9/{isos, os}/x86_64,centos/7.3/{isos, os}/x86_64}
CentOS 7 ISO 마운트
mount -t iso9660 -o loop /appdata/www/repository/centos/6/isos/x86_64/CentOS-6.9-x86_64-bin-DVD1.iso /mnt
ISO 파일의 내용을 복사
cp -fR /mnt/* /appdata/www/repository/centos/6/os/x86_64/.
마운트 해제
umount /mnt
2. TFTP(Trivial File Transfer Protocol) 설치 및 설정
TFTP 설치
yum install -y tftp tftp-server syslinux-tftpboot
TFTP 서버 설정
cat <<EOL > /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
EOL
TFTP 서비스 시작
systemctl start xinetd
systemctl enable xinetd
netstat -nlp | grep 69
3. DHCP(Dynamic Host Configuration Protocol) 설치 및 설정
DHCP 설치
yum install -y dhcp dhcp-devel
cat /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample > /etc/dhcp/dhcpd.conf
DHCP 설정 파일 편집
cat <<EOL >> /etc/dhcp/dhcpd.conf
Allow booting;
Allow bootp;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.200 192.168.0.210;
option routers 192.168.0.1;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.0.101;
filename "pxelinux.0";
server-name "192.168.0.101";
}
EOL
DHCP 서비스 시작
systemctl start dhcpd
systemctl enable dhcpd
netstat -nlp | grep 67
4. WEB Server(Apache) 설치 및 설정
Apache 설치
yum install -y httpd httpd-devel mod_ssl
cat <<EOL >> /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@kss.scbyun.com
DocumentRoot /appdata/www/
ServerName kss.scbyun.com
ErrorLog logs/kss.scbyun.com-error.log
CustomLog logs/kss.scbyun.com-access.log common
</VirtualHost>
EOL
Apache 서비스 시작
systemctl start httpd
systemctl enable httpd
5. 패키지 설치
syslinux 및 system-config-kickstart 설치
yum install -y syslinux system-config-kickstart
728x90
6. Kickstart 설정 파일
Kickstart 파일 생성
mkdir -p /appdata/www/ks
cat <<EOL > /appdata/www/ks/ks-centos6_x64.cfg
#platform=x86, AMD64, 또는 Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --enabled --ssh
# Install OS instead of upgrade
install
# Use network installation
#url --url="http://kss.scbyun.com/repository/centos/6/os/x86_64"
url --url="http://192.168.0.101/repository/centos/6/os/x86_64"
# Root password
rootpw --iscrypted $1$rqh4iFsa$qDAcahpUnPvgL8bGZ.vQj/
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
# System keyboard
keyboard us
# System language
lang ko_KR
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone Asia/Seoul
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
#network --bootproto=dhcp --device=eth1 --onboot=on
#network --onboot=on --device=eth0 --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 --gateway=10.0.2.254 --nameserver=10.0.2.1
# System bootloader configuration
bootloader --location=mbr
bootloader --location=mbr --driveorder=sda --append="nomodeset rhgb crashkernel=auto quiet"
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --grow --maxsize=500 --size=1
part swap --fstype="swap" --grow --maxsize=4096 --size=1
part / --fstype="ext4" --grow --size=1
EOL
vim /appdata/www/ks/ks-centos6_x64.cfg
TFTP 디렉토리 설정
mkdir -p /var/lib/tftpboot/{pxelinux.cfg,centos6}
Syslinux 및 Kickstart 파일 복사
cp /appdata/www/repository/centos/6.9/os/x86_64/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6/
ln -s /appdata/www/repository/centos/6.9 /appdata/www/repository/centos/6
ln -s /appdata/www/repository/centos/7.3 /appdata/www/repository/centos/7
cat <<EOL > /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
MENU TITLE Main Menu
MENU TITLE ########## PXE Boot Menu ##########
LABEL 1
MENU LABEL ^1) Boot from local drive localboot
LOCALBOOT 0
LABEL 2
MENU LABEL ^2) Install CentOS 6 x86_64 Edition
KERNEL centos6/vmlinuz
APPEND initrd=centos6/initrd.img ks=http://192.168.0.101/ks/ks-centos6_x64.cfg load_ramdisk=1 ksdevice=link network
EOL
7. TFTP 서비스 및 DHCP 서비스 재시작
재시작 스크립트 작성
echo -e "#!/bin/bash\nservice xinetd restart\nservice dhcpd restart\nservice httpd restart" > kss-restart.sh
또는
vim kss-restart.sh
#!/bin/bash
systemctl restart xinetd
systemctl restart dhcpd
systemctl restart httpd
chmod 700 kss-restart.sh
이제 PXE(Preboot Execution Environment)를 통해 네트워크 부팅하면 Kickstart 파일이 자동으로 적용되어 CentOS 7이 설치됩니다.
728x90
반응형