■環境
・EC2インスタンス(RHEL7.6)
・EC2インスタンスにアタッチしているENI(NIC)は一つのみとする。
■前提
EC2インスタンスを起動した際、通常はnetwork.serviceとNetworkManager.serviceの両方が起動している。
そのため、ネットワーク関連のサービスを起動するパターンは以下3つが考えられる。
① network.serviceを停止し、NetworkManager.serviceのみを起動する。
② NetworkManger.serviceを停止し、network.serviceのみを起動する。
③ network.service , NetworkManager.serviceの両方を起動する。
上記①~③のパターンによって、EC2インスタンスが起動する際にAWS環境内のDHCPサーバから取得する情報(DNSサーバ、ドメイン情報)の反映が異なるため、注意が必要。
この記事では、まずは上記①の場合について記載する。
上記②については以下参照。
上記③については以下参照。
■やりたいこと
独自ドメインのDNSサーバを参照したい。
→ AWS環境のデフォルトのドメイン名ではなく、任意のドメイン名(例:example.local)を設定したい。
■手順(①network.serviceを停止し、NetworkManager.serviceのみを起動するパターン)
1.networkサービスは無効化/停止する。
# systemctl stop network.service
# systemctl disabled network.service
# systemctl status NetworkManager.service
# systemctl is-enabled NetworkManager.service
# ls -l /etc/dhcp/dhclient.conf ※存在しているようであれば、ファイル削除を行う。
4./etc/resolv.confの設定内容を確認する。
# cat /etc/resolv.conf ※AWSのデフォルトドメインが記載されていることを確認
# cp -p /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/org_ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
6./etc/cloud/cloud.cfgを以下の通り修正する。
# cp -p /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg_org
# vi /etc/cloud/cloud.cfg
users:
- default
disable_root: 1
ssh_pwauth: 0
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
resize_rootfs_tmp: /dev
ssh_deletekeys: 0
ssh_genkeytypes: ~
syslog_fix_perms: ~
cloud_init_modules:
# - migrator
# - bootcmd
# - write-files
# - growpart
# - resizefs
# - set_hostname
# - update_hostname
# - update_etc_hosts
# - rsyslog
# - users-groups
# - ssh
cloud_config_modules:
# - mounts
# - locale
# - set-passwords
# - rh_subscription
# - yum-add-repo
# - package-update-upgrade-install
# - timezone
# - puppet
# - chef
# - salt-minion
# - mcollective
# - disable-ec2-metadata
# - runcmd
cloud_final_modules:
# - rightscale_userdata
# - scripts-per-once
# - scripts-per-boot
# - scripts-per-instance
# - scripts-user
# - ssh-authkey-fingerprints
# - keys-to-console
# - phone-home
# - final-message
# - power-state-change
system_info:
default_user:
name: ec2-user
lock_passwd: true
gecos: Cloud User
groups: [wheel, adm, systemd-journal]
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash
distro: rhel
paths:
cloud_dir: /var/lib/cloud
templates_dir: /etc/cloud/templates
ssh_svcname: sshd
# vim:syntax=yaml
preserve_hostname: true ※ホスト名は書き換えないように。
manage_resolv_conf: false ※resolv.confを書き換えないように。ただし、NetworkManager使用時には効果なし(っぽい)
network:
config: disabled ※ifcfgファイルを書き換えないように。
# systemctl restart NetworkManager.service
8./etc/resolv.confの設定内容を確認する。
# cat /etc/resolv.conf ※独自ドメインの設定がされていることを確認する。