blob: eb49360400a1801ec7d9a4af1df300be4dc5ab8a (
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#!/bin/bash
##############################################################################
# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
#
# 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
##############################################################################
IMG_DIR=${WORK_DIR}/img
CSAR_DIR=${WORK_DIR}/csar
function juju_env_prepare()
{
sudo rm -f /root/.ssh/known_hosts
sudo rm -f /root/.ssh/known_hosts.old
mkdir -p ${WORK_DIR}/venv
sudo pip install --upgrade virtualenv
virtualenv ${WORK_DIR}/venv
source ${WORK_DIR}/venv/bin/activate
pip install --upgrade python-openstackclient python-neutronclient
}
function juju_download_img()
{
if [ ! -e ${IMG_DIR}/${1##*/} ];then
wget -O ${IMG_DIR}/${1##*/} $1
fi
}
function juju_download_csar()
{
if [ ! -e ${CSAR_DIR}/${1##*/} ];then
wget -O ${CSAR_DIR}/${1##*/} $1
fi
}
function juju_prepare()
{
log_info "juju_prepare enter"
mkdir -p $IMG_DIR
for((i=0;i<${#JUJU_IMG_NAME[@]};i++))
do
juju_download_img ${JUJU_IMG_URL[i]}
if [[ ! $(glance image-list | grep ${JUJU_IMG_NAME[i]}) ]]; then
glance image-create --name=${JUJU_IMG_NAME[i]} \
--disk-format qcow2 --container-format=bare \
--visibility=public --file ${IMG_DIR}/${JUJU_IMG_URL[i]##*/}
fi
done
wget -nc -O $IMG_DIR/$JUJU_VM_IMG $JUJU_VM_IMG_URL
if [[ $(glance image-list | grep $JUJU_VM_IMG) ]]; then
openstack image delete $JUJU_VM_IMG
fi
glance image-create --name=$JUJU_VM_IMG \
--disk-format qcow2 --container-format=bare \
--visibility=public --file $IMG_DIR/$JUJU_VM_IMG
mkdir -p $CSAR_DIR
for((i=0;i<${#CSAR_NAME[@]};i++))
do
juju_download_csar ${CSAR_URL[i]}
done
if [[ ! $(neutron net-list | grep juju-net) ]]; then
neutron net-create juju-net
fi
if [[ ! $(neutron subnet-list | grep juju-subnet) ]]; then
neutron subnet-create juju-net $JUJU_NET_CIDR --name juju-subnet --gateway $JUJU_NET_GW \
--dns_nameservers list=true 8.8.8.8
fi
if [[ ! $(neutron router-list | grep juju-router) ]]; then
neutron router-create juju-router
neutron router-interface-add juju-router juju-subnet
neutron router-gateway-set juju-router ext-net
fi
local default_secgroup_id=$(nova secgroup-list | grep "Default security group" | awk '{print $2}')
if [[ ! $(neutron security-group-rule-list | grep default | grep "icmp") ]]; then
neutron security-group-rule-create --direction ingress --protocol icmp \
--remote-ip-prefix 0.0.0.0/0 $default_secgroup_id
fi
if [[ ! $(neutron security-group-rule-list | grep default | grep "icmp") ]]; then
neutron security-group-rule-create --direction egress --protocol icmp \
--remote-ip-prefix 0.0.0.0/0 $default_secgroup_id
fi
if [[ ! $(neutron security-group-rule-list | grep default | grep "tcp") ]]; then
neutron security-group-rule-create --direction ingress --protocol tcp \
--remote-ip-prefix 0.0.0.0/0 $default_secgroup_id
fi
if [[ ! $(neutron security-group-rule-list | grep default | grep "tcp") ]]; then
neutron security-group-rule-create --direction egress --protocol tcp \
--remote-ip-prefix 0.0.0.0/0 $default_secgroup_id
fi
if [[ ! $(neutron security-group-rule-list | grep default | grep "udp") ]]; then
neutron security-group-rule-create --direction ingress --protocol udp \
--remote-ip-prefix 0.0.0.0/0 $default_secgroup_id
fi
if [[ ! $(neutron security-group-rule-list | grep default | grep "udp") ]]; then
neutron security-group-rule-create --direction egress --protocol udp \
--remote-ip-prefix 0.0.0.0/0 $default_secgroup_id
fi
echo -e 'n\n'|ssh-keygen -q -t rsa -N "" -f /root/.ssh/id_rsa 1>/dev/null
openstack keypair delete jump-key | true
openstack keypair create --public-key /root/.ssh/id_rsa.pub jump-key
openstack flavor show m1.tiny || openstack flavor create --ram 512 --disk 5 --vcpus 1 --public m1.tiny
openstack flavor show m1.small || openstack flavor create --ram 1024 --disk 10 --vcpus 1 --public m1.small
openstack flavor show m1.medium || openstack flavor create --ram 2048 --disk 10 --vcpus 2 --public m1.medium
openstack flavor show m1.large || openstack flavor create --ram 3072 --disk 10 --vcpus 2 --public m1.large
openstack flavor show m1.xlarge || openstack flavor create --ram 8096 --disk 30 --vcpus 4 --public m1.xlarge
openstack quota set --instances 20 admin
openstack quota set --core 30 admin
}
|