自由気ままに書いちゃおう

好きなことをつらつらと・・・

独自ドメインのDNSサーバ/ドメイン名を使用したい(パターン③)

■環境
・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サーバ、ドメイン情報)の反映が異なるため、注意が必要
この記事では、上記③の場合について記載する

 

上記①については、下記参照。

www.guri2o1667.work

 

上記②については以下参照。

www.guri2o1667.work

 

■やりたいこと
独自ドメインのDNSサーバを参照したい。
 → AWS環境のデフォルトのドメイン名ではなく、任意のドメイン名(例:example.local)を設定したい。

■手順(③network.service , NetworkManager.serviceの両方を起動する)

1.NetworkManagerサービスが自動起動設定および起動済みであることを確認する。
 # systemctl status NetworkManager.service
   # systemctl is-enabled NetworkManager.service

2.networkサービスの自動起動設定および起動済みであることを確認する。
 # systemctl status network.service
 # systemctl is-enabled network.service

 
3.ifcfgファイルに、PEERDNS=noを設定
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
HWADDR=06:b5:65:73:bd:9c
ONBOOT=yes
TYPE=Ethernet
USERCTL=no            ※一般ユーザがインタフェースの有効/無効を切り替えられるかどうか。yesだと切り替え可能。
PEERDNS=no            ※DNS/DHCP設定時に、/etc/resolv.confの設定を変更するかどうか。noなら変更しない。
 DNS1=172.17.12.247      ※任意のDNSサーバを指定する。(プライマリー)
 DNS2=172.17.12.213      ※任意のDNSサーバを指定する。(セカンダリー)
 DOMAIN=example.local     ※任意のドメイン名を指定する。
4.cloud.cfgを以下の通り設定
# cat /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を書き換えないように。
 
network:
  config: disabled                            ※ifcfgファイルを書き換えないように
 
5./etc/resolv.conf を適宜修正
 
6.OS再起動