티스토리 뷰

OS/LINUX

kickstart(킥스타트) 설치기

卽興詩人 2014. 10. 5. 01:12

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 서버와 동일하게 설정한다

 

 

 

 

 

 

 

네트워크 설정이 잘안되는 부분은 아래블로그를 참고하면 될것같다

 

* 정재화씨 블로그

http://blrunner.com/55

 

 

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


[root@kickstart CentOS]# mkdir /tftpboot/download
[root@kickstart CentOS]# cp /mount/CentOS/isolinux/vmlinuz   /tftpboot/download
[root@kickstart CentOS]# cp /mount/CentOS/isolinux/initrd.img  /tftpboot/download

파일을 사용하기위해 /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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함