becool

20210624 (목) FTP, DHCP, PXE server, kickstart 본문

linux

20210624 (목) FTP, DHCP, PXE server, kickstart

gusalstm 2021. 6. 24. 16:59
반응형

FTP 서버  P586

 원격으로 파일을 전송하는 프로토콜/서비스

 동작모드 Active / Passive

 

[root@dns ~]# yum install vsftpd^C
[root@dns ~]# systemctl start vsftpd^C
[root@dns ~]# firewall-cmd --add-service=ftp^C
[root@dns ~]# vim /etc/vsftpd/vsftpd.conf^C

클라이언트에서 파일 업로드/다운로드

 

-----------------------------------------------------------------------

 

PXE 서버 https://www.server-world.info/en/note?os=CentOS_7&p=pxe&f=1

  Preboot eXecution Environment

  네트워크가 연결된 시스템이 처음 부팅 시 설치 및 설정을 자동으로 진행

  DHCP서버 + FTP서버 (+ WEB서버) + syslinux 

      ip정보       iso이미지                  리눅스시스템의 부팅

 

패키지 : syslinux xinetd tftp-server dhcp httpd

서비스 구성  ( 순서 상관 없음)

  1) xinetd구성 → tftp 활성화

  2) dhcp구성  → IP할당, PXE 서버 주소 및 파일 경로

  3) tftp 구성   → 이미지 파일들 복사 및 메뉴파일 작성

  4) http 구성  → PXE 접근 제한 설정

서비스 활성화 : dhcp, tftp, httpd, xinetd

방화벽 설정 : tftp, http, dhcp

→ 가상호스트 디렉터리 경로 = 마운트 경로

가상호스트 알리아스 = pxelinux.cfg/default 에서 ip 주소 뒤의 이름

pxelinux.cfg/default 에 kernel/append 

 

 

[root@web ~]# yum install -y syslinux xinetd tftp-server dhcp httpd
[root@web ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@web ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@web ~]# vim /etc/xinetd.d/tftp 

 disable = no → 활성화 수정 후 저장

  server = /usr/sbin/in.tftpd
[root@web ~]# systemctl start xinetd
[root@web ~]# systemctl enable xinetd

[root@web ~]# vim /etc/dhcp/dhcpd.conf 

  option domain-name "school.exam.com";
  option domain-name-servers 10.0.2.10; → DNS 주소
  filename        "pxelinux.0";
  next-server     10.0.2.30; → WEB 서버 주소

 …

subnet 10.0.2.0 netmask 255.255.255.0 {
  range 10.0.2.1 10.0.2.200;  → 대역대

     # range 10.0.2.40 10.0.2.50 ; → 40~50사이의 아이피로만 dhcp 할당함.
  option routers 10.0.2.1;     → Gateway 주소
}

 

[root@web ~]# systemctl start dhcpd
[root@web ~]# mkdir -p /var/pxe/centos7
[root@web ~]# mkdir /var/lib/tftpboot/centos7

[root@web ~]# mount -t iso9660 -o loop /mnt/iso/CentOS-7-x86_64-DVD-2009.iso /var/pxe/centos7/
mount: /dev/loop0 is write-protected, mounting read-only
[root@web ~]# mount |grep cent
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/mnt/iso/CentOS-7-x86_64-DVD-2009.iso on /var/pxe/centos7 type iso9660 (ro,relatime)

[root@web ~]# cp /var/pxe/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/
[root@web ~]# cp /var/pxe/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/
[root@web ~]# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
[root@web ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

 

timeout 100
default menu.c32

menu title ########## PXE Boot Menu ##########
label 1
        menu label ^1) Install CentOS 7
        kernel centos7/vmlinuz
        append initrd=centos7/initrd.img method=http://10.0.2.30/centos7 devfs=nomount
  → 서버 주소 10.0.2.30+경로
label 2
        menu label ^2) Boot from local drive
        localboot

 

