PXE 설치 서버와 도커
PXE 설치 서버 개요
- 시나리오
- 회사에서 이번에 리눅스 전용의 교육장을 구축하려고 한다. 그래서 100대의 컴퓨터에 가상머신이 아닌 직접 우분투를 설치하려고 한다. 처음에는 우분투 DVD 몇 개를 준비한 후, 들고 왔다갔다하면서 설치할 계획이었다. 시간이 오래 걸리겠지만 가능한 방법이다. 그런데 보안 문제 때문에 교육장 컴퓨터는 입/출력을 할 수 있는 Floppy/DVD/USB 장치를 모두 제거했다는 문제가 있다. 이 상태로는 3장에서 배운 설치 방법으로 설치할 방법이 없다.
- 해결책
- PXE 설치 서버
PXE 설치 서버의 개념과 구현
- PXE 설치 서버의 개념도
실습
Server
- PXE 서버 설치
- apt -y install isc-dhcp-server tftpd-hpa inetutils-inetd vsftpd pxelinux
- 방화벽 비활성화 - 관련 포트를 열어야 하는데, 관련 포트가 여러 개이므로
- ufw disable
- 우분투 20.04 Server DVD 파이를 다운로드하고 필요한 파일을 복사하자
- /srv/ftp/pub 폴더를 생성하고 이 폴더에 ISO 파일을 다운로드
- mkdir /srv/ftp/pub
- cd /srv/ftp/pub
- chmod -R 777 /srv/ftp/pub
- wget http://dw.hanbit.co.kr/ubuntu/20.04/ubuntu-20.04-live-server-amd64.iso
- ls -l
- 다운로드한 ISO 파일을 마운트해서 일부 파일을 /srv/tftp 폴더에 복사
- mount ubuntu-20.04-live-server-amd64.iso /mnt - ISO 파일 마운트
- cp /mnt/casper/vm* /srv/tftp
- cp /mnt/casper/initrd* /srv/tftp
- cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/
- umount /mnt
- 부팅 관련 파일을 /srv/tftp 폴더에 다운로드 한다.
- cd /srv/tftp
- wget http://dw.hanbit.co.kr/ubuntu/20.04/pxelinux.0
- ls -l
- DHCP, TFTPD 등을 설정하자. 추가로 PXE 부팅을 허용하도록 추가해주는 작업만 하면 된다.
- gedit /etc/dhcp/dhcpd.conf
- subnet 192.168.111.0 netmask 255.255.255.0 {
option routers 192.168.111.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.111.200 192.168.111.220;
option domain-name-servers 192.168.111.2;
allow booting;
allow bootp;
next-server 192.168.111.100;
option bootfile-name "pxelinux.0";
}
- /srv/tftp/pxelinux.cfg 폴더를 생성한 후 default 이름의 빈 파일을 만든다.
- mkdir pxelinux.cfg
- cd pxelinux.cfg
- touch default
- /srv/tftp/pxelinux.cfg/default 파일에 다음 내용을 입력하자.
- gedit /srv/tftp/pxelinux.cfg/default
- DEFAULT Ubuntu_Auto_Install - 기본 부팅 Label 지정
LABEL Ubuntu_Auto_Install - Label 시작
kernel vmlinuz
initrd initrd
append ip=dhcp url=ftp://192.168.111.100/pub/ubuntu-20.04-live-server-amd64.iso
- gedit /etc/vsftpd.conf 파일을 열고 25행 anonymous_enable=NO를 YES로 변경
- PXE 설치 서버와 관련된 isc-dhcp-server, vsftpd, tftpd-hpa 서비스를 재시작, 상시 가동 한다.
- systemctl restart/enable isc-dhcp-server
- systemctl restart/enable vsftpd
- systemctl restart/enable tftpd-hpa
- 직접 구축할 DHCP 서버를 사용하기 위해 VMware가 제공하는 DHCP 서버 기능을 끄자.
- Virtual Network Editor에서 VMnet8의 Use local DHCP service to distribute IP address to VMs 체크 해제
새 가상머신
- Memory, Processors, Hard Disk, Network Adapter, Display 만 있는 가상머신을 직접 만들자
- 주의할 점은 RAM을 4GB로 설정해야한다.
- 가상머신을 부팅하면 자동으로 IP 주소를 할당받고, 스스로 tftp에 접속해서 파일을 다운로드할 것이다.
- 성공하면 다음과 같은 설치 화면이 나올 것이다.
도커의 개념
- 도커Docker란 작은 운영체제를 포함한 가상화 기술을 의미
- 가상 컴퓨터는 완전한 OS를 포함한 독립된 컴퓨터로 간주되며 상당히 무거움
- 도커는 가상 컴퓨터와 거의 비슷한 기능을 갖고 있으면서도 훨씬 가볍게 생성하고 운영
- 도커에서 사용되는 작은 컴퓨터를 컨테이너Container라고 부른다.
가상 컴퓨터와 컨테이너의 차이점
실습
- 도커 패키지 설치
- apt -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
- GPG키 추가
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
- curl 명령은 커맨드 라인 기반으로 웹의 다운로드/업로드를 요청하는 명령이다.
- OK가 뜨면 성공
- 도커 저장소 추가
- add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- apt update 명령으로 추가한 저장소를 적용
- 도커관련 패키지 설치
- apt -y install docker-ce docker-ce-cli containerd.io
- 만약 '문제를 바로잡을 수 없습니다. 망가진 고정 패키지가 있습니다.' 라는 에러가 뜨면 아래와 같이 입력
- curl -O http://archive.ubuntu.com/ubuntu/pool/main/libs/libseccomp/libseccomp2_2.5.1-1ubuntu1~20.04.2_amd64.deb
- dpkg -i libseccomp2_2.5.1-1ubuntu1~20.04.2_amd64.deb
- 도커가 잘 작동하는지 테스트
- docker run hello-world
- 도커 사용법을 익히고 센토스의 Bash 셀을 설치하고 사용해보자.
- 먼저 https://hub.docker.com 에 접속해 centos 검색
- 다운로드 수가 많은 centos를 클릭하고 다운로드하기 위한 방법 확인
- 센토시 이미지를 다운로드
- docker pull centos
- 컨테이너를 실행해보자
- docker run -it centos bash -> 실행하면 프롬프트가 변경될 것이다.
- 이제 센토스 Bash 셀 명령을 사용할 수 있다. 센토스의 버전을 확인해보자.
- cat /etc/system-release
- 확인했으면 exit 명령으로 컨테이너를 종료한다.
- 설치된 컨테이너의 이름, ID, 크기 등을 확인해보자.
- docker images
- 설치된 컨테이너의 상세한 내용을 확인해보자.
- docker container ls -a
- 컨테이너 이미지를 삭제해보자
- docker rm 컨테이너ID
'Linux' 카테고리의 다른 글
7월 28일 Linux (0) | 2022.07.28 |
---|---|
7월 27일 Linux(1) (0) | 2022.07.27 |
7월 26일 Linux(2) (0) | 2022.07.26 |
7월 26일 Linux(1) (0) | 2022.07.26 |