Deploy Openstack all-in-one Shell Script
Deploy Openstack all-in-one Shell Script
At present(2015/10), the RDO deploment method can only install VNC console defalut,
and there is no other way to config the configuration file to change to Spice like DevStack.
The following script shows how to deploy quickly.
#!/bin/bash
###############################################
# This shell script is used to deploy openstack
# in one node (a vm or a physical machine)
# which host OS is CentOS (CentOS 7) is
# recommended.
#
# Date: 2015/10/25
###############################################
# get the host ip address
# HOSTIP=`ifconfig | grep "inet " | grep -v "127.0.0.1" | awk '{print $2}'`
HOSTIP=`ifconfig | grep "inet " | grep -v "127.0.0.1" | cut -d: -f2 | awk '{print $1}'`
# update system and install openstack using packstack
sudo yum update -y &&
sudo yum install -y https://rdoproject.org/repos/rdo-release.rpm &&
sudo yum install -y openstack-packstack &&
packstack --allinone
if [[ $? == 0 ]];
then
echo -e "\033[32m ****** Install Openstack successfully ****** \033[0m "
systemctl stop openstack-nova-novncproxy.service
else
echo -e "\033[33m ****** Install Openstack failed ****** \033[0m "
sleep 3
exit
fi
sleep 5
# simplify the nova configuration file
NOVACONF=/etc/nova/nova.conf
if [ -f $NOVACONF ];
then
cp $NOVACONF $NOVACONF.bak &&
cat $NOVACONF.bak | grep -v '^#' | grep -v '^$' > $NOVACONF
fi
sleep 10
# disable vnc server
sed -i '/vnc/d' $NOVACONF && sed -i '2a vnc_enabled=False' $NOVACONF
sleep 5
# install spice proxy
sudo yum install spice-html5 -y &&
sudo yum install openstack-nova-spicehtml5proxy -y &&
sleep 5
# add spice configutation
sudo sed -i '/spice/d' /etc/nova/nova.conf
if [[ $? == 0 ]];
then
echo "[spice]" >> $NOVACONF
echo "enabled=True" >> $NOVACONF
echo "agent_enabled=true" >> $NOVACONF
echo "server_listen=0.0.0.0" >> $NOVACONF
echo "html5proxy_host=0.0.0.0" >> $NOVACONF
echo "html5proxy_port=6082" >> $NOVACONF
echo "html5proxy_base_url=http://$HOSTIP:6082/spice_auto.html" >> $NOVACONF
echo "keymap=en-us" >> $NOVACONF
fi
# open the spice port
iptables -I INPUT -p tcp -m multiport --dports 6082 -m comment --comment "Allow SPICE connections for console access " -j ACCEPT
sleep 5
# restart related services
service openstack-nova-compute restart &&
service httpd restart &&
systemctl enable openstack-nova-spicehtml5proxy &&
systemctl start openstack-nova-spicehtml5proxy.service
# print the result
if [[ $? == 0 ]];
then
echo -e "\033[32m ***************************************************** \033[0m"
echo -e "\033[32m ****** The OpenStack is deployed successfully******** \033[0m"
echo -e "\033[32m ***************************************************** \033[0m"
fi
Run the following scrip as root and get the spice client access addresss:
#!/bin/sh
virsh list | grep "instance" > virshlist.log
ps -ef | grep spice > spiceport.log
hostip=`ifconfig | grep "inet " | grep -v "127.0.0.1" | awk '{print $2}'`
echo "Instance name Access address"
echo "------------------------------------------------------------"
for i in `cat virshlist.log | awk {'print $2'}`
do
# echo $i
virsh dumpxml $i > $i.xml &&
instance_name=`grep "nova:name" $i.xml | cut -d ">" -f 2 | cut -d "<" -f 1` &&
spiceport=`grep $i spiceport.log | awk -F "port=" '{print $2}' | cut -d"," -f1` &&
echo "\033[32m $instance_name \t\t $hostip:$spiceport \033[0m"
done
if downloading from fedora repo is too slowly or some problem like "Cannot retrieve repository"
please change the/etc/yum.repos.d/rdo-release.repo
as following:
[openstack]
name=cloud
baseurl=http://mirrors.sohu.com/centos/7/cloud/x86_64/openstack-liberty/
gpgcheck=0
enabled=1
Deploy Openstack all-in-one Shell Script的更多相关文章
- 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script
这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...
- shell及脚本4——shell script
一.格式 1.1 开头 必须以 "# !/bin/bash" 开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用decla ...
- shell script
一.shell script的编写与执行 1.shell script 的编写中还需要用到下面的注意事项: a.命令的执行是从上到下,从左到右地分析与执行 b.命令.参数间的多个空白都会被忽略掉 c. ...
- (copy) Shell Script to Check Linux System Health
source: http://linoxide.com/linux-shell-script/shell-script-check-linux-system-health/ This article ...
- shell script练习
执行脚本的几种方式: 1. sh a.sh 或者 bash a.sh 调用的是 /bin/bash 进程执行的,所以脚本不需要执行权限. 2. 直接使用绝对路径执行, /home/script/a ...
- CentOS Linux下一个tomcat起停,查看日志的shell script
CentOS 的tomcat安装目录:/usr/local/tomcat vi MyTomcatUitl.sh 创建文件chmod u+x MyTomcatUtil.sh 赋执行 ...
- Shell script for logging cpu and memory usage of a Linux process
Shell script for logging cpu and memory usage of a Linux process http://www.unix.com/shell-programmi ...
- shell script入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- shell script 的追踪与 debug
shell script 的追踪与 debug scripts 在运行之前,最怕的就是出现语法错误的问题了!那么我们如何 debug 呢?有没有办法不需要透过直接运行该 scripts 就可以来判断是 ...
随机推荐
- Android性能优化:手把手带你全面了解 内存泄露 & 解决方案
. 简介 即 ML (Memory Leak)指 程序在申请内存后,当该内存不需再使用 但 却无法被释放 & 归还给 程序的现象2. 对应用程序的影响 容易使得应用程序发生内存溢出,即 OOM ...
- Spring点滴一:Spring Ioc 容器
Spring 容器: Spring 容器是Spring框架的核心.Spring容器将创建Bean对象实例,把它们联系在一起,配置它们,并管理它们整个生命周期从创建到销毁.Spring 容器通过依赖注入 ...
- 使用wmic.exe绕过应用程序白名单(多种方法)
一.Wmic.exe wmic实用程序是一款Microsoft工具,它提供一个wmi命令行界面,用于本地和远程计算机的各种管理功能,以及wmic查询,例如系统设置.停止进程和本地或远程运行脚本.因 ...
- 解题:洛谷2093 JZPFAR
题面 初见K-D Tree 其实这样的题(欧几里得距离第$x$近点对)不应该用K-D Tree做,因为会被构造数据卡成$O(n^2)$,随机的另说. 但是并没有找到合适的K-D Tree的题(区域统计 ...
- 闲:测试memcpy和std::copy vector之间拷贝
预测:底层C函数肯定比stl算法快 结果:少量数据底层快,大数据以上则stl对vector的处理可能更好 C/C++: #include <iostream> #include <v ...
- 题解【bzoj4587 & bzoj4408 [FJOI2016]神秘数】
Description \(n\) 个数的序列,每次询问一个区间,求最小的一个数使得不能用这个区间中的数之和表示. \(n \leq 10^5, \sum a_i \leq 10^9\) 这两个题一个 ...
- Hadoop部署方式-高可用集群部署(High Availability)
版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的高可用集群是建立在完全分布式基础之上的,详情请参考:https://www.cnblogs.com/yinzhengjie/p/90651 ...
- python基础之while语句continue以及break --语法以及案例
1.while 死循环 [root@localhost python]# cat while.py #!/usr/bin/env python # _*_ coding:utf8 _*_ import ...
- Kubernetes Downward API
目录 说明 环境变量方式 将pod信息注入为环境变量 将容器资源信息注入为环境变量 volume挂载方式 作用 说明 我们知道,每个Pod在成功创建出来之后,都会被系统分配唯一的名字.IP地址,并且处 ...
- python中的常用模块(2)
在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件), 经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径 ...