리눅스

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
반응형