4

Travis-CI を使えばとても簡単です:

  # Run the role/playbook again, checking to make sure it's idempotent.
  - >
    ansible-playbook -i tests/inventory tests/test.yml --connection=local --sudo --extra-vars "take_ownership_of_tmp=$OWN_TMP"
    | grep -q 'changed=0.*failed=0'
    && (echo 'Idempotence test: pass' && exit 0)
    || (echo 'Idempotence test: fail' && exit 1)

しかし、Debian システムで自分の役割をテストする必要があるため、Travis は使用できません。ansible_playbook プロビジョナーで Test-Kitchen を使用しています。

例えば:

私の .kitchen.yml

---
driver:
  name: vagrant

provisioner:
  name: ansible_playbook
  hosts: test-kitchen
  ansible_verbosity: 2
  ansible_verbose: true
  require_ansible_repo: false
  require_chef_omnibus: false
  require_ansible_omnibus: true
  require_chef_for_busser: false
  ansible_omnibus_url: https://raw.githubusercontent.com/neillturner/omnibus-ansible/master/ansible_install.sh

platforms:
  - name: debian-6.0.10-64-nocm
    driver_config: 
      customize:
           memory: 1024
           cpus: 2
      box: puppetlabs/debian-6.0.10-64-nocm
      box_url: https://atlas.hashicorp.com/puppetlabs/boxes/debian-6.0.10-64-nocm/versions/1.0.2/providers/virtualbox.box


suites:
  - name: default

verifier:
  ruby_bindir: '/usr/bin'

テスト プレイブック (test/integration/default/default.yml) は非常にシンプルです

---
- hosts: all
  roles:
    - preconf
  vars:
    #some vars here

preconf ロールの 2 回目の呼び出しを default.yml に追加することはできますが、役に立ちません。

1 回の呼び出しで、kitchen はいくつかの変更された項目を返します。

   PLAY RECAP ******************************************************************** 
   localhost                  : ok=12   changed=8    unreachable=0    failed=0  

ただし、2 つの呼び出しでは、2 つの個別の結果ではなく、アイテムの合計を返します。

   PLAY RECAP ******************************************************************** 
   localhost                  : ok=24   changed=10   unreachable=0    failed=0 

では、プレイブックを 2 回目に実行して、冪等性テストの結果を確認するにはどうすればよいでしょうか?

4

2 に答える 2