Cloudformation: пользовательские данные в EC2, а также в шаблоне запуска - PullRequest
1 голос
/ 24 марта 2019

Кажется, что EC2 User-Data имеет преимущество здесь и никогда не выполняет Launch Template User-Data.если я удаляю User-Data из EC2, он запускает LaunchTemplate User-Data без каких-либо проблем.Используемый идентификатор AMI относится к CentOS 7. Как мне добиться, чтобы оба User-Data запускались в каком-то порядке.

Я уже много играл с облачной информацией и смотрел форумы.

{
    "Resources": {
        "BSLaunchTemplate": {
            "Type": "AWS::EC2::LaunchTemplate",
            "Properties": {
                "LaunchTemplateName": "BroadSoftLaunchTemplate2",
                "LaunchTemplateData": {
                    "KeyName": "haystackaccess",
                    "ImageId": "ami-014b38e758721be30",
                    "InstanceType": "t2.medium",
                    "SecurityGroupIds":["sg-e0b92fa7"],
                    "UserData": {
                        "Fn::Base64": {
                            "Fn::Join":["", [
                                "#!/bin/bash \n",
                                "yum update -y \n",
                                "yum –y install epel-release \n",
                                "yum -y install python-pip \n",
                                "pip install pystache \n",
                                "pip install argparse \n",
                                "pip install python-daemon \n",
                                "pip install requests \n",
                                "yum install -y https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.amzn1.noarch.rpm \n",        
                                "echo UD_OF_LT_1 >> /var/log/user-data.log \n",
                                "echo UD_OF_LT_2 >> /var/log/user-data.log \n",
                                "echo UD_OF_Lt_3 >> /var/log/user-data.log \n"
                            ]
                        ]
                        }
                    }
                }
            }
        },
        "primaryec2": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "LaunchTemplate": {
                    "LaunchTemplateId":{"Ref":"BSLaunchTemplate"},
                    "Version":"1",
                },
                "Tags": [
                    {
                        "Key": "Name",
                        "Value": "Network Server"
                    }],
                "UserData":{
                        "Fn::Base64": {
                            "Fn::Join": ["",[
                                "#!/bin/bash \n",
                                "echo UD_OF_EC2_1 >> /var/log/user-data.log \n",
                                "echo UD_OF_EC2_2 >> /var/log/user-data.log \n",
                                "echo UD_OF_EC2_3 >> /var/log/user-data.log \n"
                            ]
                        ]
                        }
                    }
            }
        }
    }
}


1 Ответ

0 голосов
/ 25 марта 2019

Какова цель первичного экземпляра ec2?Я думаю, вам нужно запустить дополнительные команды на основной.Я имею в виду, что вы можете просто дублировать команды - размещение их во внешних файлах bash может немного облегчить жизнь.Или создайте AMI с помощью команд, которые вы использовали в шаблоне запуска, а затем используйте свой пользовательский AMI в первичном экземпляре.Возможно, вы сможете что-то сделать и с условными выражениями, но я думаю, что вам придется проявить немного более творческий подход, поскольку я не думаю, что вы можете использовать их непосредственно в самих пользовательских данных.

Тим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...