cfn-init для шаблона запуска облачной информации - PullRequest
0 голосов
/ 14 февраля 2019

Как вы используете cfn-init в LaunchTemplate?Это для экземпляров EC2, в группе автоматического масштабирования, для кластера ECS.

Куда идет раздел Metadata для экземпляра и что такое --resource для передачи в cnf-init?

LaunchTemplate:
  Type: AWS::EC2::LaunchTemplate
  Properties:
    LaunchTemplateName: !Sub ${AWS::StackName}-launch-template
    LaunchTemplateData: 
      SecurityGroups: 
        - !Ref DMZSecurityGroup
        - !Ref ECSSecurityGroup
      UserData:
        Fn::Base64:
          !Sub |
            #!/bin/bash -xe
            yum update -y aws-cfn-bootstrap
            /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource ??? --region ${AWS::Region}
            yum -y update

Моя лучшая догадка для метаданных выдает ошибку:

    Property validation failure: [Encountered unsupported properties in {/LaunchTemplateData}: [Metadata]]

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

У меня были метаданные на неправильном уровне вложенности, они должны быть на самом верхнем уровне вместе с Type: и Properties:, а не Properties:LaunchTemplateData:.

LaunchTemplate:
  Type: AWS::EC2::LaunchTemplate
  Metadata: 
    AWS::CloudFormation::Init: 
      config:
        files:
          /var/www/html/index2.html:
            content: TestString
  Properties:
    LaunchTemplateData: 
      SecurityGroupIds: 
        - !GetAtt DMZSecurityGroup.GroupId
        - !GetAtt ECSSecurityGroup.GroupId
      UserData:
        Fn::Base64:
          !Sub |
            #!/bin/bash -xe
            yum update -y aws-cfn-bootstrap
            /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource ECSLaunchTemplate --region ${AWS::Region}
            yum -y update
0 голосов
/ 14 февраля 2019

cfn-init следует использовать только в том случае, если вы определяете некоторые шаги инициализации для своего экземпляра в самом шаблоне облачной информации.

Сценарии cfn-init сообщают облачной информации о необходимости прочитать ваши шаги конфигурации из определения шаблона (AWS::CloudFormation::Init раздел) и «выполнить» их на экземпляре.

Вы также можете загрузить свой экземпляр, передав сценарий оболочки в раздел пользовательских данных.

В вашем случае, так как я не вижу никаких шагов настройки начальной загрузки, определенных в вашем файле YAML, нет необходимости вызывать cfn-init в вашем скрипте пользовательских данных.

Подробнее о cfn-init: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html

Подробнее о AWS::CloudFormation::Init: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html

...