1

私の対流圏ファイルの関連部分は次のとおりです。

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 を起動するときに、インスタンスにホスト名を設定するにはどうすればよいですか?

4

1 に答える 1

-1

Ubuntu AMI を使用しているようです。つまり、CloudInit にはホスト名パラメーターが組み込まれている必要があり、必要なことを行うためにシェル スクリプトは必要ありません。cloudinit 自体がスクリプトと衝突していると推測します。これをチェックしてください:

http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/view/head:/doc/examples/cloud-config.txt#L540

使用方法についてご不明な点がございましたら、お気軽にお問い合わせください。ありがとう!

于 2016-07-14T21:16:16.093 に答える