티스토리 뷰
1. Kickstart
킥스타트란 무엇일까
아래 사진으로 간단하게 설명하자면 하나의 기본적인 OS 가 설치된 KICKSTART 서버를 통해 OS 가 설치되지 않은
서버에 자동으로 OS 를 설치해주는 솔루션(?) 이다
킥스타트는 네트워크 부팅으로 OS 를 설치하며
킥스타트의 구성은 TFTP, DHCP, NFS 가 설치되어야한다
TFTP 는 파일을 전송하는 역할
DHCP 는 네트워크 부팅이 되는 서버에 지정한 대역대의 IP 를 할당하는 역할
NFS 는 지정한 네트워크의 디렉토리에 접근하여
대상이 되는 파일이나 디렉토리를 사용한다
2. virtualbox 의 세팅
virtualbox 를 통해 진행을 한텐데 최신버전의 virtualbox 는 특정어댑터를 지원하지 않으므로
2.6 이하 버전으로 진행하길 권장한다
3개의 가상머신을 세팅하고 하나는 kickstart 나머지 두개는 test1 과 test2 로 지정했다
kickstart 서버 하나는 CentOS 6.5 를 minimal 로 설치하고
외부네트워크 사용을 위해 /etc/sysconfig/network-script/ifcfg-ethX(숫자) 를 세팅한다
그리고 나머지 두개의 테스트서버는 설정> 네트워크에서 호스트전용 어댑터로 설정하고
이름부분은 kickstart 서버와 동일하게 설정한다
네트워크 설정이 잘안되는 부분은 아래블로그를 참고하면 될것같다
3. 구성요소 설치
위에서 말했다시피 설치되는 항목은 기본적으로 세가지가 들어가고 버전에 따라 추가적으로 더 들어간다
TFTP |
/etc/init.d/tftp |
DHCP |
/etc/init.d/dhcp |
NFS |
/etc/init.d/nfs |
Syslinux |
/usr/lib/syslinux |
일단 yum 으로 설치했지만 실무적으로 관리해야 한다면 소스설치하는것을 권장한다
yum 으로 설치했을때 설치경로는 위와같다
일단 설치할 iso 파일을 받는다, 어떤 버전을 받아도 상관없다
[root@kickstart /]# cd usr/local/src/iso/
[root@kickstart iso]# wget http://centos.mirror.cdnetworks.com/6.5/isos/i386/CentOS-6.5-i386-bin-DVD1.iso
[root@kickstart iso]# ls
CentOS-6.5-i386-bin-DVD1.iso
* tftp 를 설치한다
[root@kickstart iso]# yum install -y tftp tftp-server
tftp 를 설치하고 나서 사용을 위해 설정을 변경해준다
server_args 와 disable 값을 변경해준다
[root@kickstart iso]# vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args =
-s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
* dhcp 를 설치한다
[root@kickstart iso]# yum install -y dhcp*
마찬가지로 설정도 변경한다
[root@kickstart iso]# vi /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
#boot-unknown-clients false;
default-lease-time 600;
max-lease-time 7200;
option domain-name "www.google.com";
option domain-name-servers 8.8.8.8;
option ip-forwarding false;
option mask-supplier false;
ddns-update-style none;
next-server 192.168.56.120;
filename "pxelinux.0";
subnet 192.168.56.0 netmask 255.255.255.0 {
option routers 10.0.2.2;
range 192.168.56.150 192.168.56.240;
}
! 처음에 받아놓은 iso 파일은 그냥 단독으로 사용하기 어렵기 때문에 mount 작업을 해야한다
[root@kickstart iso]# mkdir /mount/CentOS iso
[root@kickstart iso]# mount –o loop /usr/local/src/iso/CentOS-6.5-i386-LiveDVD.iso /mount/CentOS
[root@kickstart iso]# cd /mnt/CentOS/
[root@kickstart CentOS]# ls
CentOS_BuildTag RPM-GPG-KEY-CentOS-6 images
EULA RPM-GPG-KEY-CentOS-Debug-6 isolinux
GPL RPM-GPG-KEY-CentOS-Security-6 repodata
Packages RPM-GPG-KEY-CentOS-Testing-6
cd /mount/CentOs/isolinux 또한 마운트한 디렉토리에서 isolinux 하위의 initrd.img 와 vmlinuz 를 부팅시에 사용하기 위해
특정 디렉토리를 만들어 copy 한다
[root@kickstart CentOS]# cd isolinux/
[root@kickstart isolinux]# ls
TRANS.TBL boot.msg initrd.img isolinux.cfg splash.jpg vmlinuz
boot.cat grub.conf isolinux.bin memtest vesamenu.c32
파일을 사용하기위해 /tftpboot/download 디렉토리에 복사
* 리눅스의 네트워크 부팅을 위한 필수요소인 pxelinux.0 를 사용하기 위해 syslinux 를 설치
[root@kickstart CentOS]# yum install -y syslinux
[root@kickstart CentOS]# cp /user/lib/syslinux/pxelinux.0 /tftpboot
[root@kickstart CentOS]# cd /tftpboot/
[root@kickstart CentOS]# ls
download ks menu.c32 pxelinux.0 pxelinux.cfg
[root@kickstart tftpboot]# vi /tftpboot/pxelinux.cfg/default
timeout=30
default centos6
label centos6
kernel download/vmlinuz
append ksdevice=link load_ramdisk=1 initrd=download/initrd.img unsupported_hardware text network ks=nfs:192.168.56.120:/tftpboot/ks/ks32.cfg text
설치시에 필요한 설정파일인 anaconda-ks.cfg 를 저장하기 위해 /tftpboot 하위에 ks 디렉토리를 생성한다
[root@kickstart tftpboot]# mkdir /tftpboot/ks
[root@kickstart tftpboot]# cp /root/anaconda-ks.cfg /tftpboot/ks32.cfg
기본적으로 anaconda-ks.cfg 는 centos 설치시에 root 디렉토리에 생성되는데
위에서 알아보기 쉽게 ks32.cfg 로 변경
vi editor 로 ks32.cfg 파일을 오픈후 설정변경
text mode 사용을 위해, text 와 skipx 를 추가
url 부분에 nfs -server=192.16.56.120 -dir=/mount/CentOs 로 수정
* network file system 을 사용하기 위해 nfs 설치
[root@kickstart tftpboot]# yum install -y nfs-utils
마찬가지로 설정파일을 수정
마운트한 파일을 사용하기 위해 아래 두줄을 insert
[root@kickstart tftpboot]# vi /etc/exports
/tftpboot/ks 192.168.56.0/24(ro)
/mnt/CentOS 192.168.56.0/24(ro)
dhcpd / tftp/ nfs 가 정상적으로 설치된것을 확인할수 있다.
* pxe 부팅전에 방화벽을 설정해야한다
[root@kickstart ~]# iptables -F
[root@kickstart ~]# restorecon -r -F /tftpboot
restoreconf 명령어로 원하는 파일이나 디렉토리를 기본 설정값으로 변경할 수 있다.
그리고 아까 생성한 TEST 머신을 시작하면
아래와 같이 dhcp 를 통해 IP 를 자동 할당하고 tftp 주소를 확인하여 pxelinux.0 파일을 읽는다
또한 pxelinux.cfg 의 default 를 확인하여 vmlinuz 와 initrd.img, ks32.cfg 파일을 확인하여 로딩을 시작한다
머신에 대한 os 의존성을 체크하고 설치가 진행
ks32.cfg 에 명시된 패키지와 설정을 확인후 설치, 재시작
아래와 같이 재부팅후 로그인화면으로 이동되면 완료!
tip. 아래와 같이 ks32.cfg 에 추가 패키지 설정이나 방화벽설정 passwd 설정이 가능
'OS > LINUX' 카테고리의 다른 글
[visualcode] bash shell auto indentation 하기 (0) | 2020.01.30 |
---|---|
immutable file in linux (0) | 2014.10.29 |
리눅스 퍼미션 (0) | 2014.07.15 |
apache mpm(2) (0) | 2014.04.02 |
apache mpm (0) | 2014.04.02 |