aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Rue <dan.rue@linaro.org>2017-07-24 10:53:13 -0500
committerDan Rue <dan.rue@linaro.org>2017-07-25 14:30:00 -0500
commit803a85d89aed82bec4387d4a288812ccd70b6d0d (patch)
tree4e89c03c3b30b5a3ce9c813f62ab40aacc8f19aa
parent35dc236e7bef8d7ff4cd09ed1b90c734643a38ec (diff)
erp-playbook: Use ERP roles from Galaxy
- Add a make rule for retrieving roles - Moves roles that are not in galaxy to local_roles Usage: make provision-drue # latest make provision-drue BUILD_NUM=454 make run-drue # latest make run-drue BUILD_NUM=454 Change-Id: I8faf0f4168f9344c0b0d236336749383941b63e5 Signed-off-by: Dan Rue <dan.rue@linaro.org>
-rw-r--r--erp-playbook/.gitignore1
-rw-r--r--erp-playbook/Makefile17
-rw-r--r--erp-playbook/ansible.cfg1
-rw-r--r--erp-playbook/local_roles/erp-provision-austin-host/README.md (renamed from erp-playbook/roles/erp_provision_austin_host/README.md)6
-rw-r--r--erp-playbook/local_roles/erp-provision-austin-host/defaults/main.yml (renamed from erp-playbook/roles/erp_provision_austin_host/defaults/main.yml)0
-rw-r--r--erp-playbook/local_roles/erp-provision-austin-host/meta/main.yml (renamed from erp-playbook/roles/erp_provision_austin_host/meta/main.yml)0
-rw-r--r--erp-playbook/local_roles/erp-provision-austin-host/tasks/main.yml (renamed from erp-playbook/roles/erp_provision_austin_host/tasks/main.yml)18
-rw-r--r--erp-playbook/local_roles/erp-provision-cambridge-host/README.md (renamed from erp-playbook/roles/erp_provision_cambridge_host/README.md)5
-rw-r--r--erp-playbook/local_roles/erp-provision-cambridge-host/defaults/main.yml (renamed from erp-playbook/roles/erp_provision_cambridge_host/defaults/main.yml)0
-rw-r--r--erp-playbook/local_roles/erp-provision-cambridge-host/meta/main.yml (renamed from erp-playbook/roles/erp_provision_cambridge_host/meta/main.yml)0
-rw-r--r--erp-playbook/local_roles/erp-provision-cambridge-host/tasks/main.yml (renamed from erp-playbook/roles/erp_provision_cambridge_host/tasks/main.yml)6
-rw-r--r--erp-playbook/main.yml8
-rw-r--r--erp-playbook/requirements.yml4
-rw-r--r--erp-playbook/roles/erp_get_build/README.md51
-rw-r--r--erp-playbook/roles/erp_get_build/defaults/main.yml14
-rw-r--r--erp-playbook/roles/erp_get_build/meta/main.yml12
-rw-r--r--erp-playbook/roles/erp_get_build/tasks/main.yml22
-rw-r--r--erp-playbook/roles/erp_run_test_suite/README.md35
-rw-r--r--erp-playbook/roles/erp_run_test_suite/defaults/main.yml7
-rw-r--r--erp-playbook/roles/erp_run_test_suite/meta/main.yml12
-rw-r--r--erp-playbook/roles/erp_run_test_suite/tasks/main.yml58
-rw-r--r--erp-playbook/roles/erp_run_test_suite/templates/run_erp_suite.sh40
22 files changed, 46 insertions, 271 deletions
diff --git a/erp-playbook/.gitignore b/erp-playbook/.gitignore
index f367774..5e3f80f 100644
--- a/erp-playbook/.gitignore
+++ b/erp-playbook/.gitignore
@@ -1,2 +1,3 @@
*.retry
builds/
+roles/
diff --git a/erp-playbook/Makefile b/erp-playbook/Makefile
index 05ca943..6418de6 100644
--- a/erp-playbook/Makefile
+++ b/erp-playbook/Makefile
@@ -1,7 +1,24 @@
+BUILD_NUM = # retrieve latest build by default
+
get-last-change:
sh local_scripts/check-for-changes.sh
provision-drue:
+ifeq ($(strip $(BUILD_NUM)),)
ansible-playbook -K -t provision -l erp-drue main.yml
+else
+ ansible-playbook -K -t provision -l erp-drue -e erp_build_number=$(BUILD_NUM) main.yml
+endif
+
run-drue:
+ifeq ($(strip $(BUILD_NUM)),)
ansible-playbook -t run_test -l erp-drue main.yml
+else
+ ansible-playbook -t run_test -l erp-drue -e "{erp_build_number: $(BUILD_NUM)}" main.yml
+endif
+
+roles:
+ ansible-galaxy install -p roles -r requirements.yml
+
+clean:
+ rm -rf roles
diff --git a/erp-playbook/ansible.cfg b/erp-playbook/ansible.cfg
index 8b279b1..c32c89d 100644
--- a/erp-playbook/ansible.cfg
+++ b/erp-playbook/ansible.cfg
@@ -2,3 +2,4 @@
host_key_checking = False
vault_password_file = ~/.vault_pass_erp.txt
inventory = hosts
+roles_path = local_roles
diff --git a/erp-playbook/roles/erp_provision_austin_host/README.md b/erp-playbook/local_roles/erp-provision-austin-host/README.md
index 90c1f24..1bf44f7 100644
--- a/erp-playbook/roles/erp_provision_austin_host/README.md
+++ b/erp-playbook/local_roles/erp-provision-austin-host/README.md
@@ -6,7 +6,9 @@ Provision a host in the Austin lab.
Requirements
------------
-This role expects erp_get_build to run first.
+This role expects
+[Linaro:erp-get-build](https://galaxy.ansible.com/Linaro/erp-get-build/) to run
+first.
Role Variables
--------------
@@ -16,7 +18,7 @@ None
Dependencies
------------
-erp_get_build role.
+[Linaro:erp-get-build](https://galaxy.ansible.com/Linaro/erp-get-build/) role.
License
-------
diff --git a/erp-playbook/roles/erp_provision_austin_host/defaults/main.yml b/erp-playbook/local_roles/erp-provision-austin-host/defaults/main.yml
index e2d4b45..e2d4b45 100644
--- a/erp-playbook/roles/erp_provision_austin_host/defaults/main.yml
+++ b/erp-playbook/local_roles/erp-provision-austin-host/defaults/main.yml
diff --git a/erp-playbook/roles/erp_provision_austin_host/meta/main.yml b/erp-playbook/local_roles/erp-provision-austin-host/meta/main.yml
index 809040d..809040d 100644
--- a/erp-playbook/roles/erp_provision_austin_host/meta/main.yml
+++ b/erp-playbook/local_roles/erp-provision-austin-host/meta/main.yml
diff --git a/erp-playbook/roles/erp_provision_austin_host/tasks/main.yml b/erp-playbook/local_roles/erp-provision-austin-host/tasks/main.yml
index 4e552d3..3a8675a 100644
--- a/erp-playbook/roles/erp_provision_austin_host/tasks/main.yml
+++ b/erp-playbook/local_roles/erp-provision-austin-host/tasks/main.yml
@@ -5,16 +5,16 @@
msg: Run erp_get_build role first
with_items:
- erp_debian_installer_environment
- - erp_latest_build
+ - erp_build_number
- name: Create destination path
file:
- path: "/var/lib/tftpboot/debian-{{erp_debian_installer_environment}}/{{erp_latest_build}}"
+ path: "/var/lib/tftpboot/debian-{{erp_debian_installer_environment}}/{{erp_build_number}}"
state: directory
- name: Copy over new build
copy:
- src: "./builds/debian-{{erp_debian_installer_environment}}/{{erp_latest_build}}/{{item}}"
- dest: "/var/lib/tftpboot/debian-staging/{{erp_latest_build}}/{{item}}"
+ src: "./builds/debian-{{erp_debian_installer_environment}}/{{erp_build_number}}/{{item}}"
+ dest: "/var/lib/tftpboot/debian-staging/{{erp_build_number}}/{{item}}"
with_items:
- "initrd.gz"
- "linux"
@@ -26,18 +26,18 @@
block: |
if [ "${net_default_mac}" = "{{macaddress}}" ]; then
set timeout=5
- set default='Install Debian Jessie - RP {{erp_debian_installer_environment}} - Image {{erp_latest_build}} - Automated'
+ set default='Install Debian Jessie - RP {{erp_debian_installer_environment}} - Image {{erp_build_number}} - Automated'
fi
- name: Update menuentry /var/lib/tftpboot/grub.cfg
blockinfile:
path: /var/lib/tftpboot/grub.cfg
insertafter: EOF
- marker: "# {mark} debian-{{erp_debian_installer_environment}} {{erp_latest_build}}"
+ marker: "# {mark} debian-{{erp_debian_installer_environment}} {{erp_build_number}}"
block: |
- menuentry 'Install Debian Jessie - RP {{erp_debian_installer_environment}} - Image {{erp_latest_build}} - Automated' {
- linux /debian-{{erp_debian_installer_environment}}/{{erp_latest_build}}/linux module_blacklist=mlx5_core auto=true interface=auto priority=critical noshell BOOT_DEBUG=1 DEBIAN_FRONTEND=text url=http://people.linaro.org/~dan.rue/erp-test-automation/releases/17.08/debian/preseed.cfg ---
- initrd /debian-{{erp_debian_installer_environment}}/{{erp_latest_build}}/initrd.gz
+ menuentry 'Install Debian Jessie - RP {{erp_debian_installer_environment}} - Image {{erp_build_number}} - Automated' {
+ linux /debian-{{erp_debian_installer_environment}}/{{erp_build_number}}/linux module_blacklist=mlx5_core auto=true interface=auto priority=critical noshell BOOT_DEBUG=1 DEBIAN_FRONTEND=text url=http://people.linaro.org/~dan.rue/erp-test-automation/releases/17.08/debian/preseed.cfg ---
+ initrd /debian-{{erp_debian_installer_environment}}/{{erp_build_number}}/initrd.gz
}
# XXX: Replace with automation script
diff --git a/erp-playbook/roles/erp_provision_cambridge_host/README.md b/erp-playbook/local_roles/erp-provision-cambridge-host/README.md
index 843e3fd..2e4577b 100644
--- a/erp-playbook/roles/erp_provision_cambridge_host/README.md
+++ b/erp-playbook/local_roles/erp-provision-cambridge-host/README.md
@@ -6,7 +6,8 @@ Provision a host in the Cambridge lab.
Requirements
------------
-This role expects erp_get_build to run first.
+This role expects
+[erp-get-build](https://galaxy.ansible.com/Linaro/erp-get-build/) to run first.
Role Variables
--------------
@@ -16,7 +17,7 @@ None
Dependencies
------------
-erp_get_build role.
+[erp-get-build](https://galaxy.ansible.com/Linaro/erp-get-build/) role.
License
-------
diff --git a/erp-playbook/roles/erp_provision_cambridge_host/defaults/main.yml b/erp-playbook/local_roles/erp-provision-cambridge-host/defaults/main.yml
index e2d4b45..e2d4b45 100644
--- a/erp-playbook/roles/erp_provision_cambridge_host/defaults/main.yml
+++ b/erp-playbook/local_roles/erp-provision-cambridge-host/defaults/main.yml
diff --git a/erp-playbook/roles/erp_provision_cambridge_host/meta/main.yml b/erp-playbook/local_roles/erp-provision-cambridge-host/meta/main.yml
index 809040d..809040d 100644
--- a/erp-playbook/roles/erp_provision_cambridge_host/meta/main.yml
+++ b/erp-playbook/local_roles/erp-provision-cambridge-host/meta/main.yml
diff --git a/erp-playbook/roles/erp_provision_cambridge_host/tasks/main.yml b/erp-playbook/local_roles/erp-provision-cambridge-host/tasks/main.yml
index 9bed8d0..d3d7904 100644
--- a/erp-playbook/roles/erp_provision_cambridge_host/tasks/main.yml
+++ b/erp-playbook/local_roles/erp-provision-cambridge-host/tasks/main.yml
@@ -4,17 +4,17 @@
msg: Run erp_get_build role first
with_items:
- erp_debian_installer_environment
- - erp_latest_build
+ - erp_build_number
# TODO: Replace with API call, once supported.
- name: Upload build to Cambridge Lab
pause:
- prompt: "Upload ./builds/debian-{{erp_debian_installer_environment}}/{{erp_latest_build}}/ files to http://172.27.80.1:5000/admin/images with description 'debian-installer {{erp_debian_installer_environment}} Build {{erp_latest_build}}'. Press <enter> key when complete"
+ prompt: "Upload ./builds/debian-{{erp_debian_installer_environment}}/{{erp_build_number}}/ files to http://172.27.80.1:5000/admin/images with description 'debian-installer {{erp_debian_installer_environment}} Build {{erp_build_number}}'. Press <enter> key when complete"
# TODO: Replace with API call, once supported.
- name: Edit Machines
pause:
- prompt: "In Mr. Provisioner, modify each machine in your host group to {{erp_latest_build}}. <enter> once complete"
+ prompt: "In Mr. Provisioner, modify each machine in your host group to {{erp_build_number}}. <enter> once complete"
# TODO: Replace with API call, once supported.
- name: Reboot machines and install OS
diff --git a/erp-playbook/main.yml b/erp-playbook/main.yml
index d1b8a25..8875666 100644
--- a/erp-playbook/main.yml
+++ b/erp-playbook/main.yml
@@ -12,23 +12,23 @@
- always
roles:
- - role: erp_get_build
+ - role: Linaro.erp-get-build
delegate_to: localhost
run_once: true
tags:
- always
- - role: erp_provision_cambridge_host
+ - role: erp-provision-cambridge-host
delegate_to: localhost
when: "'cambridge_erp' in group_names"
tags:
- provision
- - role: erp_provision_austin_host
+ - role: erp-provision-austin-host
delegate_to: qa-pxe
become: true
become_method: sudo
when: "'austin_erp' in group_names"
tags:
- provision
- - role: erp_run_test_suite
+ - role: Linaro.erp-run-test-suite
tags:
- run_test
diff --git a/erp-playbook/requirements.yml b/erp-playbook/requirements.yml
new file mode 100644
index 0000000..047422f
--- /dev/null
+++ b/erp-playbook/requirements.yml
@@ -0,0 +1,4 @@
+- src: Linaro.erp-get-build
+ version: master
+- src: Linaro.erp-run-test-suite
+ version: master
diff --git a/erp-playbook/roles/erp_get_build/README.md b/erp-playbook/roles/erp_get_build/README.md
deleted file mode 100644
index 93d8dcc..0000000
--- a/erp-playbook/roles/erp_get_build/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-ERP Get Build
-=============
-
-Download an Enterprise Reference Platform (ERP) release.
-
-By default, this role will discover the latest staging ERP build from jenkins,
-set 'erp_latest_build' number, and download the build to ./builds/staging/.
-
-Requirements
-------------
-
-None
-
-Role Variables
---------------
-
-In:
-
-| variable | description | default
-|----------|-------------|---------
-| erp_debian_installer_environment | [staging|release] | staging
-
-Out:
-
-| variable | description | example
-|----------|-------------|---------
-| erp_latest_build | Latest build number, based on debian_installer_environment | 430
-
-Dependencies
-------------
-
-None
-
-Example Playbook
-----------------
-
-Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
-
- - hosts: servers
- roles:
- - role: get_erp_build
-
-License
--------
-
-BSD
-
-Author Information
-------------------
-
-Dan Rue <dan.rue@linaro.org>
diff --git a/erp-playbook/roles/erp_get_build/defaults/main.yml b/erp-playbook/roles/erp_get_build/defaults/main.yml
deleted file mode 100644
index ce959ba..0000000
--- a/erp-playbook/roles/erp_get_build/defaults/main.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-
-# Which debian installer to use. Defaults to staging, but may also be
-# 'release'.
-erp_debian_installer_environment: staging
-
-erp_debian_installer_jenkins_urls:
- staging: "https://ci.linaro.org/view/reference-platform/job/96boards-reference-debian-installer-staging/api/json"
- release: "https://ci.linaro.org/view/reference-platform/job/96boards-reference-debian-installer/api/json"
-
-erp_debian_installer_download_urls:
- staging: "http://builds.96boards.org/snapshots/reference-platform/components/debian-installer-staging/"
- release: "http://builds.96boards.org/snapshots/reference-platform/components/debian-installer/"
-
diff --git a/erp-playbook/roles/erp_get_build/meta/main.yml b/erp-playbook/roles/erp_get_build/meta/main.yml
deleted file mode 100644
index 6bca1d8..0000000
--- a/erp-playbook/roles/erp_get_build/meta/main.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-galaxy_info:
- author: Dan Rue <dan.rue@linaro.org>
- description: Download an ERP release
- company: Linaro
-
- license: BSD
-
- min_ansible_version: 2.2
-
- galaxy_tags: []
-
-dependencies: []
diff --git a/erp-playbook/roles/erp_get_build/tasks/main.yml b/erp-playbook/roles/erp_get_build/tasks/main.yml
deleted file mode 100644
index 3a2fe3e..0000000
--- a/erp-playbook/roles/erp_get_build/tasks/main.yml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-- name: Get latest build number from Jenkins
- uri:
- url: "{{erp_debian_installer_jenkins_urls[erp_debian_installer_environment]}}"
- register: jenkins_build_info
-- set_fact:
- erp_latest_build: "{{jenkins_build_info['json']['lastCompletedBuild']['number']}}"
-
-- debug:
- msg: "Latest debian installer {{erp_debian_installer_environment}} build is {{erp_latest_build}}"
-
-- name: Create local builds directory
- file:
- path: "./builds/debian-{{erp_debian_installer_environment}}/{{erp_latest_build}}"
- state: directory
-- name: Download build locally
- get_url:
- url: "{{erp_debian_installer_download_urls[erp_debian_installer_environment]}}/{{erp_latest_build}}/debian-installer/arm64/{{item}}"
- dest: "./builds/debian-{{erp_debian_installer_environment}}/{{erp_latest_build}}/{{item}}"
- with_items:
- - "initrd.gz"
- - "linux"
diff --git a/erp-playbook/roles/erp_run_test_suite/README.md b/erp-playbook/roles/erp_run_test_suite/README.md
deleted file mode 100644
index 0ef7a31..0000000
--- a/erp-playbook/roles/erp_run_test_suite/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-ERP Run Test Suite
-==================
-
-Run the Enteprise Reference Platform (ERP) test suite against a given host.
-
-Requirements
-------------
-
-
-Role Variables
---------------
-
-| variable | description | default
-|----------|-------------|---------
-| erp_squad_environment | [production|staging] | production
-| erp_squad_auth_token | Squad API auth token | No default - required
-
-
-Dependencies
-------------
-
-
-Example Playbook
-----------------
-
-
-License
--------
-
-BSD
-
-Author Information
-------------------
-
-Dan Rue <dan.rue@linaro.org>
diff --git a/erp-playbook/roles/erp_run_test_suite/defaults/main.yml b/erp-playbook/roles/erp_run_test_suite/defaults/main.yml
deleted file mode 100644
index 3e3427c..0000000
--- a/erp-playbook/roles/erp_run_test_suite/defaults/main.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-
-erp_squad_environment: production
-erp_squad_url:
- production: "https://qa-reports.linaro.org"
- staging: "https://staging-qa-reports.linaro.org"
-
diff --git a/erp-playbook/roles/erp_run_test_suite/meta/main.yml b/erp-playbook/roles/erp_run_test_suite/meta/main.yml
deleted file mode 100644
index f3ca3e0..0000000
--- a/erp-playbook/roles/erp_run_test_suite/meta/main.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-galaxy_info:
- author: Dan Rue <dan.rue@linaro.org>
- description: Run the Enteprise Reference Platform (ERP) test suite.
- company: Linaro
-
- license: BSD
-
- min_ansible_version: 2.2
-
- galaxy_tags: []
-
-dependencies: []
diff --git a/erp-playbook/roles/erp_run_test_suite/tasks/main.yml b/erp-playbook/roles/erp_run_test_suite/tasks/main.yml
deleted file mode 100644
index 6531433..0000000
--- a/erp-playbook/roles/erp_run_test_suite/tasks/main.yml
+++ /dev/null
@@ -1,58 +0,0 @@
----
-- name: Verify variables are set
- assert:
- that: "{{ item }} is defined"
- with_items:
- - erp_latest_build
- - erp_squad_environment
- - erp_squad_auth_token
-
-- name: Gather Facts
- setup:
-
-- name: Check for /root/test-definitions
- stat:
- path: /root/test-definitions
- register: tests_run
-- name: Verify host is clean
- fail:
- msg: Error - It looks like tests have already run on this host.
- when: tests_run.stat.exists
-
-- name: Package Prerequisites
- apt:
- update_cache: yes
- cache_valid_time: 86400
- pkg: "{{item}}"
- with_items:
- - git
- - python-pip
- - daemon
- - sysstat # for troubleshooting
- - strace # for troubleshooting
-
-- name: Clone test-definitions repository
- git:
- repo: 'https://git.linaro.org/qa/test-definitions.git'
- dest: /root/test-definitions
- version: erp-17.08
-
-- name: Install python prerequisites
- pip:
- requirements: /root/test-definitions/automated/utils/requirements.txt
-
-- name: Install python prerequisites
- pip:
- name: python-slugify
-
-- name: Copy test harness
- template:
- src: run_erp_suite.sh
- dest: /root/run_erp_suite.sh
- mode: 0755
-
-- name: Run ERP test suite
- # daemon --name ensures only one runs at a time
- command: daemon --name=erp_suite --errlog=/root/run_erp_suite.stderr.log --dbglog=/root/run_erp_suite.stdout.log -- /root/run_erp_suite.sh {{erp_latest_build}}
- environment:
- SQUAD_AUTH_TOKEN: "{{erp_squad_auth_token}}"
diff --git a/erp-playbook/roles/erp_run_test_suite/templates/run_erp_suite.sh b/erp-playbook/roles/erp_run_test_suite/templates/run_erp_suite.sh
deleted file mode 100644
index 6ee554b..0000000
--- a/erp-playbook/roles/erp_run_test_suite/templates/run_erp_suite.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-
-if [ -z $1 ]; then
- echo "Usage: $0 <build_number>"
- exit 1
-fi
-
-report_url="{{erp_squad_url[erp_squad_environment]}}"
-plans="plans/rpb_ee/rpb_ee_functional.yaml plans/rpb_ee/rpb_ee_enterprise.yaml plans/rpb_ee/rpb_ee_performance.yaml plans/rpb_ee/rpb_ee_ltp.yaml"
-
-root_path=/root
-td_path=${root_path}/test-definitions
-
-# Gather environmental info for erp project and environment names
-vendor_name=$(slugify `cat /sys/devices/virtual/dmi/id/board_vendor`)
-board_name=$(slugify `cat /sys/devices/virtual/dmi/id/board_name`)
-os_name=$(slugify `grep ^ID= /etc/os-release | awk -F= '{print $2}'`)
-
-cd ${td_path}
-. ./automated/bin/setenv.sh
-build_id=$1-$(dpkg-query -W -f '${package}-${version}\n' | grep linaro | md5sum | cut -c -8)
-
-for plan in ${plans}; do
- plan_short=$(basename -s .yaml ${plan})
- output_path=${root_path}/${build_id}-${plan_short}
- mkdir -p ${output_path}
- test-runner -o ${output_path} \
- -p ${plan} \
- > ${output_path}/test-runner-stdout.log \
- 2> ${output_path}/test-runner-stderr.log
- post-to-squad -r ${output_path}/result.json \
- -b ${build_id} \
- -a ${output_path}/result.csv \
- -a ${output_path}/test-runner-stdout.log \
- -a ${output_path}/test-runner-stderr.log \
- -u ${report_url} \
- -t erp-${vendor_name} \
- -p staging-debian \
- > ${output_path}/post-to-squad.log 2>&1
-done