'리눅스 초급/Kic_Start'에 해당되는 글 2건

  1. 2016.05.08 [Kick_Start] (2)KickStart 단계별 트러블 슈팅
  2. 2016.05.03 [Kick_Start] (1)KickStart

1. dhcpd stop 되어 있는 경우

 처음 부팅 화면에서 dhcp 모래시계가 돌아가면서 진행이 안된다.

이후에 dhcp로 대역을 받아오질 못해서 OS 시스템을 받아오지 못한다는 메세지가 출력된다.




2. xinetd stop 되어 있는 경우

 tftp가 작동이 안되기 때문에 부팅에 필요한 파일을 전송 받을 수 없다.

tftp 타임아웃 메세지 출력




3. menu.c32의 권한을 000으로 설정할 경우

 커널이미지를 불러올 수 없다는 메세지가 출력된다.



4. pxelinux.0의 권한을 000으로 설정할 경우

 허가 거부 메세지와 tftp 서버에서 받아오는 것이 에러가 난다는 메세지가 출력된다.


5. default의 권한을 000으로 설정할 경우

 Boot failed 메세지가 출력된다.


6. vmlinuz의 파일 버젼은 꼭 맞춰준다.

 Host OS가 centos6.5일 경우는 6.5 이미지 파일의 vmlinuz를 사용한다. 6.5에서 7.0 버전을 설치하려는 경우에 설정 파일의 내용들이 다르기 때문에 'dracut 에러' 가 발생한다.


7. initrd.img 경로가 다를 경우

 메뉴는 불러오는데 이미지 파일을 못 찾아서 7초후 화면이 기본 설정으로 부팅이 되어야 하는데

계속 1초에서 머문다.( 화면이 진행안된다)


8.  anaconda.cfg 경로가 다를 경우

 Alt+Ctrl+ F1 ~ F6 까지 가상 콘솔로 설치 과정을 확인할 수 있다 .

F1이 GUI 모드고 F3 텍스트 모드에서 nfs가 잘못된 경로에서 anaconda 파일을 가져오려고 노력하는 것을 볼 수 있다. 경로 잘못 적어주면 nfs가 삽질한다.ㅜㅜ


9. nfs 파일을 찾아오라는 에러가 나올 경우

 anaconda.cfg 의 --dir 경로를 확인하고, /etc/exports의 설정을 확인한다.

/data/cfg/

/mnt/CentOS/

뒤에 / 꼭 붙여야된다. 중요하니 빨간색


10. 추가로 구동 중인 rpc 데몬을 확인하고 싶을 때는 rpcinfo 명령어를 사용한다. 꿀팁! 



 

 




  



'리눅스 초급 > Kic_Start' 카테고리의 다른 글

[Kick_Start] (1)KickStart  (0) 2016.05.03
Posted by 알 수 없는 사용자
,

KickStart

 

리눅스 설치 자동화

PXE 부팅을 이용하여 원격에서 자동으로 부팅하고 설치는 Kickstart 와 네트워크 설치를 이용하여 자동화

kickstart를 이용하여 설치 후 필요한 작업까지 넣어두면 좀더 편리한 서버작업이 가능함

 

KickStart에 필요한 파일 내용 정리

 

1. DHCP ( Dynamic Host Configuration Protocol )

-> PXE 부팅 시 kickstart 서버와 연결되기 위해 동적으로 IP 할당

-> IP 할당 후 인터넷이되어야지 kickstart서버에서 Image 를 받아 올수 있음

 

2. tftp-server ( Trival File Transfer Protocol )

-> PXE 부팅 후 리눅스 커널 이미지를 전송할 때 사용

-> pxelinux.0, menu.c32, vmlinuz, initrd.img

 

