AWS OpsWorks - Как выполнить пользовательский рецепт из командной строки для определенного слоя?

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

Мне нужно сделать это программно, есть возможность сделать это на уровне стека, но это не помогает,

Пытаясь избежать чего-то подобного следующему, я, вероятно, в итоге вытяну элементы слоя в массив, а затем выберу их независимо, как предложено ниже. Не очень хорошо, так как мне придется добавить статическую информацию для информации о стеке и слое.

 if deploy[:application_type] != 'php'
Chef::Log.debug("Skipping mod_php5_apache2::php application #{application} as it is not an PHP app")
next

конец

1 ответ

Вам нужно будет сделать это в два шага, во-первых, получить экземпляры в определенном слое, используя описательные экземпляры, установив --layer-id аргумент, затем запустите вашу команду в тех случаях, используя create-deploy, установив --instance-ids аргумент.

Другой вариант - заставить ваши пользовательские рецепты ничего не делать, если они не выполнены на нужном слое или тип приложения неправильный. Этот метод довольно часто используется в поваренных книгах по умолчанию, вот пример пропуска развертывания, если это не приложение PHP. Затем вы можете запустить свой рецепт на всех экземплярах, но он будет делать что-то только на определенных слоях.

Другие вопросы по тегам