summaryrefslogtreecommitdiffstats
path: root/testapi/update/playbook-update.sh
blob: 86d30e4b2903c6216a2f60ee324642b428e58fe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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