このページは Ansible で業務で私がよく利用している「機能」や「ノウハウ」や「メモ」や「疑問点」など気が付いたら随時追加していきます。
ansible.cfg とは何か?
Ansible のデフォルトの動作を設定します。
- ansible コマンド
- ansible-playbook コマンド
両方のコマンド実行時に読み込まれます。
「ansible」コマンドと「ansible-playbook」コマンドの違い
以下のように「ansible」コマンドは「単発で単純」作業、「ansible-playbook」コマンドは「複雑で繰り返し作業」の場合に利用することが違いでしょうか。
つまり作業内容によって、一番使いやすい方を利用すればいいと思います。
- ansible コマンド
1行で収まる単純な設定を単発で行いたい場合
わざわざ yml ファイルに記述するほどの複雑かつ再現性のある作業をしない - ansible-playbook コマンド
複雑な手順(条件分岐など)を YAML 形式の yml ファイルに書いて実行したい
繰り返し実行したいために yml ファイルに記述して管理したい
単純な作業なら必ず「ansible」コマンドを利用しなければいけないということはありません。
単純な作業でも yml ファイルに手順を書いて「ansible-playbook」コマンドで実行した方が運用管理的にいい場合は「ansible-playbook」コマンドを使った方がいいでしょう。
ansible.cfg の優先順位
ansible.cfg ファイルには「優先順位」があります。
「優先度が低い」ansible.cfg ファイルは「優先度が高い」ansible.cfg ファイルに「上書き」されるので注意しましょう。
↑ 優先度高い
- ANSIBLE_CONFIG (環境変数、例:ANSIBLE_CONFIG=/home/test/ansible/ansible.cfg など)
- ansible.cfg (カレントディレクトリにある ansible.cfg ファイル)
- .ansible.cfg (ホームディレクトリにある .ansible.cfg ファイル、先頭にドットがついて隠しファイルになっているので注意)
- /etc/ansible/ansible.cfg
↓ 優先度低い
Ansibleでアクセス先(管理される側)のホストで以下のメッセージが出た場合
Ansibleをインストールしたサーバではなく、Ansibleでのアクセス先(Ansibleで管理される側)のホストで以下のメッセージが出た場合です。
[WARNING]: Platform linux on host 54.xx.xx.xx is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
■コマンド実行結果
[user01@LAPTOP-2N8G36AO-wsl ansible]$ ansible -i hostlist all -m ping |
■解決方法
以下のサイトを参考にしました。
ansible: How to avoid warnings
https://askubuntu.com/questions/1280544/ansible-how-to-avoid-warnings
■.ansible.cfg ファイルを作成する
[user01@LAPTOP-2N8G36AO-wsl ~]$ vi ~/.ansible.cfg |
■コマンド実行結果
[user01@LAPTOP-2N8G36AO-wsl ansible]$ ansible -i hostlist all -m ping |
WARNINGが消えました。
/usr/lib/python3.6/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.26.6) or chardet (3.0.4) doesn’t match a supported version!のエラーが出力される
Ansibleを実行した際に以下のエラーが出力されました。
/usr/lib/python3.6/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.26.6) or chardet (3.0.4) doesn’t match a supported version!
RequestsDependencyWarning)
■コマンド実行時
[user01@LAPTOP-2N8G36AO-wsl ansible]$ ansible -i hostlist all -m ping |
以下のサイトを参考にしました。
Python (pip) – RequestsDependencyWarning: urllib3 (1.9.1) or chardet (2.3.0) doesn’t match a supported version
■コマンド実行
[user01@LAPTOP-2N8G36AO-wsl ~]$ sudo pip3 install requests |
■pip3でrequestsをインストール後にAnsible実行
[user01@LAPTOP-2N8G36AO-wsl ~]$ ansible -i ansible/hostlist all -m ping |
コメント