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

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

独自ドメインの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



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

■手順(①network.serviceを停止し、NetworkManager.serviceのみを起動するパターン)


1.networkサービスは無効化/停止する。
 # systemctl stop network.service
   # systemctl disabled network.service


2.NetworkManagerサービスの自動起動設定および起動済みであることを確認する。
 # systemctl status NetworkManager.service
 # systemctl is-enabled NetworkManager.service
 
3./etc/dhcp/dhclient.conf は存在しないようにする。
 # ls -l /etc/dhcp/dhclient.conf      ※存在しているようであれば、ファイル削除を行う。

4./etc/resolv.confの設定内容を確認する。
 # cat /etc/resolv.conf           ※AWSのデフォルトドメインが記載されていることを確認
 
5.NICのパラメータを下記のとおり変更する。(赤字部分を追記する)
 # cp -p /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/org_ifcfg-eth0
 # vi /etc/sysconfig/network-scripts/ifcfg-eth0

  BOOTPROTO=dhcp       ※変更なし
  DEVICE=eth0          ※変更なし
  HWADDR=06:2d:f7:a3:e7:6e   ※変更なし
  ONBOOT=yes          ※変更なし
  TYPE=Ethernet         ※変更なし
  USERCTL=no          ※変更なし
  PEERDNS=no
 
  DNS1=172.17.12.247      ※任意のDNSサーバを指定する。(プライマリー)
  DNS2=172.17.12.213      ※任意のDNSサーバを指定する。(セカンダリー)
  DOMAIN=example.local     ※任意のドメイン名を指定する。
 
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ファイルを書き換えないように。

7.NetworkManagerサービス再起動する。
 # systemctl restart NetworkManager.service
 # systemctl status NetworkManager.service

8./etc/resolv.confの設定内容を確認する。
 # cat /etc/resolv.conf           ※独自ドメインの設定がされていることを確認する。