summaryrefslogtreecommitdiffstats
path: root/result_collection_api
diff options
context:
space:
mode:
authorSerenaFeng <feng.xiaowei@zte.com.cn>2016-08-12 00:11:07 +0800
committerSerenaFeng <feng.xiaowei@zte.com.cn>2016-08-15 11:20:04 +0800
commit363476871ad2b07424f9249e1871629943e50985 (patch)
tree54b80f46f000a25ee6577b1ac29dcdd2c849d923 /result_collection_api
parent10b9c64ac2013e08cad6cb2c0c961862a5b9b731 (diff)
update testapi only with one command
when using ansible to do the update, we need to config ansible's hosts file/add ssh_key to ssh_agent/check the connectivity of ansible and playbook...etc, here playbook-update.sh will do all the job automatically JIRA: FUNCTEST-411 Change-Id: Ie635eb9eccd1f4e39a94a352f649e56268744091 Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
Diffstat (limited to 'result_collection_api')
-rw-r--r--result_collection_api/update/README.md28
-rwxr-xr-xresult_collection_api/update/playbook-update.sh90
-rw-r--r--result_collection_api/update/test.yml12
3 files changed, 113 insertions, 17 deletions
diff --git a/result_collection_api/update/README.md b/result_collection_api/update/README.md
index 738f30a..cb0e67b 100644
--- a/result_collection_api/update/README.md
+++ b/result_collection_api/update/README.md
@@ -79,27 +79,21 @@ install ansible, please refer:
```
http://docs.ansible.com/ansible/intro_installation.html
```
-run update.yml
+
+playbook-update.sh
+
arguments:
-: host: remote server, must provide
-user: user used to access to remote server, default to root
-port: exposed port used to access to testapi, default to 8000
-image: testapi's docker image, default to opnfv/testapi:latest
-update_path: templates directory in remote server, default to /tmp/testapi
-mongodb_url: url of mongodb, default to 172.17.0.1, docker0 ip
-swagger_url: swagger access url, default to http://host:port
+: -h|--help show this help text
+-r|--remote remote server
+-u|--user ssh username used to access to remote server
+-i|--identity ssh PublicKey file used to access to remote server
+-e|--execute execute update, if not set just check the ansible connectivity
usage:
```
-ansible-playbook update.yml --extra-vars "
-host=10.63.243.17
-user=zte
-port=8000
-image=opnfv/testapi
-mode=build
-update_path=/tmp/testapi
-mongodb_url=mongodb://172.17.0.1:27017
-swagger_url=http://10.63.243.17:8000"```
+ssh-agent ./playbook-update.sh -r testresults.opnfv.org -u serena -i ~/.ssh/id_rsa -e
+```
+
> **Note:**
> - If documents need to be changed, please modify file
diff --git a/result_collection_api/update/playbook-update.sh b/result_collection_api/update/playbook-update.sh
new file mode 100755
index 0000000..86d30e4
--- /dev/null
+++ b/result_collection_api/update/playbook-update.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+#
+# Author: Serena Feng (feng.xiaoewi@zte.com.cn)
+# Update testapi on remote server using ansible playbook automatically
+#
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+set -e
+
+usage="Script to trigger update automatically.
+
+usage:
+ bash $(basename "$0") [-h|--help] [-h <host>] [-u username] [-i identityfile] [-e|--execute]
+
+where:
+ -h|--help show this help text
+ -r|--remote remote server
+ -u|--user ssh username used to access to remote server
+ -i|--identity ssh PublicKey file used to access to remote server
+ -e|--execute execute update, if not set just check the ansible connectivity"
+
+remote=testresults.opnfv.org
+user=root
+identity=~/.ssh/id_rsa
+hosts=./hosts
+execute=false
+
+# Parse parameters
+while [[ $# > 0 ]]
+ do
+ key="$1"
+ case $key in
+ -h|--help)
+ echo "$usage"
+ exit 0
+ shift
+ ;;
+ -r|--remote)
+ remote="$2"
+ shift
+ ;;
+ -u|--user)
+ user="$2"
+ shift
+ ;;
+ -i|--identity)
+ identity="$2"
+ shift
+ ;;
+ -e|--execute)
+ execute=true
+ ;;
+ *)
+ echo "unknown option"
+ exit 1
+ ;;
+ esac
+ shift # past argument or value
+done
+
+echo $remote > $hosts
+
+echo "add authentication"
+ssh-add $identity
+
+echo "test ansible connectivity"
+ansible -i ./hosts $remote -m ping -u $user
+
+echo "test playbook connectivity"
+ansible-playbook -i $hosts test.yml -e "host=$remote user=$user"
+
+if [ $execute == true ]; then
+ echo "do update"
+ ansible-playbook -i $hosts update.yml -e "host=$remote \
+ user=$user \
+ port=8082 \
+ image=opnfv/testapi \
+ update_path=/home/$user/testapi \
+ mongodb_url=mongodb://172.17.0.1:27017 \
+ swagger_url=http://testresults.opnfv.org/test"
+fi
+
+rm -fr $hosts
+ssh-agent -k
diff --git a/result_collection_api/update/test.yml b/result_collection_api/update/test.yml
new file mode 100644
index 0000000..a886872
--- /dev/null
+++ b/result_collection_api/update/test.yml
@@ -0,0 +1,12 @@
+---
+- hosts: "{{ host }}"
+ remote_user: "{{ user }}"
+ become: yes
+ become_method: sudo
+ vars:
+ user: "root"
+ tasks:
+ - name: test connectivity
+ command: "echo hello {{ host }}"
+ register: result
+ - debug: msg="{{ result }}"