はじめに
「ここに Ansible があります。あなたはこの環境を使います。」と言われた時、何をすればよいでしょうか。
この記事では、自分で管理していない環境の Ansible を使う事になった場合に、環境を調査するためのコマンドを紹介します。
以下ツイートの補足です。
見知らぬ Ansible 環境にログインしたらとりあえず
— よこち (@akira6592) 2019年9月13日
ansible --version
ansible-config dump --only-changed
して、バージョンとデフォルトから変わってる設定を確認します。#ansiblejp
■ Ansible のバージョンの確認
インストールされている Ansible のバージョンを確認するコマンドは以下のとおりです。
ansible --version
実行例: ansible --version
[ansible@038432d6b255 ansible]$ ansible --version ansible 2.7.10 config file = /home/ansible/ansible/ansible.cfg configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.6/site-packages/ansible executable location = /usr/local/bin/ansible python version = 3.6.8 (default, Aug 7 2019, 17:28:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
上記の実行例では、以下のことが分かります。
- Ansible のバージョンは
2.7.10
- 設定ファイルは
/home/ansible/ansible/ansible.cfg
を利用 - Ansible自身 を実行する Python のバージョンは
3.6.8
- Ansible が接続する先のマシンで実行する Python のバージョンではないの注意
■ デフォルトから変更されている設定の確認
Ansible には、SSH 接続時のホストキーのチェック有無や、実行プロセスのフォーク数など、設定を管理する仕組みがあります。ansible.cfg
というファイル名の設定ファイルや、環境変数などで設定できます。
思ったとおりの挙動にならない、あっちの環境と違う・・、とハマることを避けるために、デフォルトから変更されている設定を確認しておきたいところです。
確認するコマンドは以下のとおりです。
ansible-config dump --only-changed
実行例: ansible-config dump --only-changed
[ansible@038432d6b255 ansible]$ ansible-config dump --only-changed DEFAULT_ROLES_PATH(env: ANSIBLE_ROLES_PATH) = ['/etc/ansible/myroles'] HOST_KEY_CHECKING(/home/ansible/ansible/ansible.cfg) = False
上記の実行例では、以下のことが分かります。
- ロールを読み込む際のパスの設定
DEFAULT_ROLES_PATH
が、環境変数ANSIBLE_ROLES_PATH
によって、/etc/ansible/myroles
に変更されている。- デフォルトは
~/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles
- デフォルトは
- SSH接続先のフィンガープリントチェックの有無の設定
HOST_KEY_CHECKING
が、設定ファイル/home/ansible/ansible/ansible.cfg
によって、False
に変更されている。- デフォルトは
True
- デフォルトは
補足
ansible-config
コマンド自体は Ansible 2.4 で導入されため、残念ながら Ansible 2.3 以前では利用できません。---only-changed
なしで単に、ansible-config dump
を実行すると、すべての設定項目が表示されます。設定方法のひとつである
ansible.cfg
というファイルには、読み込む優先順位があります。そのため、ansible-config dump --only-changed
コマンドを実行するディレクトリによって、結果が異なる場合があります。参考
まとめ
自分で管理していない環境の Ansible を使う事になった場合に、環境を調査するためのコマンドを紹介しました。
他にもよい調べ方、追加で調べたほうが良いことなどがありましたら、 @akira6592 までご連絡いただけると幸いです。