私の対流圏ファイルの関連部分は次のとおりです。
LaunchConfiguration = t.add_resource(LaunchConfiguration(
"LaunchConfigA",
ImageId=UBUNTU_IMG,
SecurityGroups=[Ref(SecurityGroup)],
InstanceType="m3.medium",
UserData=Base64(Join('', [
"#cloud-boothook\n",
"#!/bin/bash\n",
"sudo hostname test\n",
"sudo sh -c 'echo test > /etc/hostname'\n",
"sudo sh -c 'echo 127.0.0.1 test >> /etc/hosts'\n",
"sudo touch /var/log/TESTING\n"
])),
))
AutoScalingGroupA = t.add_resource(AutoScalingGroup(
"GroupA",
AvailabilityZones=GetAZs(Ref(AWS_REGION)),
LaunchConfigurationName=Ref(LaunchConfiguration),
MinSize="1",
DesiredCapacity="2",
MaxSize="2",
))
このテンプレートからまったく新しい CloudFormation スタックを作成すると、インスタンスのホスト名はデフォルトの のようip-172-XXX-XXX-XXX
になります。
私のTESTING
ファイルのために、スクリプトが実行されていることは確かです:
atrose@ip-172-31-32-40:~$ ls -la /var/log/TESTING
-rw-r--r-- 1 root root 0 Jul 14 20:10 /var/log/TESTING
スクリプトを手動で実行すると、ホスト名が正しく設定されます。そのようです:
atrose@ip-172-31-32-40:~$ hostname
ip-172-31-32-40
atrose@ip-172-31-32-40:~$ sudo cat /var/lib/cloud/instance/user-data.txt
#cloud-boothook
#!/bin/bash
sudo hostname test
sudo sh -c 'echo test > /etc/hostname'
sudo sh -c 'echo 127.0.0.1 test >> /etc/hosts'
atrose@ip-172-31-32-40:~$ sudo bash /var/lib/cloud/instance/user-data.txt
atrose@ip-172-31-32-40:~$ hostname
test
インスタンスが最初に ASG を起動するときに、インスタンスにホスト名を設定するにはどうすればよいですか?