Скрипт пользовательских данных не работает на сервере Ubuntu при создании с использованием шаблона облачной информации
Извините за повторный и старый вопрос. Мой код не запускает скрипт оболочки userdata. Мое свойство userdata - это параметр, который будет указан при создании стека. мой код
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "AWS CloudFormation Sample Template",
"Parameters": {
"UserData": {
"Description": "User data",
"Type": "String"
}
},
"Resources": {
"EC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"KeyName": {
"Ref": "KeyName"
},
"InstanceType": {
"Ref": "InstanceType"
},
"ImageId": {
"Ref": "ImageId"
},
"SecurityGroups": [
{
"Ref": "EC2SecurityGroup"
}
],
"UserData": {
"Fn::Base64": {
"Fn::Join": [
"",
[
"#!/bin/bash",
"\n",
{
"Ref": "UserData"
}
]
]
}
}
}
}
}
}
Я дал следующую команду оболочки в параметре userdata
"apt-get update","\n","apt-get install -y apache2","\n","apt-get install -y php","\n"
Я не могу знать, правильный ли мой userdata scricpt, он не показывает никаких ошибок при создании стека, он успешно создает экземпляр. После создания экземпляра я проверил apache2 и php не установлены в экземпляре. Кто-нибудь может найти, что не так в моем коде?
2 ответа
Он принимает следующие пользовательские данные и устанавливает все программы, которые приведены в следующих сценариях.
apt-get update;apt-get install -y apache2;apt-get install -y php;
Попробуйте этот блок UserData. UserData переименовывается в UData, чтобы исключить конфликты имен. В этом случае UData должен быть "apt-get update; apt-get install -y apache2 php;"
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "AWS CloudFormation Sample Template",
"Parameters": {
"UData": {
"Description": "User data",
"Type": "String"
}
},
"Resources": {
"EC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"KeyName": {
"Ref": "KeyName"
},
"InstanceType": {
"Ref": "InstanceType"
},
"ImageId": {
"Ref": "ImageId"
},
"SecurityGroups": [
{
"Ref": "EC2SecurityGroup"
}
],
"UserData": {
"Fn::Base64": {
"Fn::Join": [
"",
[
"#!/bin/bash\n",
"echo \">>>>>>>>>>>>> UPDATE <<<<<<<<<<<<<\"\n",
"export USR_DATA='", { "Ref": "UData" }, "'\n",
"echo $USR_DATA\n",
"echo $USR_DATA > user_data.sh\n",
"chmod +x user_data.sh\n",
"source user_data.sh\n",
"echo \">>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<\"\n"
]
]
}
}
}
}
}
Пользовательские данные также регистрируются в /var/log/cloud-init-output.log, и вывод из этого журнала может действительно помочь при отладке.