Последовательное выполнение сборника воспроизведения ansible для обновления до последней модели azure vmss

#azure #ansible #azure-vm-scale-set

#azure #ansible #azure-vm-scale-set

Вопрос:

У меня есть инструмент ansible для создания образов в Azure и инструмент terraform для применения образов к виртуальным машинам, которые у меня есть в azure. Однако Azure помечает экземпляры vmss только логическим флагом lates_model, поэтому мне нужно открыть каждый экземпляр в vmss и нажать кнопку обновления, которая перезапускает компьютер.

Я видел несколько модулей для управления виртуальными машинами, однако мне нужно обновить (перезагрузить) экземпляры, используя параметр serial в моем сборнике воспроизведения. В этом проблема, я могу пойти этим путем. В общем, получение инвентаря в модуле — не лучшая идея, я думаю, поскольку Ansible не знает, что list на самом деле является инвентарем. Мне нужен совет.

Ответ №1:

Когда вы обновляете конфигурацию VMSS, и я вижу, что вы устанавливаете политику обновления с manual помощью . И в этой ситуации вам необходимо самостоятельно обновить все экземпляры, выбрав.

В ansible вы можете использовать модуль только azure_rm_virtualmachinescaleset для обновления VMSS, другой модуль просто получает факты о VMSS. Если вы хотите обновить конфигурацию, а затем все экземпляры обновятся автоматически, вам необходимо установить параметр upgrade_policy with Automatic .

Комментарии:

1. использование upgrade_mode в terraform помогает, однако есть еще один вопрос: перед перезагрузкой экземпляра (для этого требуется обновление) мне нужно выполнить некоторые задачи в ОС, например, остановить процесс. Как я могу это сделать с помощью terraform?

2. @EdikMkoyan Если это полезно для вас, пожалуйста, примите это. И вам лучше задать другой вопрос по другой проблеме с более подробной информацией. Но здесь есть совет для этого — использовать cloud-init, это может помочь.

3. правильный ответ — upgrade_mode, а не upgrade_policy. Пожалуйста, исправьте, чтобы я мог принять ваш ответ как правильный.

4. @EdikMkoyan Где вы находите upgrade_mode? Я вижу только политику обновления в ansible.

5. Я предполагаю, что мы говорим о двух разных способах выполнения одного и того же. В terraform это upgrade_mode, по умолчанию для него установлено значение manual, и именно по этой причине я выполняю обновления с portal.azure.com . Единственная причина, по которой здесь следует использовать Ansible, — это пользовательские действия в операционной системе перед перезагрузкой компьютера. Возможно, также можно использовать средства обеспечения завершения Terraform (ansible?), Но, я думаю, это плохая идея.