かべぎわブログ

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

Ansibleのwith_nestedの動きを確認してみる

概要

with_nestedディレクティブをつかうと2つ以上の配列をまわすことができます。

playbook例

こんなかんじのplaybookでwith_nestedされた結果をdebugで出力してみます。

動きを見てみる

実際に実行してみて動きを見てみます。

  ansible-playbook -i ansible_hosts with_nested.yml 

PLAY [localhost] *****************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************
ok: [localhost]

TASK [with_nested test] **********************************************************************************************************************
ok: [localhost] => (item=[u'AAA', u'111']) => {
    "<type 'list'>": "VARIABLE IS NOT DEFINED!", 
    "changed": false, 
    "item": [
        "AAA", 
        "111"
    ]
}
ok: [localhost] => (item=[u'AAA', u'222']) => {
    "<type 'list'>": "VARIABLE IS NOT DEFINED!", 
    "changed": false, 
    "item": [
        "AAA", 
        "222"
    ]
}
ok: [localhost] => (item=[u'AAA', u'333']) => {
    "<type 'list'>": "VARIABLE IS NOT DEFINED!", 
    "changed": false, 
    "item": [
        "AAA", 
        "333"
    ]
}
ok: [localhost] => (item=[u'BBB', u'111']) => {
    "<type 'list'>": "VARIABLE IS NOT DEFINED!", 
    "changed": false, 
    "item": [
        "BBB", 
        "111"
    ]
}
ok: [localhost] => (item=[u'BBB', u'222']) => {
    "<type 'list'>": "VARIABLE IS NOT DEFINED!", 
    "changed": false, 
    "item": [
        "BBB", 
        "222"
    ]
}
ok: [localhost] => (item=[u'BBB', u'333']) => {
    "<type 'list'>": "VARIABLE IS NOT DEFINED!", 
    "changed": false, 
    "item": [
        "BBB", 
        "333"
    ]
}

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

2つの配列のすべての組み合わせでループされていることがわかります。

おわりに

Ansibleのループがらみは意外といろいろありますよね。


入門Ansible

入門Ansible