From 51bdbde1a2c6425841ef79b00906c01249cea832 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 22:29:53 +0200 Subject: [PATCH 01/12] test playbook --- common/components/monitoring/tests/test.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 common/components/monitoring/tests/test.yml diff --git a/common/components/monitoring/tests/test.yml b/common/components/monitoring/tests/test.yml new file mode 100644 index 0000000..e4a55d3 --- /dev/null +++ b/common/components/monitoring/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: all + + roles: + - role_under_test \ No newline at end of file From b6e4bbd9d072f863eaf615921891cd682d9c5634 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 22:30:41 +0200 Subject: [PATCH 02/12] Test travis build --- .travis.yml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..4864760 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,40 @@ +--- +sudo: required + +env: + - distro: centos7 + init: /usr/lib/systemd/systemd + run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + +services: + - docker + +before_install: + # Pull container. + - 'sudo docker pull geerlingguy/docker-${distro}-ansible:latest' + +script: + - container_id=$(mktemp) + # Run container in detached state. + - 'sudo docker run --detach --volume="${PWD}/common/components/monitoring":/etc/ansible/roles/role_under_test:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' + + # Ansible syntax check. + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check' + + # Test role. + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml' + + # Test role idempotence. + - idempotence=$(mktemp) + - sudo docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | tee -a ${idempotence} + - > + tail ${idempotence} + | grep -q 'changed=0.*failed=0' + && (echo 'Idempotence test: pass' && exit 0) + || (echo 'Idempotence test: fail' && exit 1) + # Ensure HTOP is installed. + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm which htop' + +after_success: + # Clean up. + - 'sudo docker stop "$(cat ${container_id})"' From 5b5b7454c97dbd51e6d15ccbe1c2743d440afde6 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 22:44:06 +0200 Subject: [PATCH 03/12] test with data science box --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4864760..7d67a6b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,17 +16,17 @@ before_install: script: - container_id=$(mktemp) # Run container in detached state. - - 'sudo docker run --detach --volume="${PWD}/common/components/monitoring":/etc/ansible/roles/role_under_test:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' + - 'sudo docker run --detach --volume="${PWD}":/opt/bdr-infra-stack:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' # Ansible syntax check. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/data-science-box/provision.yml --syntax-check' # Test role. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/data-science-box/provision.yml' # Test role idempotence. - idempotence=$(mktemp) - - sudo docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | tee -a ${idempotence} + - sudo docker exec "$(cat ${container_id})" ansible-playbook /opt/data-science-box/provision.yml | tee -a ${idempotence} - > tail ${idempotence} | grep -q 'changed=0.*failed=0' From 0eb185f8fbf472cbb49b21715aa329e78670e5a7 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 22:46:26 +0200 Subject: [PATCH 04/12] fix path --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7d67a6b..9a7ac34 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,14 +19,14 @@ script: - 'sudo docker run --detach --volume="${PWD}":/opt/bdr-infra-stack:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' # Ansible syntax check. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/data-science-box/provision.yml --syntax-check' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/bdr-infra-stack/data-science-box/provision.yml --syntax-check' # Test role. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/data-science-box/provision.yml' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/bdr-infra-stack/data-science-box/provision.yml' # Test role idempotence. - idempotence=$(mktemp) - - sudo docker exec "$(cat ${container_id})" ansible-playbook /opt/data-science-box/provision.yml | tee -a ${idempotence} + - sudo docker exec "$(cat ${container_id})" ansible-playbook /opt/bdr-infra-stack/data-science-box/provision.yml | tee -a ${idempotence} - > tail ${idempotence} | grep -q 'changed=0.*failed=0' From e03a102bec1322c6a92929a55add6a62b470321b Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 22:53:58 +0200 Subject: [PATCH 05/12] try to change cwd --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9a7ac34..3d71106 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ script: - 'sudo docker run --detach --volume="${PWD}":/opt/bdr-infra-stack:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' # Ansible syntax check. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/bdr-infra-stack/data-science-box/provision.yml --syntax-check' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/data-science-box && ansible-playbook provision.yml --syntax-check"' # Test role. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/bdr-infra-stack/data-science-box/provision.yml' From c3014efe0aed099fb51a653ced6098778880a79d Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 22:57:41 +0200 Subject: [PATCH 06/12] Change working dir --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3d71106..9dbb5c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,11 +22,11 @@ script: - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/data-science-box && ansible-playbook provision.yml --syntax-check"' # Test role. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /opt/bdr-infra-stack/data-science-box/provision.yml' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/data-science-box && ansible-playbook provision.yml"' # Test role idempotence. - idempotence=$(mktemp) - - sudo docker exec "$(cat ${container_id})" ansible-playbook /opt/bdr-infra-stack/data-science-box/provision.yml | tee -a ${idempotence} + - sudo docker exec "$(cat ${container_id})" /bin/bash -c "cd /opt/bdr-infra-stack/data-science-box && ansible-playbook provision.yml" | tee -a ${idempotence} - > tail ${idempotence} | grep -q 'changed=0.*failed=0' From de1cf75fcaf6cf0a201cbb9da682356f200d7a05 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 23:05:29 +0200 Subject: [PATCH 07/12] try environment vars --- .travis.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9dbb5c0..d8312fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,9 @@ env: - distro: centos7 init: /usr/lib/systemd/systemd run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + playbook: provision.yml + inventory: example-inventory/dev + working_dir: data-science-box services: - docker @@ -19,14 +22,14 @@ script: - 'sudo docker run --detach --volume="${PWD}":/opt/bdr-infra-stack:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' # Ansible syntax check. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/data-science-box && ansible-playbook provision.yml --syntax-check"' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory} --syntax-check"' # Test role. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/data-science-box && ansible-playbook provision.yml"' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}"' # Test role idempotence. - idempotence=$(mktemp) - - sudo docker exec "$(cat ${container_id})" /bin/bash -c "cd /opt/bdr-infra-stack/data-science-box && ansible-playbook provision.yml" | tee -a ${idempotence} + - sudo docker exec "$(cat ${container_id})" /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}" | tee -a ${idempotence} - > tail ${idempotence} | grep -q 'changed=0.*failed=0' From efcb15f81f11b827db2056df0a49522419908d18 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 23:10:02 +0200 Subject: [PATCH 08/12] try parallel builds & disable idempotence test for now. --- .travis.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index d8312fb..0856454 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,12 @@ env: playbook: provision.yml inventory: example-inventory/dev working_dir: data-science-box + - distro: centos7 + init: /usr/lib/systemd/systemd + run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + playbook: provision.yml + inventory: example-inventory/dev + working_dir: data-science-hub services: - docker @@ -28,15 +34,15 @@ script: - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}"' # Test role idempotence. - - idempotence=$(mktemp) - - sudo docker exec "$(cat ${container_id})" /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}" | tee -a ${idempotence} - - > - tail ${idempotence} - | grep -q 'changed=0.*failed=0' - && (echo 'Idempotence test: pass' && exit 0) - || (echo 'Idempotence test: fail' && exit 1) + #- idempotence=$(mktemp) + #- sudo docker exec "$(cat ${container_id})" /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}" | tee -a ${idempotence} + #- > + # tail ${idempotence} + # | grep -q 'changed=0.*failed=0' + # && (echo 'Idempotence test: pass' && exit 0) + # || (echo 'Idempotence test: fail' && exit 1) # Ensure HTOP is installed. - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm which htop' + #- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm which htop' after_success: # Clean up. From c126fa2f3f29c185b31a50527e2d612102417ce4 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 23:20:41 +0200 Subject: [PATCH 09/12] add prerequisites 1 --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index 0856454..d86ac26 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,11 @@ script: # Run container in detached state. - 'sudo docker run --detach --volume="${PWD}":/opt/bdr-infra-stack:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' + # Install required tools (to be added to ansible script prerequisites). + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "yum install -y bzip2 libselinux-python"' + + + # Ansible syntax check. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory} --syntax-check"' From 356f98cd9ead8fa34e7198b6e20c4deb1273b81b Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 23:24:10 +0200 Subject: [PATCH 10/12] update yum --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d86ac26..0db29fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ script: - 'sudo docker run --detach --volume="${PWD}":/opt/bdr-infra-stack:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' # Install required tools (to be added to ansible script prerequisites). - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "yum install -y bzip2 libselinux-python"' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "yum update && yum install -y bzip2 libselinux-python"' From 34ba9822d7ba3ff68ac8f46f3506c5070b993091 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 23:31:34 +0200 Subject: [PATCH 11/12] selinux --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0db29fd..2b1c91e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ script: - 'sudo docker run --detach --volume="${PWD}":/opt/bdr-infra-stack:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' # Install required tools (to be added to ansible script prerequisites). - - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "yum update && yum install -y bzip2 libselinux-python"' + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "yum update -y && yum install -y bzip2 libselinux-python libselinux selinux-policy-targeted selinux-policy libselinux-utils"' From 7c7f720ac7a421ccb2d9da33cbe63cbad1506e65 Mon Sep 17 00:00:00 2001 From: Stefan van Wouw Date: Thu, 6 Oct 2016 23:41:45 +0200 Subject: [PATCH 12/12] Absolute path to conda so travis can run it --- common/components/conda_env/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/components/conda_env/tasks/main.yml b/common/components/conda_env/tasks/main.yml index 818b98d..51f0301 100644 --- a/common/components/conda_env/tasks/main.yml +++ b/common/components/conda_env/tasks/main.yml @@ -7,7 +7,7 @@ - anaconda_install_dir is defined - name: Load existing environments (1/2) - command: "conda info --envs --json" + command: "{{ anaconda_install_dir }}/bin/conda info --envs --json" register: tmp_out - name: Load existing environments (2/2) @@ -16,7 +16,7 @@ - name: Install new environment {{ anaconda_install_dir}}/envs/{{ conda_env_name }} - command: 'conda create -y -q --json -n {{ conda_env_name }} {{ conda_env_interpreter }} ipykernel {{ conda_env_packages | join(" ") }}' + command: '{{ anaconda_install_dir }}/bin/conda create -y -q --json -n {{ conda_env_name }} {{ conda_env_interpreter }} ipykernel {{ conda_env_packages | join(" ") }}' when: "(anaconda_install_dir ~ '/envs/' ~ conda_env_name) not in tmp_conda_envs_present and conda_env_base is not defined" #- name: Clone existing environment {{ conda_env_base }} to {{ anaconda_install_dir }}/envs/{{ conda_env_name }}