[root@web ~]# vim /etc/httpd/conf.d/pxeboot.conf
#CREATE NEW
Alias /centos7 /var/pxe/centos7
 <Directory /var/pxe/centos7>
        Options Indexes FollowSymLinks
        # IP address you allow to access
        Require ip 10.0.0.0/24   → 접속을 허가할 IP대역대를 선정 띄어쓰기로 여러 대역대 설정 가능

       (all granted 설정가능)

 </Directory>

 

[root@web ~]# firewall-cmd --add-service=tftp
[root@web ~]# firewall-cmd --add-service=http
[root@web ~]# firewall-cmd --add-service=dhcp
[root@web ~]# systemctl start tftp
[root@web ~]# systemctl start dhcpd
[root@web ~]# systemctl start httpd

 

클라이언트 > 설정 > 네트워크 > 네트워크어댑터사용하기 > nat network선택 > 추가

클라이언트 > 설정 > 시스템 > 네트워크 체크박스

 

※ 테스트 (클라이언트) https://ipxe.org/start 

 BIOS(F12) -> Ctrl + B 입력 : iPXE> 커맨드 모드

 dhcp 로딩을 통하여 정보를 확인하면 본인의 ip, dns, gateway등이 정상적으로 로드되었음을 확인할 수 있다.

 iPXE> dhcp

 DHCP (net0 08:00:27:4d:87:ac) ...... ok

 iPXE> show ip

 net0.dhcp/ip:ipv4 = 10.0.2.8

 iPXE> show dns

 net0.dhcp/dns:ipv4 = 10.0.2.10

 iPXE> route

 net0: 10.0.2.8/255.255.255.0 gw 10.0.2.1

결과 화면(클라이언트)

 

잘안될때, 서비스stop후 start (특히 tftp)

/var/log/messages 확인

설치 중에 "/ sbin / dmsquash-live-root : line 273 : write error : No space left on device" 메세지로 인하여 실패하는경우 가상머신 메모리가 부족해서 발생 → 2048 이상의 메모리를 할당해야한다.

 


[root@localhost /]# service xinetd start
[root@localhost /]# service dhcpd start
[root@localhost /]# service portmap start
[root@localhost /]# service nfs start

 

※ 현재 dhcp 가 정상작동할때도 있고, DHCPACK 패킷이 제대로 안들어오는 경우도 있음.

 정상적으로 ip를 부여받지 못하면, 게이트웨이/dns 모두 임의의 값이 되므로 pxe 도 실패

 

kickstart

[root@web ~]# mkdir /var/www/html/ks

[root@web ~]# vim /var/www/html/ks/centos7-ks.cfg

install
autostep
reboot
#auth --enableshadow --passalgo=sha512
url --url=http://10.0.2.30/centos7/
ignoredisk --only-use=sda
keyboard us
lang en_US.UTF-8
network --bootproto=dhcp --ipv6=auto --activate --hostname=localhost
rootpw 1234
timezone Asia/Seoul --isUtc --nontp
bootloader --location=mbr --boot-drive=sda
zerombr
clearpart --all --initlabel
autopart → 파티션옵션과 같이쓸수 없음. 아래의 주석을 사용하였을 시, installation destination을 설정하라는 경고문이 발생하므로 autopart로 변경하였음
#part /boot --fstype="xfs" --ondisk=sda --size=500
#part pv.10 --fstype="lvmpv" --ondisk=sda --size=51200
#volgroup VolGroup --pesize=4096 pv.10
#logvol / --fstype="xfs" --size=20480 --name=root --vgname=VolGroup
#logvol swap --fstype="swap" --size=4096 --name=swap --vgname=VolGroup
%packages
@core
%end

설치 진행중

 

 

728x90

'linux' 카테고리의 다른 글

20210629 (화) IP alias  (0) 2021.06.29
20210625 (금) glusterfs, 가상인터페이스 생성  (0) 2021.06.25
20210624 (목) DHCP  (0) 2021.06.24
20210622 (화) Nginx  (0) 2021.06.22
20210622 (화) webservice  (0) 2021.06.22
Comments