在GCE实例上使用`auth_kind: machineaccount`配置参数来运行Ansible

首先

如果想要使用gcp_compute等插件通过Ansible访问GCE,您需要按照官方指南生成Service Account的json并将其放置在适当的位置。
然而,如果您是在GCE实例或者GCP的Cloud Shell环境下运行Ansible,将Service Account与实例关联是可行的,您可以利用这一点来执行操作。

在本文中,我将解释如何在不生成Service Account的JSON文件的情况下,在Ansible中配置操作GCE实例的方法。

前提条件 (Qian ti tiao jian)

pip install ansible requests google-auth が実行済である
実行するインスタンスにService Accountが紐付いている
紐付いているService Accountには「Compute 閲覧者」の役割を与えられている

今回実行するコマンドに対して必要な権限。やりたいことに応じて権限は適宜変更すること

太长不看

请在任意的目录中准备以下文件。
请根据需要编辑{}中括号内的部分。

顺便提一下,关于文件名有以下条件:

ansible.cfgは固定

foobar.gcp.ymlは拡張子に当たる.gcp.ymlは固定

此外,若未設置foobar.gcp.yml中的service_account_email,將無法執行(陷阱)。

[inventory]
enable_plugins = gcp_compute
plugin: gcp_compute
projects:
  - {HOGE_PROJECT}
  - ...
zones:
  - {FUGA_ZONE}
  - ...
auth_kind: machineaccount
hostnames:
  - name
service_account_email: default

请在准备好后执行 ansible-inventory –list -i foobar.gcp.yml 命令。
这将创建一个使用Ansible配置准备就绪的GCE实例列表。

请尽情享受吧!

论及资料来源

    https://docs.ansible.com/ansible/latest/plugins/inventory/gcp_compute.html
bannerAds