更新:5月3日,添加安装计算节点的说明(蓝色字体)

OpenStack的essex正式版终于发布了,但是要想在CentOS下通过yum安装估计还得等上一段时间,因此不妨我们来一起通过源代码安装OpenStack,这样也对OpenStack有一个更清晰的认识。前段时间我一直忙nova这个组件的安装配置,一直各种报错,把我郁闷了好久,最要命的是我是在VMware workstation下安装CentOS6.2实验OpenStack,但是CentOS6.2在虚拟机环境下无法开启虚拟机化技术,而Ubuntu却可以,不得而把电脑重新装了CentOS重新实验。目前nova这个组件已经安装好了,所以我把这些过程写在这里跟大家分享下。这是第一篇,主要是操作系统的安装及系统相关依赖包的安装,下一篇将介绍各组件源代码的安装方法,再往下就是各组件的配置、运行,测试。好了,废话不多说,Let's Go!!!


1.操作系统安装:

安装系统时最好给服务器取个名,不然后面rabbitmq-server可能无法启动,如下图所示:

centos安装proj6 centOS安装源_mysql

在选择安装类型时,选择Desktop,并且选择下面的现在定制,如下图所示:

centos安装proj6 centOS安装源_database_02

Applications部分只选择InternetBrowser即可,该组的可选包只选择firefox,如下图:

centos安装proj6 centOS安装源_centos安装proj6_03

Base System部分默认即可,Databases部分勾选Mysql的两项,其中client的可选包只选python的即可,如下图:

centos安装proj6 centOS安装源_centos安装proj6_04

计算节点只需要安装客户端,不需要安装Mysql服务器

Virtualization部分勾选上面三项,且去掉第二项的可选包,如下图:

centos安装proj6 centOS安装源_service_05

其它未说明部分默认即可,安装完后进入系统创建你的用户和密码,我这里建的是ugyn。

2.安装光盘中的一些依赖包

2.1将当前用户添加到sudoers中

[ugyn@cc ~]$ su
 Password: 
 [root@cc ugyn]# echo 'ugyn ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
 [root@cc ugyn]# su ugyn
 [ugyn@cc ~]$ 
 2.2添加CentOS光盘镜像为repo:[ugyn@cc ~]$ sudo cp /etc/yum.repos.d/CentOS-Media.repo /etc/yum.repos.d/iso.repo
 [ugyn@cc ~]$ sudo vim /etc/yum.repos.d/iso.repo 
 最后我的iso.repo内容为:[iso]
 name=iso
 baseurl=file:///media/iso/
 gpgcheck=1
 enabled=0
 gpgkey=file:///media/iso/RPM-GPG-KEY-CentOS-6挂载镜像:
 [ugyn@cc ~]$ sudo mkdir /media/iso
 [ugyn@cc ~]$ sudo mount -o loop -t iso9660 Downloads/CentOS-6.2-x86_64-bin-DVD1.iso /media/iso 2.3卸载python-crypto:
该软件版本过低,如果不卸载会导致以后glance服务无法启动
[ugyn@cc ~]$ sudo yum --enablerepo=iso --disablerepo=base,updates,extras remove python-crypto
2.4安装光盘中存在的依赖软件:
[ugyn@cc ~]$ sudo yum --enablerepo=iso --disablerepo=base,updates,extras install gcc gcc-c++  python-devel python-setuptools  libxml2-devel libxslt-devel mod_wsginumpy
这里mod_wsgi为安装horizon所必须,numpy为安装noVNC所必须,安装计算节点这两个包都不需要3.安装epel中的一些依赖包:
关于qpid的bug已经被修复,详情见这里:
https://review.openstack.org/#/c/6760/https://github.com/openstack/glance/commit/5bed23cbc962d3c6503f0ff93e6d1e326efbd49d我将使用qpid,这样可以不用安装epel源,省去安装rabbitmq及其依赖的60多包,python-sqlite2, python-greenlet-devel及其依赖的python-greenlet 可以先下载然后手动安装就好了,我将会将这些文件打包跟大家下载。如果使用qpid请安装好python-qpid,python-sqlite2, python-greenlet-devel及其依赖的python-greenlet后直接看第4步。
 下载页:http://dl.fedoraproject.org/pub/epel/6/x86_64/repoview/letter_p.group.html安装:
 sudo yum --enablerepo=iso --disablerepo=base,updates,extras install python-qpid
 sudo rpm -ihv rpms/python-sqlite2-2.3.5-2.el6.x86_64.rpm rpms/python-greenlet-0.3.1-6.el6.x86_64.rpm rpms/python-greenlet-devel-0.3.1-6.el6.x86_64.rpm3.1安装epel源:
 [ugyn@cc ~]$ sudo rpm -i http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm3.2安装epel源中的rabbitmq-server及另两个依赖包:
 [ugyn@cc ~]$ sudo yum install rabbitmq-server python-sqlite2 python-greenlet-devel3.3启动rabbitmq-server:
首先要停掉qpidd,本来OpenStack可以使用qpidd,我在实验中使用时通过glance上传镜像时报错(详情见这里 ),而用rabbitmq没这样的问题
[ugyn@cc ~]$ sudo chkconfig qpidd off && sudo service qpidd stop
[ugyn@cc ~]$ sudo chkconfig rabbitmq-server on && sudo service rabbitmq-server start
设置密码:
[ugyn@cc ~]$ sudo rabbitmqctl change_password guest service123
注意:请确定已经设置好了主机名,不然rabbit可能无法启动

安装计算节点时以下步骤都不需要!!!

4.启动httpd:
 [ugyn@cc ~]$ sudo chkconfig httpd on && sudo service httpd start
 Starting httpd: httpd: apr_sockaddr_info_get() failed for cc.sigsit.org
 httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                            [  OK  ]
 [ugyn@cc ~]$ sudo service httpd status
 httpd (pid  28460) is running...5.启动mysql:
 [ugyn@cc ~]$ sudo chkconfig mysqld on && sudo service mysqld start
 修改配置:
 [ugyn@cc ~]$ sudo vim /etc/my.cnf
 在[mysqld]选项下添加以下两行:
 character-set-server=utf8
 default-storage-engine=InnoDB
 在文件最后添加以下两行:
 [mysql]
 default-character-set=utf8
 重启mysql:
 sudo service mysqld restart
 登录mysql删除匿名用户并设置root密码:
 mysql -uroot
 mysql> use mysql
 mysql> delete from user where User="";
 mysql> update user set Password=password('service123');
 删除test数据库:
 mysql> drop database test;
 创建keystone所需数据库:
 mysql> create database keystone;
 mysql> grant all privileges on keystone.* to 'keystone'@'%' identified by 'keystone';
 创建nova所需数据库:
 mysql> create database nova;
 mysql> grant all privileges on nova.* to 'nova'@'%' identified by 'nova';
 创建glance所需数据库:
 mysql> create database glance;
 mysql> grant all privileges on glance.* to 'glance'@'%' identified by 'glance';
 创建horizon所需数据库:
 mysql> create database horizon;
 mysql> grant all privileges on horizon.* to 'horizon'@'%' identified by 'horizon';
 刷新权限:
 mysql> flush privileges;
 mysql> quit6.配置网桥:
见这里
好了,操作系统部分到这里就差不多了,下面运行下virsh及virt-manager看看主机能否启动虚拟机技术
[ugyn@cc ~]$ sudo virsh version
 Compiled against library: libvir 0.9.4
 Using library: libvir 0.9.4
 Using API: QEMU 0.9.4
 Running hypervisor: QEMU 0.12.1注意virt-manager需要以root用户登录图形界面才能运行。