[ESXi 6.5] Photon OS 설치하여 Docker Host로 운영하기 Computer Tip

거의 지난 주말부터 ESXi 서버에 대해서 살펴보고 있습니다.

ESXi 서버는 그 안에 필요한 VM을 하나 하나 설치하는 것이니,
쉽게 말해 나만의 IaaS 를 구축한다고 할 수 있겠습니다.
(ESXi 서버가 https 포트만 포트포워딩 시켜 놓으면 외부에서도 
 작업을 거의 다 할 수 있는 것이 환상입니다)

그런데 CaaS 처럼 구축하기 위해서는 역시나 ESXi 서버에 Docker Host 기능을
하는 Linux를 설치하여야 합니다.

여기에서도 잠깐, 아주 오래전 (약 10년전) 우분투 설치를 하다보면
"최소 가상머신 설치" 라는 것이 있었습니다.
JeOS (쥬~스 라고 발음했던 기억이) 라고 Just Enough OS 라고 불려
최소로 설치하는 것을 의미했습니다.

마치 Docker에서 image 를 최소화 하려는 것과 유사하지요.

그러다가..

구글로 간단히 검색을 하다보니, VMWare에서 만든 컨테이너에 최적화된 Linux OS 라고 설명되어 있네요.
뭐 기존 방식처럼 우분투 18.04 서버를 설치해도 되지만, 이건 뭐지? 싶어 해 보았습니다.

ISO 를 다운받아 설치해도 되지만,

OVA를 이용하면 ESXi 에 쉽게 가져올 수 있겠더군요.
AWS, GCE, Azure 도는 라즈베리파이 용 등등 미리 준비되어 있는 것이 인상깊네요.

나중에 확인을 해 보니, 우분투 18.04 서버를 설치하면 2G~4G 정도 차지한 것에 비해, 위의
OVA로 설치하고 확인해 보면,  374M 밖에 차지하지 않고 있습니다.
마치 JeOS 처럼 최적화 작업을 잘 해 놓은 것 같군요.

위에 OVA를 다운로드 한 후,

ESI 콘솔에서 새로운 가상머신 추가를 눌러 마법사가 다음처럼 뜹니다.

OVA 파일에서 가상 시스템 배포 를 선택하고, "다음"

이름을 지정하고, 하단의 파일을 선택하라는 것을 선택하고,

다운로드 받아 놓은 ova 확장자가 붙은 파일을 선택합니다.

"다음"을 누르고

설치될 스토리지를 선택합니다.

EULA 에 동의하고 "다음"

배포옵션도 기본으로 하고 "다음"

"완료" 합니다.

하단의 "최근 작업"에 진행되는 프로세스가 종료될 때까지 기다립니다.

해당 가상머신의 옵션 변경을 위하여 상단에 "종료"를 눌러 종료시키고, "편집"을 누릅니다.


기본적으로 "기타 Linux (32비트)" 로 게스트 OS 버전이 되어 있는데 이것을 "기타 Linux (64비트)"로 수정합니다.

이제 다시 파워온을 누르면,

이렇게 첫 화면이 나오고, 

수십초 이내에 로그인 프럼프트가 나타납니다.

root 계정에 암호는 최초 changeme 입니다.
그러면 암호를 수정하라고 나오는데 여기서 수정합니다. 너무 짧은 암호를 넣으면 안되는데,
정상 로그인을 하고 나서 passwd 명령을 이용하면 경고는 뜨지만 1자짜리 암호로 수정할 수도 있습니다.
(절대 운영환경에서는 짧게 하지 마셔요)

처음에는 DHCP로 IP를 잡게 되어 있는데,

정적 IP를 넣어주기 위하여,

cd /etc/systemd/network
이동 후 

mv 99-dhcp-en.network 10-static-en.network
라고 변경 후,

chmod 644 10-static-en.network
라고 퍼미션을 지정해 줍니다.
다음과 같이,

[Match]
Name=eth0

[Network]
DHCP=no
Domains=DH-P001 domain.local
Gateway=192.168.10.1
Address=192.168.110.11/16
DNS=192.168.10.1 168.126.63.1 8.8.8.8
NTP=kr.pool.ntp.org

[DHCP]
UseDNS=false

와 같이 넣어줍니다.

systemctl restart systemd-networkd
라고 명령하여 고정 IP로 변경시키고,

ip a
라는 명령으로 변경되었는지 확인합니다.

이제 ping 으로 디폴트 게이트웨이 까지 나가는지 확인하려는데 ping 이 없습니다.
오호라.. 최소화 버전이라 ping (iputils 라는 패키지에 들어 있습니다) 도 빠져 있네요.

tdnf install -y iputils
라고 설치하면 ping 이 설치됩니다. (tdnf 대신 yum 을 해도 되는데 photon 공식 패키지 매니저가 tdnf 이네요)

최신 서비스 매니저인 systemd 의 systemctl 을 이용하여 ssh 서버가 설치되어 있는지 확인하니 있네요.

systemctl status sshd

