From dd3872e799b1f24ffe16b863aebbde112f76547f Mon Sep 17 00:00:00 2001 From: Yifei Xue Date: Thu, 25 Aug 2016 02:51:37 +0800 Subject: Prepare the jump host offline JIRA: COMPASS-456 Change-Id: Iffc877a0fa4b361daa966cdcdca38c76e35d81ad Signed-off-by: Yifei Xue --- deploy/prepare.sh | 186 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 161 insertions(+), 25 deletions(-) (limited to 'deploy') diff --git a/deploy/prepare.sh b/deploy/prepare.sh index 22183f49..4ce78184 100755 --- a/deploy/prepare.sh +++ b/deploy/prepare.sh @@ -9,11 +9,11 @@ ############################################################################## 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 +# 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 @@ -72,26 +72,162 @@ function _prepare_python_env() { mkdir -p $WORK_DIR/venv if [[ "$DEPLOY_FIRST_TIME" == "true" ]]; then - sudo apt-get update -y - sudo apt-get install -y --force-yes mkisofs bc curl ipmitool openvswitch-switch - sudo apt-get install -y --force-yes git python-dev python-pip - sudo apt-get install -y --force-yes libxslt-dev libxml2-dev libvirt-dev build-essential qemu-utils qemu-kvm libvirt-bin virtinst libmysqld-dev - sudo apt-get install -y --force-yes libffi-dev libssl-dev - fi - - sudo pip install --upgrade virtualenv - virtualenv $WORK_DIR/venv - source $WORK_DIR/venv/bin/activate - - pip install --upgrade cffi - pip install --upgrade MarkupSafe - pip install --upgrade pip - pip install --upgrade cheetah - pip install --upgrade pyyaml - pip install --upgrade requests - pip install --upgrade netaddr - pip install --upgrade oslo.config - pip install --upgrade ansible + + if [[ ! -z "$JHPKG_URL" ]]; then + _pre_env_setup + else + sudo apt-get update -y + sudo apt-get install -y --force-yes mkisofs bc curl ipmitool openvswitch-switch + sudo apt-get install -y --force-yes git python-dev python-pip figlet + sudo apt-get install -y --force-yes libxslt-dev libxml2-dev libvirt-dev build-essential qemu-utils qemu-kvm libvirt-bin virtinst libmysqld-dev + sudo apt-get install -y --force-yes libffi-dev libssl-dev + + fi + else + if [[ ! -z "$JHPKG_URL" ]]; then + _pre_pip_setup + else + sudo pip install --upgrade virtualenv + virtualenv $WORK_DIR/venv + source $WORK_DIR/venv/bin/activate + + pip install --upgrade cffi + pip install --upgrade MarkupSafe + pip install --upgrade pip + pip install --upgrade cheetah + pip install --upgrade pyyaml + pip install --upgrade requests + pip install --upgrade netaddr + pip install --upgrade oslo.config + pip install --upgrade ansible + fi + fi +} + +function _pre_env_setup() +{ + rm -rf $WORK_DIR/prepare + mkdir -p $WORK_DIR/prepare + jhpkg_url=${JHPKG_URL:7} + echo $jhpkg_url + if [[ ! -f "$jhpkg_url" ]]; then + echo "There is no jh_env_package." + exit 1 + fi + + tar -zxvf $jhpkg_url -C $WORK_DIR/prepare/ + cd $WORK_DIR/prepare/jh_env_package + tar -zxvf trusty-jh-ppa.tar.gz + + if [[ -f /etc/apt/apt.conf ]]; then + mv /etc/apt/apt.conf /etc/apt/apt.conf.bak + fi + + cat << EOF > /etc/apt/apt.conf +APT::Get::Assume-Yes "true"; +APT::Get::force-yes "true"; +Acquire::http::Proxy::127.0.0.1:9998 DIRECT; +EOF + + if [[ -f /etc/apt/sources.list ]]; then + mv /etc/apt/sources.list /etc/apt/sources.list.bak + fi + + cat << EOF > /etc/apt/sources.list +deb [arch=amd64] http://127.0.0.1:9998/trusty-jh-ppa trusty main +EOF + + nohup python -m SimpleHTTPServer 9998 & + + cd - + sleep 5 + apt-get update + apt-get install -y mkisofs bc curl ipmitool openvswitch-switch \ + git python-pip python-dev figlet \ + libxslt-dev libxml2-dev libvirt-dev \ + build-essential qemu-utils qemu-kvm libvirt-bin \ + virtinst libmysqld-dev \ + libssl-dev libffi-dev python-cffi + pid=$(ps -ef | grep SimpleHTTPServer | grep 9998 | awk '{print $2}') + echo $pid + kill -9 $pid + + sudo cp ${COMPASS_DIR}/deploy/qemu_hook.sh /etc/libvirt/hooks/qemu + + rm -rf /etc/apt/sources.list + if [[ -f /etc/apt/sources.list.bak ]]; then + mv /etc/apt/sources.list.bak /etc/apt/sources.list + fi + + rm -rf /etc/apt/apt.conf + if [[ -f /etc/apt/apt.conf.bak ]]; then + mv /etc/apt/apt.conf.bak /etc/apt/apt.conf + fi +} + +function _pre_pip_setup() +{ + if [[ -d ~/.pip ]]; then + if [[ -f ~/.pip/pip.conf ]]; then + mv ~/.pip/pip.conf ~/.pip/pip.conf.bak + fi + else + mkdir -p ~/.pip + fi + +# rm -rf ~/.pip +# mkdir -p ~/.pip + rm -rf $WORK_DIR/prepare + mkdir -p $WORK_DIR/prepare + jhpkg_url=${JHPKG_URL:7} + echo $jhpkg_url + if [[ ! -f "$jhpkg_url" ]]; then + echo "There is no jh_env_package." + exit 1 + fi + + tar -zxvf $jhpkg_url -C $WORK_DIR/prepare/ + cd $WORK_DIR/prepare/jh_env_package + tar -zxvf env_trusty_pip.tar.gz + + 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 & + + sleep 5 + + cd - + + pip install --upgrade virtualenv + + virtualenv $WORK_DIR/venv + source $WORK_DIR/venv/bin/activate + + #pip install --upgrade cffi + + PIP="cffi MarkupSafe pip cheetah pyyaml requests netaddr oslo.config ansible" + + #PIP="paramiko jinja2 PyYAML setuptools pycrypto pyasn1 cryptography MarkupSafe idna six enum34 ipaddress pycparser virtualenv cheetah requests netaddr pbr oslo.config ansible" + for i in ${PIP}; do + pip install --upgrade $i + done + + pid=$(ps -ef | grep SimpleHTTPServer | grep 9999 | awk '{print $2}') + echo $pid + kill -9 $pid + + if [[ -f ~/.pip/pip.conf.bak ]]; then + mv ~/.pip/pip.conf.bak ~/.pip/pip.conf + else + rm -rf ~/.pip/pip.conf + fi +# rm -rf ~/.pip/pip.conf } function prepare_python_env() -- cgit 1.2.3-korg