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

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

インスタンス作成時のユーザデータについて

EC2インスタンスを生成する際に、ユーザデータに情報を入力することでコマンド実行等ができる。

下記サンプルコードによりインスタンス作成時に自動的に処理を実行してくれる。

■サンプルコードの内容
・SELinuxを無効化
・IPv6を無効化(カーネルレベルで無効化)
・タイムゾーンをAsia/Tokyoに変更
・ホスト名をtestserver に変更
・LANG変更(ja_JP.utf8)
・キーマップ変更
・kdumpサービス無効化
・net-tools,bind-utils,vimをインストール
・OSリブート  ※ホスト名変更の為
 
■サンプルコード(RHEL7系、AmazonLinux2系) 
 
#cloud-config
timezone: "Asia/Tokyo"
runcmd:
 - sed -i -e 's!SELINUX=enforcing!SELINUX=disabled!' /etc/selinux/config
 - touch /etc/sysctl.d/disable_ipv6.conf
 - chmod 644 /etc/sysctl.d/disable_ipv6.conf
 - chown root:root /etc/sysctl.d/disable_ipv6.conf
 - echo "net.ipv6.conf.all.disable_ipv6 = 1" > /etc/sysctl.d/disable_ipv6.conf
 - echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.d/disable_ipv6.conf
 - hostnamectl set-hostname testserver --static
 - localectl set-locale LANG=ja_JP.utf8
 - localectl set-keymap jp106
 - systemctl stop kdump
 - systemctl disable kdump
 - yum -y install net-tools
 - yum -y install bind-utils
 - yum -y install vim
 - reboot
 
 
■サンプルコード(RHEL6系、AmazonLinux1系)
#cloud-config
timezone: "Asia/Tokyo"
runcmd:
 - sed -i -e 's!#Port 22!Port 443!' /etc/ssh/sshd_config
 - sed -i -e 's!SELINUX=enforcing!SELINUX=disabled!' /etc/selinux/config
 - touch /etc/sysctl.d/disable_ipv6.conf
 - chmod 644 /etc/sysctl.d/disable_ipv6.conf
 - chown root:root /etc/sysctl.d/disable_ipv6.conf
 - echo "net.ipv6.conf.all.disable_ipv6 = 1" > /etc/sysctl.d/disable_ipv6.conf
 - echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.d/disable_ipv6.conf
 - echo "HOSTNAME=amazonlinux" > /etc/sysconfig/network
 - echo "NETWORKING=yes" >> /etc/sysconfig/network
 - echo "LANG=\"ja_JP.utf8\"" >> /etc/sysconfig/i18n
 - echo "LANG=\"ja_JP.utf8\"" >> /etc/sysconfig/i18n
 - echo "KEYTABLE=\"jp106\"" > /etc/sysconfig/keyboard
 - echo "MODEL=\"jp106\"" >> /etc/sysconfig/keyboard
 - echo "LAYOUT=\"jp\"" >> /etc/sysconfig/keyboard
 - echo "KEYBOARDTYPE=\"pc\"" >> /etc/sysconfig/keyboard
 - yum -y install net-tools
 - yum -y install bind-utils
 - yum -y install vim
 - reboot
 
 
■ユーザデータの処理結果確認
EC2インスタンス起動後に、/var/log/cloud-init.log を確認する。