blob: 7d7a02d50985e2225bb33da267288ca4b8108bf7 (
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
131
132
133
134
135
|
#!/bin/bash
##############################################################################
# Copyright (c) 2016 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
##############################################################################
function print_logo()
{
# if ! apt --installed list 2>/dev/null | grep "figlet"
# then
# sudo apt-get update -y
# sudo apt-get install -y --force-yes figlet
# fi
figlet -ctf slant Compass Installer
set +x; sleep 2; set -x
}
function download_iso()
{
iso_name=`basename $ISO_URL`
rm -f $WORK_DIR/cache/"$iso_name.md5"
curl --connect-timeout 10 -o $WORK_DIR/cache/"$iso_name.md5" $ISO_URL.md5
if [[ -f $WORK_DIR/cache/$iso_name ]]; then
local_md5=`md5sum $WORK_DIR/cache/$iso_name | cut -d ' ' -f 1`
repo_md5=`cat $WORK_DIR/cache/$iso_name.md5 | cut -d ' ' -f 1`
if [[ "$local_md5" == "$repo_md5" ]]; then
return
fi
fi
rm -rf $WORK_DIR/iso
mkdir -p $WORK_DIR/iso
mkdir -p $WORK_DIR/cache
curl --connect-timeout 10 -o $WORK_DIR/cache/$iso_name $ISO_URL
}
function pre_prepare() {
# prepare work dir
rm -rf $WORK_DIR/{installer,vm,network}
mkdir -p $WORK_DIR/installer
mkdir -p $WORK_DIR/vm
mkdir -p $WORK_DIR/network
cp $WORK_DIR/cache/`basename $ISO_URL` $WORK_DIR/iso/centos.iso -f
# copy compass
mkdir -p $WORK_DIR/mnt
sudo mount -o loop $WORK_DIR/iso/centos.iso $WORK_DIR/mnt
cp -rf $WORK_DIR/mnt/compass/compass-core $WORK_DIR/installer/
cp -rf $WORK_DIR/mnt/compass/compass-install $WORK_DIR/installer/
sudo umount $WORK_DIR/mnt
rm -rf $WORK_DIR/mnt
chmod 755 $WORK_DIR -R
sudo cp ${COMPASS_DIR}/deploy/qemu_hook.sh /etc/libvirt/hooks/qemu
rm -rf $WORK_DIR/cache/compass_tmp
mkdir -p $WORK_DIR/cache/compass_tmp
rm -rf $WORK_DIR/cache/jh_env_tmp
mkdir -p $WORK_DIR/cache/jh_env_tmp
sudo mount -o loop $WORK_DIR/cache/$iso_name $WORK_DIR/cache/compass_tmp/
cp $WORK_DIR/cache/compass_tmp/jh_env_package/*.tar.gz $WORK_DIR/cache/jh_env_tmp/
sudo umount $WORK_DIR/cache/compass_tmp/
rm -rf $WORK_DIR/cache/compass_tmp
tar -zxvf $WORK_DIR/cache/jh_env_tmp/env_trusty_deb.tar.gz -C $WORK_DIR/cache/jh_env_tmp
tar -zxvf $WORK_DIR/cache/jh_env_tmp/env_trusty_pip.tar.gz -C $WORK_DIR/cache/jh_env_tmp
}
function prepare_env() {
if [[ "$DEPLOY_FIRST_TIME" == "true" ]]; then
cd $WORK_DIR/cache/jh_env_tmp/jh_deb
dpkg -i *.deb
cd -
fi
}
function _prepare_python_env() {
rm -rf $WORK_DIR/venv
mkdir -p $WORK_DIR/venv
rm -rf ~/.pip
mkdir -p ~/.pip
cd $WORK_DIR/cache/jh_env_tmp/
cat <<EOF > ~/.pip/pip.conf
[global]
find-links = http://127.0.0.1:9999/jh_pip
no-index = true
[install]
trusted-host=127.0.0.1
EOF
nohup python -m SimpleHTTPServer 9999 &
cd -
virtualenv $WORK_DIR/venv
source $WORK_DIR/venv/bin/activate
PIP="markupsafe virtualenv cheetah pyyaml requests netaddr pbr oslo.config ansible"
for i in ${PIP}; do
pip install --upgrade $i
done
service libvirt-bin restart
if sudo service openvswitch-switch status|grep stop; then
sudo service openvswitch-switch start
fi
pid=$(ps -ef | grep SimpleHTTPServer | grep 9999 | awk '{print $2}')
echo $pid
kill -9 $pid
rm -rf ~/.pip/pip.conf
rm -rf $WORK_DIR/cache/jh_env_tmp
}
function prepare_python_env()
{
if [[ "$DEPLOY_FIRST_TIME" == "true" ]]; then
_prepare_python_env
else
source $WORK_DIR/venv/bin/activate
if [[ $? -ne 0 ]]; then
_prepare_python_env
fi
fi
which python
}
|