Ansible-トラブルシューティング
Ansibleプレイブックをデバッグするための最も一般的な戦略は、以下のモジュールを使用することです。
デバッグと登録
これら2つは、Ansibleで使用可能なモジュールです。デバッグの目的で、2つのモジュールを慎重に使用する必要があります。例を以下に示します。
Verbosityを使用する
Ansibleコマンドを使用すると、詳細レベルを指定できます。コマンドは、詳細レベル1(-v)または2(-vv)で実行できます。
重要なポイント
このセクションでは、いくつかの概念を理解するためにいくつかの例を見ていきます。
変数で始まる引数を引用していない場合。例えば、
vars:
age_path: {{vivek.name}}/demo/
{{vivek.name}}
これはエラーをスローします。
解決
vars:
age_path: "{{vivek.name}}/demo/" – marked in yellow is the fix.
How to use register -> Copy this code into a yml file say test.yml and run it
---
#Tsting
- hosts: tomcat-node
tasks:
- shell: /usr/bin/uptime
register: myvar
- name: Just debugging usage
debug: var = myvar
コマンドAnsible-playbook-i hosts test.ymlを使用してこのコードを実行すると、次のような出力が得られます。
yamlが表示されている場合は、コマンドの出力を変数に登録しています– myvar 出力を印刷しました。
黄色でマークされたテキストは、さらにフロー制御に使用できる変数–myvarのプロパティについて説明しています。このようにして、特定の変数の公開されているプロパティについて知ることができます。次のデバッグコマンドはこれに役立ちます。
$ ansible-playbook -i hosts test.yml
PLAY [tomcat-node] ***************************************************************
**************** ****************************************************************
*************** ******************************
TASK [Gathering Facts] *****************************************************************
************** *****************************************************************
************** **************************
Monday 05 February 2018 17:33:14 +0530 (0:00:00.051) 0:00:00.051 *******
ok: [server1]
TASK [command] ******************************************************************
************* ******************************************************************
************* **********************************
Monday 05 February 2018 17:33:16 +0530 (0:00:01.697) 0:00:01.748 *******
changed: [server1]
TASK [Just debugging usage] ******************************************************************
************* ******************************************************************
************* *********************
Monday 05 February 2018 17:33:16 +0530 (0:00:00.226) 0:00:01.974 *******
ok: [server1] => {
"myvar": {
"changed": true,
"cmd": "/usr/bin/uptime",
"delta": "0:00:00.011306",
"end": "2018-02-05 17:33:16.424647",
"rc": 0,
"start": "2018-02-05 17:33:16.413341",
"stderr": "",
"stderr_lines": [],
"stdout": " 17:33:16 up 7 days, 35 min, 1 user, load average: 0.18, 0.15, 0.14",
"stdout_lines": [
" 17:33:16 up 7 days, 35 min, 1 user, load average: 0.18, 0.15, 0.14"
]
}
}
PLAY RECAP ****************************************************************************
**********************************************************************************
**************************************
server1 : ok = 3 changed = 1 unreachable = 0 failed = 0
一般的なプレイブックの問題
このセクションでは、いくつかの一般的なプレイブックの問題について学習します。問題は-
- Quoting
- Indentation
Playbookはyaml形式で記述されており、上記の2つはyaml / playbookで最も一般的な問題です。
Yamlはタブベースのインデントをサポートせず、スペースベースのインデントをサポートしているため、同じことに注意する必要があります。
Note − yamlの記述が完了したら、このサイトを開きます(https://editor.swagger.io/)そして、yamlが正しくコンパイルされるように、左側にyamlをコピーして貼り付けます。これはほんの一例です。
Swaggerは、エラーだけでなく警告のエラーも修飾します。