GCP: Ansible: Как динамически проводить инвентаризацию с несколькими метками при использовании плагинов инвентаря? - PullRequest
0 голосов
/ 06 февраля 2020

Я использую ansible 2.8.4 с Google Cloud Platform. Я использую Inventory Plugins, чтобы получить динамический инвентарь c, как рекомендует ansible. У меня 2 кластера hdfs, поэтому я собираю ресурсы с помощью gcp_compute. У каждого кластера есть метки index: 1 и index: 2, чтобы я мог динамически получать vms на основе индекса.

инвентарь плагина (dev.gcp.yml):

plugin: gcp_compute
projects:
  - my-gcp-project
auth_kind: serviceaccount
keyed_groups:
  - prefix: gcp
    key: labels
compose:
  ansible_host: networkInterfaces[0].networkIP

Затем я получаю динамические c группы gcp_index_1 и gcp_index_2, которые я использую в своих книгах игр. В настоящее время у меня есть 2 книги воспроизведения, одна для кластера 1, а другая для кластера 2. В книгах игр я жестко закодировал те группы, как gcp_index_1 и gcp_index_2, которые необходимы для выполнения одних и тех же действий (за исключением IP-адресов), но развертываются в разных кластерах.

В AWS / Azure я использовал сценарии инвентаризации, где мои группы были указаны в файле hosts, а затем использовались для извлечения инвентаря на основе нескольких тегов. например, AZURE_TAGS=stack:dev,index:1 ansible-playbook hdfs-install.yml В GCP я хотел бы сделать то же самое, но есть ли способ провести инвентаризацию с несколькими метками, чтобы я мог избежать дублирования наличия отдельных списков воспроизведения для каждого кластера. то есть я хотел бы иметь одну книгу воспроизведения и указать, на какой кластер я хочу установить hdfs на основе нескольких меток.

какие-либо предложения, как я go о достижении этого?

...