summaryrefslogtreecommitdiffstats
path: root/nsb_setup.sh
blob: 28d31967f0d1cecb687dc17362c3eba3a50888ef (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
#!/usr/bin/env bash
# Copyright (c) 2017 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apt-get update > /dev/null 2>&1
pkg=(python-pip build-essential libssl-dev libffi-dev python3-dev python-dev)
for i in "${pkg[@]}"; do
    dpkg-query -W --showformat='${Status}\n' "${i}"|grep "install ok installed"
    if [  "$?" -eq "1" ]; then
        apt-get -y install "${i}";
    fi
done

pip install ansible==2.3.2 shade==1.17.0 docker-py==1.10.6

if [ $# -eq 1 ]; then
    OPENRC=$(readlink -f -- "$1")
    extra_args="-e openrc_file=${OPENRC}"
    source "${OPENRC}"
    CONTROLLER_IP=$(echo ${OS_AUTH_URL} | sed -ne "s/http:\/\/\(.*\):.*/\1/p")
    export no_proxy="localhost,127.0.0.1,${CONTROLLER_IP},$no_proxy"
fi

if [ "$http_proxy" != "" ] || [ "$https_proxy" != "" ]; then
    extra_args="${extra_args} -e @/tmp/proxy.yml"

    cat <<EOF > /tmp/proxy.yml
---
proxy_env:
  http_proxy: $http_proxy
  https_proxy: $https_proxy
  no_proxy: $no_proxy
EOF
fi

ANSIBLE_SCRIPTS="ansible"

cd ${ANSIBLE_SCRIPTS} &&\
ansible-playbook \
         -e img_modify_playbook='ubuntu_server_cloudimg_modify_samplevnfs.yml' \
         -e YARD_IMG_ARCH='amd64' ${extra_args}\
         -i yardstick-install-inventory.ini nsb_setup.yml
nt_router_interface: type: OS::Neutron::RouterInterface properties: router: { get_resource: management_router } subnet: { get_resource: subnet } floating_ip: type: OS::Neutron::FloatingIP properties: floating_network: { get_param: external_net_name } floating_ip_association: type: OS::Nova::FloatingIPAssociation properties: floating_ip: { get_resource: floating_ip } server_id: {get_resource: vsperf_vm} keypair: type: OS::Nova::KeyPair properties: name: yardstick-key public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0RkXfW6pksd1cZmXuvXZF/Mlqqq3ahIGcGoULOC97XMpu0vdxMpcUwdjwGqMwEXTVyfHidu0l99bLqOCpSUKCmbWx3ONJ+1kqFx4HwsKEWLiyDYqsuMrDeZT1eFjC5avCoTcrIw2wq5NaBb00lDGagNZOeopaL5YIa4+PizEY23+cir24D67NU21Fg3JE92AIeGlNa4j66L3a+lL0hZq74Dilmp42wm4GsbplRO6KJfyaraowHb1X+TmhCjBgHk6M/OJ9yPAroZyJNcwjMAuuxhAYWRuT3SdbnoUR0RG2VhfDh0qNid7vOqLbhKPeaLLFmzkN+9w3WdCp6LbSYt87 yardstick@yardstick.opnfv.org wait_handle: type: OS::Heat::WaitConditionHandle wait_condition: type: OS::Heat::WaitCondition properties: handle: { get_resource: wait_handle } count: 1 timeout: { get_param: timeout } vsperf_vm: type: OS::Nova::Server depends_on: [subnet, keypair] properties: name: { get_param: "OS::stack_name" } image: { get_param: image } flavor: { get_param: flavor } key_name: {get_resource: keypair} networks: - network: { get_resource: network } config_drive: True user_data_format : RAW user_data: str_replace: template: | #!/bin/bash cat <<'CEOF' > /tmp/vsperf_post_build.sh echo "Install vswitchperf" mv /root/vswitchperf /home/ubuntu chown -R ubuntu:ubuntu /home/ubuntu/vswitchperf cd /home/ubuntu/vswitchperf/systems sudo -H -u ubuntu ./build_base_machine.sh echo "Set password less access to MoonGen server" sudo -H -u ubuntu ssh-keygen -b 2048 -t rsa -f /home/ubuntu/.ssh/id_rsa -N '' sudo -H -u ubuntu touch /home/ubuntu/.cloud-warnings.skip echo "Enable 1GB huge pages" update-grub $NOTIFY --data-binary '{"status": "SUCCESS"}' CEOF chmod +x /tmp/vsperf_post_build.sh nohup /tmp/vsperf_post_build.sh & params: $NOTIFY: { get_attr: ['wait_handle', 'curl_cli'] } outputs: vm_uuid: description: uuid of the VM value: { get_attr: [ vsperf_vm, show,id ] }