이제는 해당 IP로 외부에서 ssh 접속이 가능합니다.
(root 계정으로 로그인을 할 수 있는데, management 별도 망이 아니라면 root 로그인을 못하게 /etc/ssh/sshd_config 에서 설정합니다)

다음은 docker 를 돌려보기 위하여 docker info 를 돌렸더니 docker 서비스가 돌고 있지 않다는 메시지가 나옵니다.

systemctl status docker
로 확인하니 dead 라는 단어가 보이네요.

systemctl enable docker

systemctl start docker

라고 하고 docker info 명령을 주면 잘 실행되고 있는 것을 확인해 볼 수 있습니다.

다음은 docker-compose 를 확인하니 설치가 안 되어 있네요. 이것은 별도 공식 가이드에 따라 다음고 같이 설치됩니다.

curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

(버전은 최신 것으로 확인하십시오)

chmod +x /usr/local/bin/docker-compose
이렇게 하면 잘 실행됩니다.


다음은 tmux 용 구성입니다.

tdnf install -y tmux
로 설치합니다.

vi /root/.tmux.conf 
라고 파일을 열어

set-option -g mouse on
set-option -g history-limit 10000
bind \ split-window -h -c '#{pane_current_path}'  # Split panes horizontal
bind - split-window -v -c '#{pane_current_path}'  # Split panes vertically

라는 내용을 넣어 줍니다.

그리고 /root/.bash_profile 에는 다음의 내용을 넣어줍니다.

#!/usr/bin/bash
alias tm='tmux new-session -d && tmux split-window -h && tmux select-pane -L && tmux attach-session -d'
alias ll='ls -l'

로그아웃 했다가 다시 들어가서,

tm 
이라고 명령을 쳐 보면,

위와 같이 잘 화면을 나누어 작업할 수 있습니다.

호스트명을 지정하기 위하여

/etc/hostname 
/etc/hosts
의 마지막 127.0.0.1 항목에 호스트명을 넣어주고 reboot 합니다.

우분투 서버는 디폴트로 방화벽을 켜지 않습니다만,
포톤 OS는 디폴트로 ssh 접속만 열고 다 막아 놓습니다.

따라서 만약 docker (SSL) 접속을 외부에서 하려면 2376 포트를 열어 놓아야 하는데,


위에서 처럼,

echo "iptables -I INPUT 1 -p tcp --dport 2376 -j ACCEPT" >> /etc/systemd/scripts/iptables
라고 추가해주고,

systemctl restart iptables
라고 하여 적용시킵니다.

iptables -L
이라고 명령을 내려 확인합니다.

그리고 운영하다보니 TimeZone이 UTC로 되어 있어 이를 KST로 변경하는 방법입니다.

ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
라고 해 주면 바로 반영됩니다.


이렇게 간단한 포톤 OS (뭐 기존의 fedora 계열하고도 거의 유사한 듯)에 관하여 살펴보았습니다.


어느 분께는 도움이 되셨기를..

핑백

  • [지훈현서] [ESXi 6.5] Photon OS 설치하여 Docker Host로 운영하기 - DEVBLOG - 개발자 메타블로그 2018-11-23 04:26:26 #

    ... 8년 11월 23일 / 미분류 [지훈현서] [ESXi 6.5] Photon OS 설치하여 Docker Host로 운영하기 원문 링크 [ESXi 6.5] Photon OS 설치하여 Docker Host로 운영하기 미리보기 거의 지난 주말부터 ESXi 서버에 대해서 살펴보고 있습니다. ESXi 서버는 그 안에 필요한 VM을 하나 하나 설 ... more

  • 지훈현서 : [ESXi 6.5] Photon Linux의 HDD 크기를 실시간으로 증가시키기 2018-12-03 15:26:31 #

    ... 지난번에 ESXi 6.5 서버에 가장 최적화 되어있는 Photon Linux 설치하여 사용해보기를 살펴보았습니다. 그런데 이것을 운영을 하다보니, HDD가 기본이 16G 밖에 되지 않아 조금만 돌려보다보면문제가 될 ... more

  • 지훈현서 : Ansible에서 ESXi 6.5 VM 관리하기 2018-12-13 15:47:09 #

    ... 회사에서 어찌 저찌 하다보니 혼자 DevOps를 구축하게 되었네요.이제 그 끝이 보여갑니다. - Ryzen으로 ESXi 서버 구축하기- Photon Linux로 Docker Host 구축하기- 맥 시에라를 인텔CPU 기반 ESXi 서버에서 VM으로 돌려보기- Photon Linux에 Ansible을 포함한 젠킨스 컨테이너 만 ... more

  • 지훈현서 : [Docker] Redis 서버 구성 및 웹 UI 확인 2019-08-22 07:41:47 #

    ... B가 필요하겠다는 생각이 드네요.. 암튼 ESXi 서버에 포톤OS를 Docker Host로 돌리면,아주 좋은 컨테이너용 VM이 됩니다. (Photon OS로 Docker Host 돌려보기 참고) 다음은 ESXi 위에 Photo OS가 있고, 그 위에 Redis 서버를 돌려봅니다. 그런데 필요에 따라 해당 Redis의 키를 직 ... more

덧글

댓글 입력 영역

구글애드텍스트