Я использую 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 о достижении этого?