/ / Nie można ustawić nazw hostów instancji ASG za pomocą Troposphere / CloudFormation UserData - amazon-web-services, amazon-ec2, amazon-cloudformation, cloud-init, troposphere

Nie można ustawić nazw hostów instancji ASG przy użyciu Troposphere / CloudFormation UserData - usługi amazon-web-service, amazon-ec2, cloudformation amazon, init-cloud, troposfera

Oto odpowiednia część mojego pliku Troposphere:

LaunchConfiguration = t.add_resource(LaunchConfiguration(
"LaunchConfigA",
ImageId=UBUNTU_IMG,
SecurityGroups=[Ref(SecurityGroup)],
InstanceType="m3.medium",
UserData=Base64(Join("", [
"#cloud-boothookn",
"#!/bin/bashn",
"sudo hostname testn",
"sudo sh -c "echo test > /etc/hostname"n",
"sudo sh -c "echo 127.0.0.1 test >> /etc/hosts"n",
"sudo touch /var/log/TESTINGn"
])),
))

AutoScalingGroupA = t.add_resource(AutoScalingGroup(
"GroupA",
AvailabilityZones=GetAZs(Ref(AWS_REGION)),
LaunchConfigurationName=Ref(LaunchConfiguration),
MinSize="1",
DesiredCapacity="2",
MaxSize="2",
))

Kiedy tworzę nowy stos CloudFormation na podstawie tego szablonu, wyglądają nazwy hostów w instancjach ip-172-XXX-XXX-XXX, domyślny.

Jestem pewien, że skrypt działa z powodu mojego TESTING plik:

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

Jeśli uruchomię skrypt ręcznie, nazwa hosta zostanie poprawnie ustawiona. Tak jak:

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

Jak ustawić nazwy hostów w instancjach, które uruchamiają się po raz pierwszy w ASG?

Odpowiedzi:

0 dla odpowiedzi № 1

Wygląda na to, że używasz Ubuntu AMI, któryoznacza, że ​​CloudInit powinien mieć wbudowany parametr nazwy hosta, i nie powinieneś potrzebować skryptu powłoki, aby robić to, co chcesz. Zgaduję, że sama cloudinit koliduje z twoim skryptem. Powinieneś to sprawdzić:

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

Daj mi znać, jeśli masz jakieś pytania, jak z tego korzystać. Dzięki!