Добавьте тег «name» к снимкам, созданным, когда Ansible используется для создания AWS AMI - PullRequest
0 голосов
/ 18 октября 2018

Я использую Ansible playbook (через AWX) для установки обновлений на некоторые серверы Linux, размещенные в AWS EC2.Я хотел бы следовать процессу:

  1. Создание AMI экземпляра, включая тег «name» для AMI, а также теги «name» для любых снимков, прикрепленных к AMI.
  2. Установка обновлений на сервере
  3. Отмена регистрации всех AMI, которые соответствуют соглашению об именах, которые я использовал (mydomain.com-YYYYMMDD), и старше определенного возраста, а также удаление снимков, прикрепленных к этимМАСС.Я начну с 7 дней, затем добавлю больше деталей.

Однако до сих пор мне удавалось только создать изображение с тегом имени и установить обновления.Я не нашел способ найти и отметить прикрепленные снимки.

Я знаю, что могу использовать модуль ec2_ami для отмены регистрации AMI и одновременного включения удаления снимка.Однако я не могу понять, как заставить этот модуль искать строку имени (что-то вроде mydomain.com-*), а также оценить возраст AMI.

Я очень новичок в использовании Ansible, поэтому знаю, что, возможно, мне не хватает некоторых очевидных решений.

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

Возможно ли?

---
- hosts: all
  remote_user: "{{ remote_user }}"
  tasks:
  - name: Create an AMI for backup
    ec2_ami:
      instance_id: "{{ instance_id }}"
      name: "{{ inventory_hostname }}-{{ ansible_date_time.iso8601_basic_short }}"
      tags:
        Name: "{{ inventory_hostname }}-{{ ansible_date_time.iso8601_basic_short }}"
    register: result

  - name: Pause for 120 seconds to allow instance to become reachable again
    pause: seconds=120

  - include_tasks: update-RedHat.yml
    when: (ansible_os_family == 'RedHat' and result.changed|default(false)|bool == true)

  - include_tasks: update-Debian.yml
    when: (ansible_os_family == 'Debian' and result.changed == true) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...