3. nfs ( Network File System ) & httpd ( HyperText Transfer Protocol Daemon ) & vsftpd ( Very Secure FTP Daemon

-> 네트워크로 파일 시스템 공유

-> kickstart.cfg 이나 OS 이미지(ISO) 설치 파일을 전송할 때 사용

 

4. nfs lock

-> 네트워크로 파일 시스템 공유 중일 때 다른 사람이 사용하지 못하도록 함

 

5. syslinux 파일

-> 리눅스 부트 메뉴 구성을 위한 파일을 제공 ( pxelinux 0, menu.c.32 )

 

※ syslinux는 리눅스 시스템 부팅을 위한 부트로더이며 isolinux, extlinux, memdisk 들이 포함됨

 

syslinux - MS-DOS, FAT, FAT32 파일시스템으로 포멧된 디스크 파티션에서 리눅스를 로드

extlinux - ext2/ext3/ext4 파일시스템으로 포멧된 디스크 파티션에서 리눅스를 로드

isolinux - ISO9600 파일시스템으로 포멧된 디스크 파티션이나, 시디롬으로 부터 리눅스를 로드

memdisk - 램드라이브로 부터 리눅스를 로드 하며 이것은 주로 플로피디스크 이미지를 램디스크로 로드하여 부팅

               할때도 많이 사용되기 때문에 GRUB에서도 이모듈을 사용

 

6. pxelinux.0 파일

-> syslinux 패키지에 포함되어 있는 파일로 대부분의 시스템에는 기본적으로 설치가 되어 있음

    pxelinux.0는 네트워크 부트 로더로 리눅스의 grub / lilo 와 같은 역활을 함

 

7. menu.c32 파일

-> pxe 설치 시 메뉴선택 할 수 있게 하는 파일

 

8. vmlinuz 파일

-> 리눅스 커널을 컴파일한 결과인 바이너리 파일

   bzimage를 사용하여 gzip으로 압축해 놓고 리눅스 부팅시 압축을 해제하여 메모리에 로딩되어 리눅스의 운영이 시작

 

9. initrd.img 파일

-> 커널 모듈을 모아놓은 이미지로 커널이 로딩되기전에 메모리에 미리 로딩되어 짐 ( 마우스 드라이버,그래픽 카드 등 )

 

10. anaconda.cfg 파일

-> pxe 설치 시 리눅스 설정 파일

   설치방법 ( 언어 / 키보드 / 마우스 / 이더넷 / 보안설정 / 시간 / 부트로드 / 파티션 / 패키지 / 설치 후 작업 )

 

 

KickStart 순서

 

1) DHCP 서버를 찾는다.

2) TFTP 서버를 통해 pxelinux.0 / menu.c32 파일을 받는다

3) 네트워크 부팅이 이루어지며 menu.c32 파일에 해당되는 anaconda.cfg 파일의 메뉴들이 나타난다.

4) 메뉴 목록 중 하나를 선택하면 설정되어 있는 vmlinuz 커널을 메모리에 로딩하며 초기 설치 화면이 나타난다

    (initrd.img는 하드웨어 설정시 필요 모듈을 로드할때 쓰임)

5) anaconda.cfg 파일에 리눅스 설정이 제대로 들어가 있으면 자동으로 설치,  설정이 제대로 들어가지 않을 경우 일일이 선택항목을 선택하면서 진행

 

Kickstart 테스트

 

※ 서버 OS : REHL6.6

 

 

1) DHCP 설정

 

[root@localhost ~]# rpm -qa | grep dhcp
dhcp-libs-4.2.5-27.el7.x86_64
dhcp-common-4.2.5-27.el7.x86_64

 

[root@localhost ~]# yum install dhcp

 

Installed:
  dhcp.x86_64 12:4.2.5-27.el7                                                                                                                                                                                                 

Complete!

[root@localhost ~]# cat /etc/dhcp/dhcpd.conf

 

allow bootp;
allow booting;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.0.164;
filename "pxelinux.0";
}

max-lease-time 60;
default-lease-time 60;
option subnet-mask 255.255.255.0;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.0.100 192.168.0.150;
}

2) TFTP 설정

 

[root@localhost ~]# yum install xinetd

 

Installed:
  xinetd.x86_64 2:2.3.15-12.el7                                                                                                                                                                                               

Complete!

[root@localhost ~]# yum install tftp*

 

Installed:
  tftp.x86_64 0:5.2-11.el7                                                                                                                                                                                                    

Complete!

Installed:
  tftp-server.x86_64 0:5.2-11.el7                                                                                                                                                                                             

Complete!

 

[root@localhost xinetd.d]# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol.  The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
 socket_type  = dgram
 protocol  = udp
 wait   = yes
 user   = root
 server   = /usr/sbin/in.tftpd
 server_args  = -s /data/install
 disable   = no
 per_source  = 11
 cps   = 100 2
 flags   = IPv4
}

3) PXE boot 설정

 

1. 폴더 생성

 

[root@localhost xinetd.d]# mkdir /data
[root@localhost xinetd.d]# mkdir /data/install
[root@localhost xinetd.d]# mkdir /data/install/redhat
[root@localhost xinetd.d]# mkdir /data/install/pxelinux.cfg
[root@localhost xinetd.d]# mkdir /data/cfg

 

2. syslinux 설치

 

[root@localhost xinetd.d]# yum install syslinux

 

Installed:
  syslinux.x86_64 0:4.05-8.el7                                                                              

Complete!

 

3. pxelinux.0 복사

 

[root@localhost xinetd.d]# cp /usr/share/syslinux/pxelinux.0 /data/install/

