【OpenStack】vmware workstation使用devstack安装openstack手记

来源:互联网 发布:车牌号码测吉凶算法 编辑:程序博客网 时间:2024/05/18 01:55
温馨提示:
本blog欢迎转发,但请保留原作者信息:
新浪微博:@孔令贤HW
Blog地址:http://blog.csdn.net/lynn_kong
内容系本人学习、研究和总结,如有雷同,实属荣幸!


之前搭建OpenStack环境全都是在物理服务器上,一步一步手动配置,一步一步安装,对于初学者,我也强烈建议这样做。但是当熟悉流程,甚至可以自定义安装配置之后,对于开始进行OpenStack开发的人来讲,应当尽量使花费在环境搭建上的时间和精力越少越好。于是,开始尝试使用各种自动化的工作。目前自动化安装OpenStack工具有很多,并且很多都是出自名门,比如Rackspace Private Cloud, Fuel, Redhat RDO等等。当然,更多的人可能还是使用devstack。这里我将自己使用devstack,在虚拟机上安装OpenStack的流程记录下来,便于以后查阅。

OpenStack版本:Grizzly

1. 创建ubuntu虚拟机

在VMware Workstation 9上安装ubuntu 12.04.2系统(我安装的是32位)。

安装时,根据自己电脑的配置合理选择cpu和内存的大小,我这里的配置如下:

因为我的物理机用的ADSL上网,所以网络模式我选择NAT,如果你的物理机可以直接联网,那么也可以选择bridge模式。

SCSI controller:

选择创建一个新的、单独的磁盘文件,disk type选择SCSI。

在启动虚拟机之前,先挂载ubuntu的ISO光盘,然后启动虚拟机,安装ubuntu系统,(如果是bridge模式,可以手动指定IP)。

安装完系统之后,一般需要作如下几件事情:
1、以普通用户进入系统,修改root密码,转到root用户
2、修改apt源,然后执行:apt-get update
3、apt-get install openssh-server
4、service ssh restart

排错:
装完系统后,发现中文字符显示乱码(ifconfig的输出有很多"小菱形"):

解决方法如下:
编辑/var/lib/locales/supported.d/local,将"zh_CN GB2312"注释掉,留下"en_US.UTF-8 UTF-8";
编辑/etc/default/locale,修改为:
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
执行:locale-gen
重启系统后,英文显示正常。

提示:虚拟机成功运行后,可以通过物理机的xshell或其他ssh工具登录,操作更方便。

2. 安装vmware tools(可选)

虚拟机创建成功后,一般都会安装vmware tools用来优化显示等。方法如下:
在虚拟机运行的情况下,选择vmware workstation程序菜单中VM > install VMware tools...,其实就是挂载vmware workstation安装目录下的linux.iso文件。进入虚拟机,执行:
mkdir /mnt/cdrom
mount -o ro /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
tar -zxvf VMwareTools-XXXXXX.i386.tar.gz -C /tmp
cd /tmp/vmware-tools-distrib
./vmware-install.pl
然后一路回车。

3. 安装OpenStack

从xshell登录虚拟机,使用root用户,执行:
apt-get install gitgit clone git://github.com/openstack-dev/devstack.git
进入下载下来的devstack目录,新建localrc文件,输入如下内容(Galax8800可以根据自己的喜好修改):
ENABLED_SERVICES=q-meta,q-lbaas,n-obj,n-cpu,n-sch,n-cauth,horizon,mysql,rabbit,sysstat,cinder,c-api,c-vol,c-sch,n-cond,quantum,q-svc,q-agt,q-dhcp,q-l3,n-novnc,n-xvnc,q-lbaas,g-api,g-reg,key,n-api,n-crtDATABASE_PASSWORD=Galax8800ADMIN_PASSWORD=Galax8800SERVICE_PASSWORD=Galax8800SERVICE_TOKEN=Galax8800RABBIT_PASSWORD=Galax8800# Compute ServiceNOVA_BRANCH=stable/grizzly# Volume ServiceCINDER_BRANCH=stable/grizzly# Image ServiceGLANCE_BRANCH=stable/grizzly# Web UI (Dashboard)HORIZON_BRANCH=stable/grizzly# Auth ServicesKEYSTONE_BRANCH=stable/grizzly# Quantum (Network) serviceQUANTUM_BRANCH=stable/grizzly#Enable LoggingLOGFILE=/opt/stack/logs/stack.sh.logVERBOSE=TrueLOG_COLOR=FalseSCREEN_LOGDIR=/opt/stack/logs
提示:如果安装的ubuntu系统是32位,那么只能运行32位的虚拟机。所以需要对stackrc文件做稍许修改。查找"cirros",可以把出现"cirros-0.3.1-x86_64"的地方都修改为"cirros-0.3.1-i386"即可。

在devstack目录下运行./stack.sh,开始安装all-in-one的OpenStack。
可能是我的网速或是物理机系统比较慢,安装过程持续了40多分钟:


4. 验证

安装开始时,会自动创建stack用户,但普通用户执行命令有很多限制,于是先切换到root用户。
在任意目录下新建novarc文件(文件名可以自定义),输入以下内容(Galax8800与之前的配置一致,而且我这里直接使用admin)后,执行source novarc:
export SERVICE_TOKEN=Galax8800export OS_TENANT_NAME=adminexport OS_USERNAME=adminexport OS_PASSWORD=Galax8800export OS_AUTH_URL=http://localhost:5000/v2.0/export SERVICE_ENDPOINT=http://localhost:35357/v2.0
先看一下服务是否正常:


创建一个虚拟机:


虚拟机创建成功:

可以看到虚拟机分到了public ip(172.24.4.227),这个ip的配置是在stack.sh文件中写死的:

可以在localrc中覆盖默认配置。

提示:
如果需要重新开始或修改了localrc文件,可以到devstack目录下执行./unstack.sh,或者直接重启虚拟机。