GCEインスタンス上で、`auth_kind: machineaccount`設定でAnsibleを走らせる
はじめに
gcp_compute
等のプラグインを利用してGCEに対してAnsibleでアクセスしたい場合には、公式ガイドにあるようにService Accountのjsonを発行し、適当な場所に配置することを求められます。
しかし、Ansibleを実行する環境がGCEインスタンス、もしくはGCPのCloud Shellの場合、Service Accountをインスタンスに紐付けることが可能であり、これを利用して実行することが可能です。
本記事では、Service Accountのjsonを発行せずにAnsibleでGCEインスタンスを操作するための設定を説明します。
前提条件
-
pip install ansible requests google-auth
が実行済である
- 実行するインスタンスにService Accountが紐付いている
- 紐付いているService Accountには「Compute 閲覧者」の役割を与えられている
- 今回実行するコマンドに対して必要な権限。やりたいことに応じて権限は適宜変更すること
TL;DR
pip install ansible requests google-auth
が実行済である- 今回実行するコマンドに対して必要な権限。やりたいことに応じて権限は適宜変更すること
任意のディレクトリに以下のファイルを準備してください。
{}
で囲われている部分については適宜編集してください。
なお、ファイル名について以下の条件があります:
-
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インスタンスのリストが作成されます。
Enjoy!!!!
参考文献
Author And Source
この問題について(GCEインスタンス上で、`auth_kind: machineaccount`設定でAnsibleを走らせる), 我々は、より多くの情報をここで見つけました https://qiita.com/hkak03key/items/e87ed2743db697e68a0f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .