Облакообразовательная продукция Cloudformation Init - PullRequest
0 голосов
/ 11 марта 2019

У меня есть стек CloudFormation, показанный ниже:

  "Metadata" : {
            "AWS::CloudFormation::Init" : {
                "config" : {

                        "/home/ec2-user/create_db_user.sh" : {
                            "source" :                             

   "http://s3.amazonaws.com/devops/create_db_user.sh",
                            "mode" : "000755",
                            "owner" : "ec2-user"
                        }
                    }
 ...

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

Как я могу к этому.

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

В комментариях к вашему вопросу есть несколько важных моментов, которые подтолкнут вас к правильному решению. В общем, то, что вы пытаетесь сделать, невозможно - нет выходов ресурса AWS::CloudFormation::Init. Они не оцениваются во время создания стека, просто сохраняются и обрабатываются экземпляром EC2 во время его запуска, но это не время, когда работает стек CloudFormation (может быть, но не всегда - например, взять группу автоматического масштабирования).

0 голосов
/ 08 июня 2019

Немного опоздал на вечеринку, но в дополнение к предыдущему ответу ...

Вывод AWS::CloudFormation::Init при создании экземпляра EC2 недоступен через Cloudformation.

Однако наЗапущенные экземпляры EC2 вы найдете журналы как для AWS::CloudFormation::Init (он же. cfn-init), так и для пользовательских данных (cloud-init).

В Amazon Linux это структурировано следующим образом:

  • / var / log / cfn-init-cmd.log: cfn-init и вывод команды с временными метками
  • / var / log / cfn-init.log: cfn-init и commandoutput
  • / var / log / cloud-init.log: журналы облачной инициализации, относящиеся к выполнению команд в пользовательских данных
  • / var / log / cloud-init-output.log: outputиз самих команд user-data

Самый простой способ получить доступ к этим журналам - это потоковая передача журналов в журналы Cloudwatch, которые позволят вам искать и фильтровать журналы по времени и содержимому.Также рассмотрите возможность использования Cloudwatch Insights для поиска и фильтрации - он имеет более полный и понятный синтаксис для поиска, фильтрации и даже простой визуализации (диаграмма).

Поскольку вы уже используете cfn-init, вы можете найтиинформация здесь о том, как установить новый агент Cloudwatch (не агент Cloudwatch Logs!).Преимущество использования агента Cloudwatch заключается в том, что он может также передавать пользовательские метрики в метрики Cloudwatch (например, использование памяти, метрики приложений, метрики базы данных и т. Д.).

Для уже запущенных экземпляров EC2 рассмотрите возможность просмотра cfn-hup здесь .

Альтернативой может быть использование SSM (Systems Manager) для передачи агента на уже запущенные экземпляры в соответствии с инструкциями здесь .

...