CentOS 6.2下源代码安装OpenStack图文详解
更新: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可能无法启动,如下图所示:
在选择安装类型时,选择Desktop,并且选择下面的现在定制,如下图所示:
Applications部分只选择InternetBrowser即可,该组的可选包只选择firefox,如下图:
Base System部分默认即可,Databases部分勾选Mysql的两项,其中client的可选包只选python的即可,如下图:
计算节点只需要安装客户端,不需要安装Mysql服务器
Virtualization部分勾选上面三项,且去掉第二项的可选包,如下图:
其它未说明部分默认即可,安装完后进入系统创建你的用户和密码,我这里建的是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.rpm
3.1安装epel源:
[ugyn@cc ~]$ sudo rpm -i http://download.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
3.2安装epel源中的rabbitmq-server及另两个依赖包:
[ugyn@cc ~]$ sudo yum install rabbitmq-server python-sqlite2 python-greenlet-devel
3.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> quit
6.配置网桥:
好了,操作系统部分到这里就差不多了,下面运行下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用户登录图形界面才能运行。