LoginSignup
1
1

More than 3 years have passed since last update.

EC2のユーザーデータでLinuxのホスト名を変更する方法

Last updated at Posted at 2019-06-09

ユーザーデータ

ユーザーデータのcloud-initディレクティブで、fqdnキーを利用します。
ホスト名を変えるだけなら、これだけです。

user-data.yaml
#cloud-config

fqdn: example.co.jp

※ホスト名を設定するキーにはhostnameキーも存在します。
しかし、hostnameキーは、fqdnキーが利用される場合は無視されます。
AWSデフォルトのホスト名はfqdnキーで定義されているため、上書きするためにはfqdnキーを利用する必要があります。

ユーザーデータを入力する方法1:GUI

[インスタンスの作成]>[手順3:インスタンスの詳細設定]の[ユーザーデータ]に張り付けて
インスタンスを作成するだけです。

image.png

ユーザーデータを入力する方法2:AWS CLI

--user-dataオプションで、生のテキストファイルを渡します。yamlとしてますが、拡張子は何でもOKです。

aws ec2 run-instances --region $Region \
  --image-id $AmiId --count 1 \
  --instance-type $InstanceType --key-name $KeyName \
  --subnet-id $SubnetId --private-ip-address $PrivateIpAddress \
  --associate-public-ip-address \
  --security-group-ids $SecurityGroupIds \
  --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$NameTag}]" \
  --credit-specification CpuCredits=standard \
  --user-data file://userdata.yml

※変数の値は適宜設定してください。Powershellで実行する場合は、改行文字を「\」から「`」に変更してください。

補足:作成したAMIから起動すると、ホスト名が初期化される問題

既定の動作として、cloud-initでホスト名、ロケール、デフォルトユーザーが初期化されます。
シンプルにこれを防ぐのであれば、ユーザーデータでpreserve_hostnameキーをtrueに設定しておきます。

user-data.yaml
#cloud-config

fqdn: example.co.jp

runcmd:
 - echo "preserve_hostname: true" >> /etc/cloud/cloud.cfg

※preserve_hostnameキーがtrueに設定されていると、hostnameキー・fqdnキーは機能しません。

以上です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1