Варианты использования динамических инвентаризаций VS статических инвентаризаций с ANSIBLE - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь запросить список экземпляров ec2 через ansible, используя плагин ec2 для динамических инвентаризаций.

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

Итак, мой вопрос: в каких случаях мы будем использовать динамические и статические инвентаризации? Я новичок в сфере Devops, поэтому я не знаю, как часто нам нужно порождать экземпляры автоматически, например, когда мы делаем это вручную через консоль AWS. Спасибо!

1 Ответ

1 голос
/ 28 июня 2019

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

Если вы запускаете ec2s временно как часть конвейеров сборки, используйте динамические инвентаризации. например вы просто хотите проверить развертывание своего программного обеспечения и завершить работу компьютера после этого теста.

Если вы хотите отключить ANSI-игры на некоторых машинах, вы можете создавать динамические списки на основе тегов ec2. например у вас есть игра безопасности, которая запускает весь веб-сервер каждый час, но разработчик хочет что-то протестировать на своем компьютере. Таким образом, он может пометить свою машину, чтобы пропустить. Ему не нужен доступ к файлу инвентаря (и вы можете запустить другую игру один раз в полночь, чтобы снова включить безопасную игру. Так что она не будет забыта).

Кстати: вы можете использовать ec2_instance_facts с опциями фильтра и add_host для создания динамических инвентаризаций во время выполнения playbooks.

например. у вас есть три типа серверов "веб", "приложение", "дБ". Вы отмечаете ec2s во время запуска с типом сервера: [web | app | db]. Вы можете отфильтровать эти ec2 с помощью:

- name: collect ec2s 
  ec2_instance_facts:
    region: "{{ region }}"
    filters:
      "tag:servertype": "{{ servertype_list }}"
  register: ec2_list

и выборочно запускайте игру на группе серверов с внешней переменной ansible-playbook test.yml -e servertype_list=['web','app'] или ansible-playbook test.yml -e servertype_list=['db'].

Таким образом, помечая машину, вы избегаете статического инвентаря.

...