우선 참고한 위치다.
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/System_management/KickStart
http://wiki.linuxstudy.pe.kr/wiki.php/kickstart
http://jonnychoe.egloos.com/5459100
http://xinet.kr/tc/69
http://docs.oracle.com/cd/E19140-01/821-2242/p49.html#scrolltoc
http://joinc.co.kr/modules/moniwiki/wiki.php/Site/cloud/virtualbox/PXE?action=highlight&value=4
http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/s1-kickstart2-options.html
fedora kickstart option
https://access.redhat.com/knowledge/docs/ko-KR/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/sn-automating-installation.html
anaconda.cfg 즉 fedora(redhat 계열) 를 설치하고 나면 설치시 입력했던 설정파일(kickstart 구성파일)이 자동으로 /root/anaconda.cfg 로 저장된다 이를 이용하면 kickstart 더 쉬워진다. 위의 사이트는 이에 해당하는 내용이다.
테스트 장비가 없는 분들은 virtualbox를 이용하여 테스트해 보아라. 아래는 virtualbox 를 이용하여 pxe 네트워크 부팅 테스트방법이다.
http://joinc.co.kr/modules/moniwiki/wiki.php/Site/cloud/virtualbox/PXE?action=highlight&value=4
http://tftpd32.jounin.net/
윈도우용 dhcp, tftp, syslog 서버
문서 마지막에는 pxe 네트워크 부팅 설치를 하면서 발생했던 문제를 적겠다.
들어가기전 용어 설명
- PXE 란?
Pre-boot eXecution Environment 의 약자이다. PXE는 클라이언트/서버 인터페이스의 산업계 표준으로서, 원격지에 있는 관리자가, 아직 운영체계조차 적재되지 않은 채 네트웍에 접속된 컴퓨터들을 구성하고, 부팅할 수 있도록 해준다. PXE 코드는 대체로 컴퓨터의 롬, 또는 클라이언트가 네트웍 서버와 통신할 수 있게 해주는 부트 디스크 상에 넣어 전달됨으로써, 클라이언트 PC를 원격지에서 구성하거나 부팅시킬 수 있다. 있다. PXE는 다음의 세 가지 서비스를 제공한다. DHCP : 클라이언트가 네트웍 서버에 액세스하기 위한 IP 주소를 받을 수 있게 한다. 일련의 API들 : 클라이언트의 BIOS, 또는 다운로드된 NBP (Network Bootstrap Program)에 의해 사용됨으로써, 운영체계의 부팅이나, 기타의 구성 단계를 자동화한다. PXE 롬이나 부트 디스크 내에 있는 PXE 코드를 초기화하는 표준 방법 PXE 과정은 PXE를 사용하여 서버에게 통지하는 클라이언트로 구성되어 있다. 만약에 그 서버가 PXE를 사용하면, 서버는 이용 가능한 운영체계가 들어있는 부트 서버의 목록을 클라이언트에게 보낸다. 클라이언트는 필요한 부트 서버를 찾은 다음, 다운로드할 파일이름을 받는다. 그 다음에 클라이언트는 TFTP를 사용하여 파일을 다운로드하며, 그것을 실행시킴으로써 운영체계를 적재한다. 만약에 클라이언트에는 PXE가 장착되고 서버에는 장착되지 않았다면, 서버는 DHCP와 BOOTP 연산들 내에서의 혼란을 방지하기 위해 PXE 코드를 무시한다. PXE 사용시 얻을 수 있는 이점은 다음과 같다. 클라이언트 PC에 운영체계, 심지어 하드디스크조차 반드시 있어야 할 필요가 없다. 클라이언트 PC는 하드웨어나 소프트웨어 고장시 재부팅 될 수 있다. 이것은 관리자가 문제점을 진단하고, 어쩌면 해결할 수도 있게 해준다. PXE는 공급자에 독립적이기 때문에, 새로운 형태의 컴퓨터도 손쉽게 네트웍에 추가할 수 있다. -- 출처 :http://www.terms.co.kr/PXE.htm 다시 말해 OS 설치시 부팅 시디를 삽입하고 부팅하던 과정을 네트워크에서 지원하도록 해준다. |
- KICKSTART 란?
리눅스 설치시 사용자는 지역이나 시간, 패스워드, 언어지정, 마우스 설정등을 일일히 해야한다. 하지만 kickstart 는 이러한 설정들을 미리 파일에 지정하여 리눅스 설치 프로그램이 설정 파일을 보고 자동으로 알아서 설치를 하는 방법이다. |
- TFTP 란?
TFTP란 TFTP(Trivial File Transfer Protocol)란 이더넷을 이용하여 파일을 다운 받는 프로토콜로직이다. UDP 방식을 사용한다. TFTP은 ftp와 같은 파일 전송 프로토콜이지만, 매우 간단한 프로토콜로 구성되므로 부트로더와 같은 작은 크기의 프로그램에서 수행할 수가 있다.
일반 ftp프로토콜은 tcp프로토콜(3웨이 핸드쉐이킹방식, 자세한 사항은 네트웍 관련서적을 참고 하기 바람.)을 사용하지만, tftp는 udp프로토콜(단방향 핸드쉐이킹 방식, 자세한 사항은 네트웍 관련 서적을 참고 하기 바람.)을 사용하여 전송한다.
TFTP 구축 필요성 리눅스를 다운로드 하는 방식에는 시리얼을 이용하는 방식과 랜을 이용하는 방식이 있다.
다시 말해 부트로더를 제공하고 클라이언트가 이를 다운받기 위해 사용된다. |
- DHCP 란?
DHCP[디에이치씨피]는 네트웍 관리자들이 조직 내의 네트웍 상에서 IP 주소를 중앙에서 관리하고 할당해줄 수 있도록 해주는 프로토콜이다. 인터넷의 TCP/IP 프로토콜에서는, 각 컴퓨터들이 고유한 IP 주소를 가져야만 인터넷에 접속할 수 있다. 조직에서 컴퓨터 사용자들이 인터넷에 접속할 때, IP 주소는 각 컴퓨터에 반드시 할당되어야만 한다. DHCP를 사용하지 않는 경우에는, 각 컴퓨터마다 IP 주소가 수작업으로 입력되어야만 하며, 만약 컴퓨터가 네트웍의 다른 부분에 속한 장소로 이동되면 IP 주소를 새로이 입력해야 한다. DHCP는 네트웍 관리자가 중앙에서 IP 주소를 관리하고 할당하며, 컴퓨터가 네트웍의 다른 장소에 접속되었을 때 자동으로 새로운 IP 주소를 보내줄 수 있게 해준다. DHCP는 주어진 IP 주소가 일정한 시간동안만 그 컴퓨터에 유효하도록 하는 "임대" 개념을 사용한다. 임대시간은 사용자가 특정한 장소에서 얼마나 오랫동안 인터넷 접속이 필요할 것인지에 따라 달라질 수 있다. DHCP는 사용자들이 자주 바뀌는 학교와 같은 환경에서 특히 유용하다. DHCP는 사용 가능한 IP 주소의 개수보다 더 많은 컴퓨터가 있는 경우에도 IP 주소의 임대시간을 짧게 함으로써 네트웍을 동적으로 재구성할 수 있다. DHCP는 영구적인 IP 주소를 필요로 하는 웹서버에 대해서는 정적인 주소를 제공한다. DHCP는 네트웍 IP 관리 프로토콜인 BOOTP의 대안으로 사용된다. DHCP가 더욱 진보된 프로토콜이지만, 두 개의 프로토콜 모두 일반적으로 사용된다. 어떤 조직에서는 두 개의 프로토콜 모두를 사용하지만, 동일한 조직에서 그것을 언제, 어떻게 사용할지를 이해하는 것이 무엇보다 중요하다. 윈도우NT와 같은 몇몇 운영체계에는 DHCP 서버가 딸려 나온다. DHCP 또는 BOOTP 클라이언트는 네트웍이 구성될 수 있도록 각 컴퓨터에 위치하는 프로그램이다 다시 말해 IP를 수동으로 설정하지 않아도 자동으로 설정되기 위해서는 DHCP 서버가 필요하다. 일반 가정집에 공유기에도 이 기능이 존재한다. |
.
- vmlinuz 파일
vmlinuz 는 리눅스 커널을 컴파일한 결과인 바이너리 파일을 bzImage를 사용하여 gzip으로 압축한 것입니다. 리눅스 부팅시 이 파일은 압축을 해제되며 메모리에 로딩되어 리눅스의 운영이 시작됩니다. |
- initrd.img
커널 모듈을 모아놓은 이미지로 커널이 로딩되기전에 메모리에 미리 로딩됩니다. 이 모듈은 예를 들어 마우스 드라이버나 그랙픽카드 모듈 등이 있습니다. 인텔 그래픽 카드를 사용하는 본체에 리눅스를 부팅하게되면 initrd.img 의 인텔 그래픽 카드 모듈이 메모리에 로딩됩니다. |
- SYSLINUX
SYSLINUX는 MS-DOS/Windows FAT 파일 시스템에서 실행 리눅스 운영 체제 용 부트 로더입니다. 그것은 리눅스 처음 설치를 단순화하기위한, 구조 및 기타 특수 목적의 부팅 디스크 생성에 있습니다. 제대로 구성되어 있으면, SYSLINUX는 완전히 원시 부트 플로피 이미지 배포에 대한 필요성을 제거하는 데 사용할 수 있습니다. SYSLINUX 플로피는 그것을 만든 후에는 표준 MS-DOS (또는 MS-DOS 파일 시스템을 액세스의 OS 할 수있는) 도구를 사용하여 조작 할 수 있습니다. |
- pxelinux.0
syslinux 패키지에 포함되어있는 파일로 대부분의 시스템에는 기본적으로 설치가 되어있다. |
- PXE 서버 구축
필요한것
- pxe 서버만 딱 구축한다면 컴퓨터를 부팅하고 어떤 리눅스를 설치할 것인지 물어보는 단계까지 작업한 것이다.
예를 들자면 리눅스를 설치하고 안전모드로 부팅할것인가 표준모드로 부팅할것인가 고르는 이쁘지 않은 UI 있지 않은가 그것까지만 딱 나온다. 설치모드를 선택했을때 pxelinux.cfg/default 에 설정된 설치모드에 연결되어있는 vmlinuz가 실행된다.
프로그램 파일 - pxelinux.cfg/default - 실제 설치파일(리눅스 설치파일인 iso 를 다운받아 압축을 푼 파일들) |
- PXE 네트워크 부팅 과정
1. DHCP 서버를 찾는다. 6번이 진행되될때 pxelinux.cfg/default 파일에 kickstart 파일이 지정되어 있다면 바로 자동 설치가 될 것이고 리눅스 설치파일은 자신이 nfs, ftp 서버를 사용하여도 되지만 이미 공개되어 있는 저장소(예를 들어 ftp.daum.net) 같은 곳을 지정해서 사용해도 된다. 학교나 회사등 외부 네트워크로 접속하기 힘든 경우는 자신이 nfs 나 ftp 서버를 구축하고 설치파일을 자신의 서버에서 배포해야한다. |
- 1. DHCP 설치/설정/실행법
1. 설치 2 . 설정 3. 실행 |
파일명 : /etc/dhcp/dhcpd.conf |
ddns-update-style ad-hoc; allow booting; allow bootp; default-lease-time 60; max-lease-time 60; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8; class "pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; next-server TFTP서버; filename "pxelinux.0"; } #Windows 클라이언트 클래스 설정 class "ms-clients" { match if substring (option vendor-class-identifier, 0, 4) = "MSFT"; } # DHCP 서버가 돌고 있는 리눅스 머신 클래스 설정 class "linux-dhcp" { match if substring (option vendor-class-identifier, 0, 5) = "Linux"; } subnet 네트워크주소(ex.192.168.0.0) netmask 255.255.255.0 { option routers GATEWAY주소; option broadcast-address 브로드캐스트 주소; pool { deny members of "ms-clients"; deny members of "linux-dhcp"; range dynamic-bootp 192.168.0.1 192.168.0.10 ;(dhcp로 할당할 아이피 범위) } } |
설명 option domain-name-servers 는 dns 서버를 뜻한다. ip 8.8.8.8 은 google 의 dns 서버이므로 이값을 써라
class "pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; next-server TFTP서버; filename "pxelinux.0"; } 이 부분은 pxelinux.0 란 부트로더를 지정하는 부분이다. 부트로더의 이름과 이를 가지고 있는 tftp 서버 이다. dhcp와 tftp 서버의 위치가 동일하다면 자기자신의 주소를 쓰면된다. |
subnet 네트워크주소(ex.192.168.0.0) netmask 255.255.255.0 { option routers GATEWAY주소; option broadcast-address 브로드캐스트 주소; pool { deny members of "ms-clients"; deny members of "linux-dhcp"; range dynamic-bootp 192.168.0.1 192.168.0.10 ;(dhcp로 할당할 아이피 범위) } } subnet 값은 네트워크주소 즉 자신의 host ip 다시 설명하면 같은 네트워크영역에 존재하는지 판단하기 위한 수단이다. 간단하게는 자신의 ip를 적는다. netmask 는 같은 네트워크 영역인지 판단하기 위해 bit and 연산하기 위한 값이다. 모르면 그냥 255.255.255.0 적는다. gateway 주소는 외부로 나가기위한 통로를 말한다. 윈도우의 ipconfig, 리눅스의 ifconfig 로 gateway의 주소를 찾으면 된다. 브로드캐스트 주소는 네트워크 영역에 모든 host 에게 패킷을 전달할때 쓰인다. 모르면 자기자신의 ip에 마지막 주소에 255 적는다. 예를들어 자신의 ip가 192.168.0.1 이면 브로드캐스트 주소는 그냥 192.168.0.255 적는다. range 는 자동으로 ip를 할당할때 할당해줄 ip 범위이다. 모르면 자신의 ip 가 192.168.0.1 이라면 192.168.0.2 와 192.168.0.200 적는다. |
파일명 : /etc/dhcp/dhcpd.conf 좀더 간단한 설정 |
ddns-update-style none; # option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers 8.8.8.8, 8.8.4.4; option routers 172.30.1.254; option subnet-mask 255.255.255.0; default-lease-time 60; max-lease-time 72; log-facility local7; subnet 172.30.1.0 netmask 255.255.255.0 { range 172.30.1.100 172.30.1.200; } |
- 2. TFTP 설치/설정/실행법
1. 설치 redhat 계열(fedora, centos 등) : yum install tftp-server 2 . 설정 3. 실행 4. tftp 작업 디렉토리 생성 (이 위치를 잘 기억해두어라.) |
파일명 : /etc/xinetd.d/tftp |
service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot per_source = 11 cps = 100 2 flags = IPv4 } |
따로 설명은 하지 않겠다. |
- PXE boot 설정
pxelinux.0 , menu.c32 옮기기
1. syslinux 설치 (syslinux 에 pxelinux.0 가 포함되어 있다.) 2. pxelinux.0 위치 3. pxelinux.0 옮기기 4. menu.c32 옮기기 (설치시 메뉴를 보여주기 위한 파일) 5. pxelinux.0 파일이 읽어들일 config 파일 생성 sh# printf "%02X%02X%02X" 192 168 0 하면 hex 값이 나온다. 아님 계산기를 이용하도록.. |
파일명 : /tftpboot/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 1 menu label CentOS5.7(32bit) on R210 kernel centos/x86/vmlinuz append ksdevice=eth0 initrd=centos/x86/initrd.img network ks=nfs:192.168.0.10:/tftpboot/ks/ks32.cfg text |
설명 :
label 1 menu label CentOS5.7(32bit) on R210 kernel centos/x86/vmlinuz append ksdevice=eth0 initrd=centos/x86/initrd.img network ks=nfs:192.168.0.10:/tftpboot/ks/ks32.cfg text 이 부분에서 중요한 부분은 kernel centos/x86/vmlinuz 이다. pxe 부팅이 되고 label1 메뉴를 선택했을때 메모리에 로딩될 리눅스 바이너리의 위치이다. 이건 tftp 작업디렉토리 즉 현재 여기서는 tftpboot/ 디렉토리를 기준으로하는 위치이다. ksdevice=eth0 는 kickstart 파일을 가지고 올 네트워크 인터페이스 선택부이다. initrd=centos/x86/initrd.img 리눅스 커널 모듈 지정이다. tftpboot 작업디렉토리를 기준으로 한다. ks=nfs:192.168.0.10:/tftpboot/ks/ks32.cfg kickstart 파일이 위치하는 곳이다. 여기서는 현재 nfs 로 되어있다. |
/tftpboot/pxelinux.cfg/default |
timeout=30 default CentOS4 label CentOS4 kernel CentOS4/vmlinuz append ksdevice=link load_ramdisk=1 initrd=CentOS4/initrd.img network ks=nfs:NFS서버주소:/ks/ks.cfg label CentOS5 kernel CentOS5/vmlinuz append ksdevice=link load_ramdisk=1 initrd=CentOS5/initrd.img network ks=nfs:NFS서버주소:/ks/ks.cfg |
- Kickstart config 파일생성
kickstart 설정파일은 pxelinux.cfg/default 에 설정해둔 " network ks=nfs:NFS서버주소:/ks/ks.cfg "이 부분에 위치하게 놔두면 된다. http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/s1-kickstart2-options.html 아래에는 예제 .cfg 내용이다. 참고하기 바란다. 제일 중요한 부분인 |
install //install 할것인지 upgrade 할 것인지 적어준다. url --url nfs://NFS서버/pub/CentOS/5 //OS설치 이미지의 경로를 적어준다. lang en_US.UTF-8 //기본적으로 사용할 언어 선택 langsupport --default=ko_KR.UTF-8 en_US.UTF-8 //기본 언어 이외에 추가할 언어 선택 keyboard us //키보드 선택 skipx //X-Windows 환경으로 설치하는것을 skip한다. network --device eth0 --bootproto static --ip 192.168.0.100--netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 192.168.0.200 --hostname www1.abc.com //네트워크 설정 rootpw --iscrypted $1$5yAFuaK5$w8CB23gcyKeSZzU/wZbuW1 //설치시 기본 root 패스워드 firewall --disabled //firewall 사용 안함 selinux --disabled //selinux 사용안함 authconfig --enableshadow --enablemd5 //shadow 패스워드 및 md5 사용 timezone Asia/Seoul //서버 시간 설정 bootloader --location=mbr //boot 로더를 어디에 설치할 것인지에 대한 내용이다 MBR 에 설치함. clearpart --all //기존 모든 파티션을 삭제함. part / --fstype ext3 --size=1 --grow --ondisk=sda//grow 옵션은 사용가능한 공간을 모두 사용하겠다는 의미이다. ondisk 옵션은 파티션을 생성할 디스크명 이다. part swap --size=4000 --ondisk=sda part /var --fstype ext3 --size=1 --grow --ondisk=sdb %packages --resolvedeps//설치할 패키지 또는 패키지 그룹 // - 표시는 설치하지 않겠다는 의미이며 앞에 @ 가 붙어있는것은 패키지 그룹을 의미한다. e2fsprogs grub kernel @ everything -firefox %post //패키지 설치 후에 실행할 스크립트 chmod 700 /usr/bin/wget chkconfig --add mysqld |
#install 또는 upgrade install # 설치 모드 지정 (이 옵션이 없으면 그래픽 모드로 설치가 진행 됩니다.) text # 미러링 서버 지정 # 예) url --url http://centos.mirror.cdnetworks.com/centos/5.4/os/i386 # 예) nfs --server=192.168.0.1 --dir=/mnt/md0 nfs --server=192.168.0.10 --dir=/home/centos/x86(or x64) # 언어선택으로 기본설정 사용. # langsupport 에 ko_KR.UTF-8 를 추가해주면 한국어 지원. # 예) langsupport --default=en_US.UTF-8 en_US.UTF-8 ko_KR.UTF-8 lang en_US.UTF-8 langsupport --default=en_US.UTF-8 en_US.UTF-8 ko_KR.UTF-8 # 키보드 설정 keyboard us # 마우스 설정 mouse none # 네트웍 설정 # dhcp 로 ip를 가져오지 못하면 고정 ip 설정화면이 나옵니다. # 아래 주석은 여러가지 형태의 네트웍 설정방법을 예로 보여준 것 입니다. #network --bootproto dhcp #network --bootproto static network --device eth0 --bootproto dhcp #network --device eth0 --bootproto static --ip 192.168.0.251 --netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 168.126.63.1 --hostname sunxxx # root 패스워드 입니다. 원하시는걸로 바꾸시면됩니다. rootpw --iscrypted $1$5aH5feJ4$hV4mobHAt8w39MKlqIWOM. # firewall 설정 단계로 개인적으로 os 설치완료후 설정할 것을 권장합니다. firewall --disabled # selinux 설정 단계로 완벽하게 이해 하지 못한다면 disabled 하는것을 권장합니다. selinux --disabled # 시스템에서 사용될 인증 옵션을 설정합니다. 기본값 사용 authconfig --enableshadow --enablemd5 # timezone 설정 timezone --utc Asia/Seoul # 부트로더 설정 bootloader --location=mbr --driveorder=sda --append="rhgb quiet" # 시스템에 있는 모든 파티션을 삭제 합니다. clearpart --initlabel --all # 파티션을 나눕니다. part / --fstype ext3 --size=4096 ---ndisk=sda part swap --size=8192 ---ndisk=sda part /tmp --fstype ext3 --size=4096 ---ndisk=sda part /var --fstype ext3 --size=10240 ---ndisk=sda part /usr --fstype ext3 --size=30720 ---ndisk=sda part /home --fstype ext3 --size=1 --grow ---ndisk=sda #reboot # 패키지를 선택합니다. (나머지는 설치 완료 후 yum 으로 설치) %packages @development-tools xinetd ntp net-snmp net-snmp-devel # 설치 후 실행할 쉘스크립트 %post wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi |bash yum install -y srvadmin-all cp /etc/modprobe.conf /etc/modprobe.conf.bak echo "options bnx2 disable_msi=1" >> /etc/modprobe.conf |
- NFS 설치/설정/시작법
이건 옵션이다. 자신이 설치파일을 자신의 서버에서 배포하고 싶다면 NFS를 설치하고 리눅스 설치파일위치를 export 하며 kicstart 설정파일에 주소를 지정하면 된다. 만약 그렇지 않은 분들은 공개 리눅스 배포처 http://ftp.daum.net 등 미러 사이트들을 사용해도 된다.
1. 설치 redhat 계열(fedora, centos 등) : yum install nfs-utils 2 . 설정 3. 실행 |
파일명 : /etc/exports |
설정 내용 /tftpboot/ks *(ro) |
/tftpboot/ks *(ro) : /tftpboot/ks 디렉토리를 모든 ip에 대해 readonly(읽기 전용) 으로 공유 /mount 192.168.0.0/24(ro) : /mount 디렉토리를 192.168.0.~ 에 대해 readonly(읽기 전용) 으로 공유 /24 는 subnetmask 비트수이다. 즉 subnetmask 255.255.255.0 과 같은 말이다. |
- 리눅스 설치 파일 mount 시키고 nfs 를 이용하여 공유시키기
리눅스 설치 파일은 iso 파일이고 이것을 pxe에서 그냥 사용할 수 없다. iso 파일은 저장공간처럼 디렉토리에 마운트 시킬수 있고 이 마운트된 곳을 nfs 를 이용하여 네트워크 공유시킨다. 그리고 kickstart 설정 파일의 url 부분에 등록해 두면 된다.
설치 파일 받는 위치 |
iso 파일 마운트 시키고 nfs 공유하기 |
### /mount 디렉토리에 iso 파일 마운트 시키기 ### /etc/exports 설정 적용하기 *** 주의할점은 iso를 mount 한 디렉토리를 nfs 공유시 원격지 클라이언트쪽에서 안의 내용이 안보일때가 있다. 이때는 /etc/exports 에 nfs 공유를 위한 옵션에 no_root_squash 를 주어야한다. 그러면 이제 보일것이다. |
- 실행 순서
1. xinetd (tftp) |
- pxe 네트워크 부팅 설치시 노하우
딱히 대단한 노하우도 아니다 그냥 한번 읽어보면 다들 아~~ 나도 생각했어, 혹은 그런 방법이 있었지라고 공감할 것이다.
tftp 서버가 죽을수도 있다. pxe 로 많은 장비를 설치하다 보면 커널을 전송해주는 tftp 의 한계로 tftp 가 정상적으로 동작하지 않을 수 있다 wait , cps , instances, max_load, per_source 값을 조정하기 바란다. |
dhcp 서버를 최대한 활용하라. 많은 장비를 설치하게 되면 dhcp 에서 초기 무작위로 ip를 할당하는데 특정 장비에 특정한 ip를 할당하게 하면 설치후 관리가 편리하다. |
/etc/hosts 배포 호스트들을 일일이 ip로 접근하는 것보다 하나의 hosts 파일을 모든 장비에 전송하여 이름으로 편리하게 관리하자. |
장비 전체를 하나의 장비에서 관리하자. ssh key 파일을 모든 장비에 전송하는 쉘 프로그램을 만들어 이를 전부 전송하면 ssh 연결에 비밀번호를 요구하지 않고 자동으로 로그인이 가능하다.(키 배포후 최초 한번의 비밀번호만 입력하면 된다.) 이를 이용하여 모든 장비에 동일한 ssh 명령을 내리는 쉘 프로그램만 작성한다면 하나의 장비에서 모든 장비를 관리할 수 있어 매우 편리하다. 또한 ssh 명령 뿐아니라 scp 명령을 모든 장비에 내리는 쉘 프로그램을 만들어 파일 배포시 편리하게 활용할 수 있다. ssh 자동로그인은 http://onecellboy.tistory.com/54 참고바란다. |
hostname 바꾸기 pxe로 설치하면 모든 장비의 hostname 이 동일하다. 이도 전체 장비에 명령을 내리는 쉘 프로그램을 작성하여 한번에 바꿀 수 있다. 이는 미리 만든 /etc/hosts 파일을 활용한 쉘 프로그램이라면 좀더 손쉽게 hostname을 전부 바꿀 수 있다. |
tftp 접속 불가, nfs 접속 불가등 방화벽을 확인해주시기 바랍니다. 방화벽 룰을 추가하거나 귀찮으면 방화벽을 꺼주십시오. |
결론은 이렇다. 장비를 많이 설치하다보면 장비하나씩 설정하고 파일배포하기가 힘들다. dhcp 서버와 ssh(자동로그인) 를 활용한 쉘 프로그램을 작성하면 보다 편히 많은 장비를 한번에 관리할 수 있다.
'학습자료(~2017) > 리눅스' 카테고리의 다른 글
[리눅스] yumdownloader (rpm 다운받기) (0) | 2012.10.05 |
---|---|
[리눅스] netlink (네트워크 변화 감지) 자료조사 (1) | 2012.10.02 |
리눅스 커널 소스 분석하기 좋은 사이트 (0) | 2012.09.25 |
[리눅스]표준 에러 코드 (2) | 2012.09.05 |
[리눅스] udev 관련 자료조사 (0) | 2012.09.04 |