Ansible-troubleshooting

提供:Dev Guides
移動先:案内検索

Ansible-トラブルシューティング

Ansibleプレイブックをデバッグするための最も一般的な戦略は、以下に示すモジュールを使用することです-

デバッグと登録

これら2つは、Ansibleで利用可能なモジュールです。 デバッグのために、2つのモジュールを慎重に使用する必要があります。 以下に例を示します。

冗長性を使用する

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のプロパティを示しています。 このようにして、特定の変数の公開されているプロパティについて調べることができます。 これには次のdebugコマンドが役立ちます。

$ 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

一般的なPlaybookの問題

このセクションでは、いくつかの一般的なプレイブックの問題について学習します。 問題は-

  • 引用
  • インデント

Playbookはyaml形式で記述されており、上記2つはyaml/playbookで最も一般的な問題です。

Yamlはタブベースのインデントをサポートせず、スペースベースのインデントをサポートしているため、同じことに注意する必要があります。

注意-yamlの作成が完了したら、このサイト(https://editor.swagger.io/)を開いて、左側にyamlをコピーして貼り付け、yamlが正しくコンパイルされるようにします。 これはほんの一口です。

Swaggerは、警告とエラーのエラーを限定します。