かべぎわブログ

技術的なことについてかけたらいいな…

Ansibleでstep実行をしてみる

概要

Ansibleでステップ実行してplaybookのタスクを確認しながら実行してみたいと思います。

やってみる

たとえばこんなかんじのplaybookがあるとします。

- hosts: localhost
  gather_facts: false
  tasks:
    - name: "saisyo"
      debug: 
        msg: "wawawa"

    - name: "tsugi"
      debug: 
        msg: "sasasa"

    - name: "saigo"
      debug: 
        msg: "dadada"

これを--stepをオプションにつけて実行してあげます。
すると以下のようにタスク毎にこれを実行するかを(N)o/(y)es/(c)ontinue:で選ぶことができます。

$ ansible-playbook step.yml --step

PLAY [localhost] *********************************************************************************************************
Perform task: TASK: saisyo (N)o/(y)es/(c)ontinue: 

yを入力してEnterを押すと実行できます。

$ ansible-playbook step.yml --step

Perform task: TASK: saisyo (N)o/(y)es/(c)ontinue: y

Perform task: TASK: saisyo (N)o/(y)es/(c)ontinue: ************************************************************************

TASK [saisyo] ************************************************************************************************************
ok: [localhost] => {
    "msg": "wawawa"
}

nを押すとそのタスクは実行されず、次のタスクにうつります。

$ ansible-playbook step.yml --step

Perform task: TASK: saisyo (N)o/(y)es/(c)ontinue: y

Perform task: TASK: saisyo (N)o/(y)es/(c)ontinue: ************************************************************************

TASK [saisyo] ************************************************************************************************************
ok: [localhost] => {
    "msg": "wawawa"
}
Perform task: TASK: tsugi (N)o/(y)es/(c)ontinue: n

Perform task: TASK: tsugi (N)o/(y)es/(c)ontinue: *************************************************************************
Perform task: TASK: saigo (N)o/(y)es/(c)ontinue:  

cを入力すると以降はstep実行ではなく、すべてのタスクが実行されます。

$ ansible-playbook step.yml --step

PLAY [localhost] *********************************************************************************************************
Perform task: TASK: saisyo (N)o/(y)es/(c)ontinue:  c

Perform task: TASK: saisyo (N)o/(y)es/(c)ontinue: ************************************************************************

TASK [saisyo] ************************************************************************************************************
ok: [localhost] => {
    "msg": "wawawa"
}

TASK [tsugi] *************************************************************************************************************
ok: [localhost] => {
    "msg": "sasasa"
}

TASK [saigo] *************************************************************************************************************
ok: [localhost] => {
    "msg": "dadada"
}

PLAY RECAP ***************************************************************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0

おわりに

確認しながらできる

Ansible実践ガイド 第2版 (impress top gear)

Ansible実践ガイド 第2版 (impress top gear)