4. menu.c32 복사

 

[root@localhost xinetd.d]# cp /usr/share/syslinux/menu.c32 /data/install

5. vmlinuz 복사

 

[root@localhost xinetd.d]# cp /iso/rhel7/images/pxeboot/vmlinuz /data/install/redhat/

6. initrd.img 복사

 

[root@localhost xinetd.d]# cp /iso/rhel7/images/pxeboot/initrd.img /data/install/redhat/

 

7. anaconda.cfg 복사

 

[root@localhost xinetd.d]# cp /root/anaconda-ks.cfg /data/cfg/anaconda-ks.cfg

8. pxelinux.0 파일을 읽어드릴 config 파일 생성

 

[root@localhost xinetd.d]# cat /data/install/pxelinux.cfg/default

 

default menu.c32
timeout 100

menu background splash.jpg
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color timeout_msg 0 #ffffffff #00000000
menu color timeout 0 #ffffffff #00000000
menu color cmdline 0 #ffffffff #00000000
menu tabmsg Press ENTER to Install or TAB to edit a menu entry

 
menu title #### OS Installer Boot Menu ####


label 0
menu label rhel6.6
kernel redhat/vmlinuz
append ksdevice=eth0 initrd=redhat/initrd.img network ks=nfs:192.168.0.164:/data/cfg/anaconda-ks.cfg

 

- timemout : 100초 동안 부트 메뉴를 띄어주고 메뉴 선택이 없으면 label 0 메뉴로 자동으로 부팅

- menu label : 메뉴 선택 라벨명

- kernel : /data/install 폴더에서 절대경로 vmlinuz 파일 위치 ( TFTP server_args 위치)

- ksdevice=eth0 : kickstart 부팅할 때 사용할 eth 장치명

- ksdevice link : kickstart 부팅할 때 link 잡히는 eth으로 설치

- initrd=intird.img : /data/install 폴더에서 절대경로 initrd.img 파일 위치

- network ks=nfs:192.168.0.130:/data/cfg/anaconda-ks.cfg : NFS서버 아이피 : anaconda.cfg 절대 경로

 

※ vmlinuz와 initrd.img 파일은 같은 버전 파일 이어야 함

 

4) NFS 설정

 

[root@localhost xinetd.d]# cat /etc/exports
/iso/rhel66 *(ro)        //리눅스 설치 ISO 파일 절대 경로
/data/cfg/ *(ro)        // anaconda.cfg 파일 절대 경로

 

# exportfs -v        //nfs공유 설정 확인

 

5) anaconda.cfg 설정

 

[root@localhost xinetd.d]# chmod -R 777 /data/cfg/
[root@localhost xinetd.d]# cat /data/cfg/anaconda-ks.cfg

[root@localhost iso]# cat /data/cfg/anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw  --iscrypted $6$eI.Cksf02xWX.Emx$W3PchU7zWye8hAXyYm/jXKTzBrKnmnqb6rwT9DeanbfEKHsONsIBICoOoKlspxCwJd31II.nteQVD4hEMf9YQ/
nfs --server=192.168.0.164 --dir=/iso/rhel66
#firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Seoul
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work

#clearpart --all --drives=sda
clearpart --all --initlabel --linux
#volgroup VolGroup --pesize=4096 pv.008002
#logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
#logvol swap --name=lv_swap --vgname=VolGroup --grow --size=2048 --maxsize=2048


part / --fstype=ext4 --size=4096 --ondisk=sda
part /boot --fstype=ext4 --size=500
part swap --size=4096 --ondisk=sda


#part pv.008002 --grow --size=1

 


%packages
@base
@client-mgmt-tools
@compat-libraries
@core
@basic-desktop
@desktop-debugging
@desktop-platform
@development
@ftp-server
@fonts
@general-desktop
@graphical-admin-tools
@input-methods
@internet-browser
@legacy-x
@remote-desktop-clients
@server-platform
@server-platform-devel
@server-policy
@system-management
@x11
mtools
pax
python-dmidecode
wodim
sgpio
genisoimage
device-mapper-persistent-data
abrt-gui
jpackage-utils
libXmu
%end

reboot
%post
mkdir test
chkconfig NetworkManager off
chkconfig iptables off

 

 

6) 서비스 데몬 실행 순서

1.xinetd (tftpd)

2.dhcpd

3.nfs

 

2016-05-03 14:00 1차 수정//

 

'리눅스 초급 > Kic_Start' 카테고리의 다른 글

[Kick_Start] (2)KickStart 단계별 트러블 슈팅  (0) 2016.05.08
Posted by 알 수 없는 사용자
,