Использование метаданных GCE в качестве фактов или переменных

Мне нужен доступ к метаданным экземпляра Google Compute Engine (имя экземпляра, зона, имя проекта, тип компьютера, пользовательские метаданные, external-ip и т. Д.) В форме доступных фактов / переменных. Например, я надеюсь, что смогу использовать переменную / факт, например: {{ gce_fact_instance_name }}, который будет получен из экземпляра, когда ansible собирает факты с каждого хоста (поскольку все экземпляры имеют доступ к своим собственным метаданным).

Я нашел этот модуль, но в данный момент он не разработан, и выдает ошибку при попытке его использования. https://github.com/br0ziliy/ansible-module-gce-facts

1 ответ

Решение

Автор вышеупомянутого модуля исправил ошибку, и его модуль невероятно полезен и делает именно то, что мне нужно. Пример кода ниже:

- name: Gather instance GCE facts
  action: gce_facts

- name: Update GCE labels
  local_action:
    module: gce_labels
    project_id: "{{ ansible_gce.project.projectId }}"
    resource_type: instances
    resource_name: "{{ ansible_gce.instance.name }}"
    resource_location: "{{ ansible_gce.instance.zone }}"
    #ld_ variables are custom variables we use for system management
    labels:
      env: "{{ ld_env }}"
      product: "{{ ld_product }}"
      role: "{{ ld_role }}"
Другие вопросы по тегам