Использование метаданных 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 }}"