Ansible の使い方(コマンド&Playbook&設定全般)

このページは 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 
/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) 
[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. 
54.xx.xx.xx | SUCCESS => { 
    “ansible_facts”: { 
        “discovered_interpreter_python”: “/usr/bin/python” 
    }, 
    “changed”: false, 
    “ping”: “pong” 

[user01@LAPTOP-2N8G36AO-wsl ansible]$

 

 

 

■解決方法

以下のサイトを参考にしました。

 

ansible: How to avoid warnings

https://askubuntu.com/questions/1280544/ansible-how-to-avoid-warnings

 

 

■.ansible.cfg ファイルを作成する

[user01@LAPTOP-2N8G36AO-wsl ~]$ vi ~/.ansible.cfg
[defaults]
interpreter_python=auto_silent

 

 

 

■コマンド実行結果

[user01@LAPTOP-2N8G36AO-wsl ansible]$ ansible -i hostlist all -m ping 
/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) 
54.xx.xx.xx | SUCCESS => { 
    “ansible_facts”: { 
        “discovered_interpreter_python”: “/usr/bin/python” 
    }, 
    “changed”: false, 
    “ping”: “pong” 

[user01@LAPTOP-2N8G36AO-wsl ansible]$

 

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 
/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) 
54.xx.xx.xx | SUCCESS => { 
    “ansible_facts”: { 
        “discovered_interpreter_python”: “/usr/bin/python” 
    }, 
    “changed”: false, 
    “ping”: “pong” 

[user01@LAPTOP-2N8G36AO-wsl ansible]$

 

 

以下のサイトを参考にしました。

Python (pip) – RequestsDependencyWarning: urllib3 (1.9.1) or chardet (2.3.0) doesn’t match a supported version

https://stackoverflow.com/questions/50202238/python-pip-requestsdependencywarning-urllib3-1-9-1-or-chardet-2-3-0-doe

 

■コマンド実行

[user01@LAPTOP-2N8G36AO-wsl ~]$ sudo pip3 install requests 
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install –user` instead. 
Requirement already satisfied: requests in /usr/lib/python3.6/site-packages 
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/lib/python3.6/site-packages (from requests) 
Requirement already satisfied: idna<2.8,>=2.5 in /usr/lib/python3.6/site-packages (from requests) 
Collecting urllib3<1.25,>=1.21.1 (from requests) 
  Downloading https://files.pythonhosted.org/packages/01/11/525b02e4acc0c747de8b6ccdab376331597c569c42ea66ab0a1dbd36eca2/urllib3-1.24.3-py2.py3-none-any.whl (118kB) 
    100% |????????????????????????????????| 122kB 279kB/s 
Installing collected packages: urllib3 
  Found existing installation: urllib3 1.26.6 
    Uninstalling urllib3-1.26.6: 
      Successfully uninstalled urllib3-1.26.6 
Successfully installed urllib3-1.24.3 
[user01@LAPTOP-2N8G36AO-wsl ~]$

 

 

 

■pip3でrequestsをインストール後にAnsible実行

[user01@LAPTOP-2N8G36AO-wsl ~]$ ansible -i ansible/hostlist all -m ping 
54.xx.xx.xx | SUCCESS => { 
    “ansible_facts”: { 
        “discovered_interpreter_python”: “/usr/bin/python” 
    }, 
    “changed”: false, 
    “ping”: “pong” 

[user01@LAPTOP-2N8G36AO-wsl ~]$

 

 

 

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください