Назад | Перейти на главную страницу

как я могу завершить экземпляры ec2, используя доступный динамический инвентарь?

Я обыскал весь Интернет и не нашел ответа на этот вопрос. "как я могу завершить работу экземпляра ec2, используя динамический инвентарь с тегами?" поэтому, если я могу завершить экземпляр или группу экземпляров ec2 с определенным тегом (ами)

модуль ec2 требует, чтобы он передавал идентификатор экземпляра, но для этого нет ничего автоматизированного. ТАК ищет способ настроить таргетинг на определенные теги с помощью динамического инвентаря с доступным

- name: terminate single instance
   hosts: all
   tasks:
     - action: ec2_facts
     - name: terminating single instance
       local_action:
         module: ec2
         state: 'absent'
         region: us-east-1
         instance_ids: "{{ ansible_ec2_instance_id }}"

Я пробовал вышеуказанное с помощью следующей команды

ansible-playbook terminate.yml --tags "tag_Name_web_server"

что означает, что я тоже хочу удалить экземпляры ec2 с помощью Name' tag 'web-server Прямо сейчас, когда я запускаю это, он просматривает несколько экземпляров ec2, но нацелен только на те, которые имеют указанные теги. Коротко, не работает.

Любая помощь будет оценена

Я столкнулся с той же проблемой, что и ты

На сегодняшний день (если быть точным, Ansible 2.5) можно делать то, что вы хотите, без host_vars с ec2_instance модуль (это отличается от ec2 модуль)

Например, вы хотите завершить все экземпляры ec2 парой тег-значение: Usage:k8s-ansible, это задача, которая вам понадобится:

ec2_instance:
  state: absent
  filters:
    tag:Usage: k8s-ansible

--tags switch не имеет ничего общего с тегами ec2:

-t TAGS, --tags = TAGS запускать только игры и задачи, помеченные этими значениями

Вы должны использовать внешние переменные и шаблон хоста:

- name: Terminate tagged instances
  hosts: tag_{{ tag_name }}_{{ tag_value }}
  tasks:
    - ec2_facts:
    - ec2:
        state: absent
        region: "{{ ansible_ec2_placement_region }}"
        instance_ids: "{{ ansible_ec2_instance_id }}"
      delegate_to: localhost

исполнение: ansible-playbook -e tag_name=Name -e tag_value=web_server terminate.yml