OCI 3. OCI Oracle Linux 인스턴스에서 바꾼 hostname 이 부팅 때 덮어써지지 않게 하기 - PCMEISTER 기술 노트
본문 글자 크기

OCI 3. OCI Oracle Linux 인스턴스에서 바꾼 hostname 이 부팅 때 덮어써지지 않게 하기

새 노드 세 대의 이름을 pcm-yny-01, pcm-kix-01, pcm-nrt-01 처럼 리전별로 맞추기로 하고, 셋팅 스크립트에서 호스트 이름을 정하게 했습니다. 그런데 OCI 의 Oracle Linux 이미지는 부팅할 때 인스턴스 메타데이터를 보고 호스트 이름과 /etc/hosts 를 다시 씁니다. hostnamectl 로만 바꿔 두면 언젠가 재부팅할 때 콘솔에서 정한 이름으로 돌아갈 수 있다는 뜻입니다.

이 동작은 /etc/oci-hostname.conf 의 PRESERVE_HOSTINFO 로 정합니다. 3 으로 두면 호스트 이름도 /etc/hosts 도 건드리지 않습니다. cloud-init 도 따로 호스트 이름을 설정하려 들어서 그쪽에도 그대로 두라고 알려 줘야 합니다.

sudo sed -i 's/^PRESERVE_HOSTINFO=.*/PRESERVE_HOSTINFO=3/' /etc/oci-hostname.conf
printf 'preserve_hostname: true\n' | sudo tee /etc/cloud/cloud.cfg.d/99_pcm_hostname.cfg
sudo hostnamectl set-hostname pcm-yny-01

이렇게 하면 /etc/hosts 는 이제 아무도 관리해 주지 않습니다. 자기 이름 줄이 없으면 sudo 할 때마다 이름을 못 찾는다는 경고가 나올 수 있으니, 셋팅 스크립트가 사설 IP 와 이름으로 한 줄을 직접 쓰게 했습니다.

10.30.65.10 pcm-yny-01

이 설정을 넣은 뒤로 세 노드 모두 재부팅을 몇 번 거쳤는데 이름이 그대로입니다.


콘솔 쪽 이야기도 하나 있습니다. 인스턴스를 만들 때 네트워킹 단계의 VNIC 설정에 “호스트 이름” 칸이 따로 있습니다. 여기를 비우고 VNIC 이름만 넣으면 그 VNIC 이름이 호스트 이름이 됩니다. 처음부터 호스트 이름 칸에 원하는 이름을 넣으면 VCN 내부 DNS 이름도 그걸로 잡히니 맞춰 두는 게 깔끔합니다.

저는 도쿄 노드를 만들 때 이걸 헷갈려서 VNIC 쪽 호스트 이름이 pcm-nrt-01-vnic 으로 들어갔습니다. OS 호스트 이름은 위 설정으로 고정해 두었으니 쓰는 데 지장은 없었습니다. 내부 DNS 이름만 다를 뿐입니다.

OCI 시리즈의 글

완료 글 30개 인터넷