From 2c1d98f07d06eb8b57fe6a2b8d480fddcae7bbce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Han?= Date: Wed, 21 Jan 2015 09:59:42 +0100 Subject: [PATCH] Add test to the playbooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Through Travis. Signed-off-by: Sébastien Han --- .travis.yml | 35 +++++++++++++++++++++++++++++++++++ tests/inventory | 1 + tests/test.yml | 10 ++++++++++ 3 files changed, 46 insertions(+) create mode 100644 .travis.yml create mode 100644 tests/inventory create mode 100644 tests/test.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..00eac3abb --- /dev/null +++ b/.travis.yml @@ -0,0 +1,35 @@ +--- +language: python +python: "2.7" + +env: + - SITE=test.yml + +before_install: + - sudo apt-get update -qq + - sudo apt-get install -y curl + +install: + # Install Ansible. + - pip install ansible + + # Add ansible.cfg to pick up roles path. + - "{ echo '[defaults]'; echo 'roles_path = ../'; } >> ansible.cfg" + +script: + # Check the role/playbook's syntax. + - "ansible-playbook -i tests/inventory tests/$SITE --syntax-check" + + # Run the role/playbook with ansible-playbook. + - "ansible-playbook -i tests/inventory tests/$SITE --connection=local --sudo" + + # Run the role/playbook again, checking to make sure it's idempotent. + - > + ansible-playbook -i tests/inventory tests/$SITE --connection=local --sudo + | grep -q 'changed=0.*failed=0' + && (echo 'Idempotence test: pass' && exit 0) + || (echo 'Idempotence test: fail' && exit 1) + + # Make sure Ansible is installed (yes, this is contrived, since Ansible was + # already installed via pip earlier...). + - "which ansible" diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 000000000..2fbb50c4a --- /dev/null +++ b/tests/inventory @@ -0,0 +1 @@ +localhost diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 000000000..7b94da40e --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,10 @@ +--- +- hosts: localhost + remote_user: root + roles: + - ceph-common + - ceph-mon + - ceph-osd + - ceph-mds + - ceph-radosgw + - haproxy