OpenStack系列讲座4:OpenStack在CentOS 5.6下的安装

来源:互联网 发布:区间交易软件 编辑:程序博客网 时间:2024/04/27 21:50

 因为 Python 的版本问题,在 CentOS 5.6 上安装 OpenStack 不是件容易的事情,因为 OpenStack 是 Python 2.6 写的,CentOS 5.6 上默认的是 Python 2.4 的环境,一些关键工具(比如 yum 等)和依赖关系都需要 2.4,不容易直接升级到 2.6,所以要在 CentOS 上安装 OpenStack 的话简单的办法是直接用 CentOS 6.0(默认是 Python 2.6). 

安装和配置基本系统

在安装完基本的 CentOS 6.0 系统后(最小化安装)升级和更新整个系统,然后关闭 SELINUX 后重启,为了简单方便最好也关闭 iptables:

# yum update# yum upgrade# vi /etc/sysconfig/selinuxSELINUX=disabled# chkconfig iptables off# service iptables stop# shutdown -r now

安装 OpenStack Nova

下载和安装 OpenStack 源:

# wget http://yum.griddynamics.net/yum/diablo-3/openstack/openstack-repo-2011.3-0.3.noarch.rpm# rpm -ivh openstack-repo-2011.3-0.3.noarch.rpm

OpenStack Nova 需要在控制结点(Cloud Controller)和计算结点(Cloud Compute)上都安装和启用 libvirtd:

# yum install libvirt# chkconfig libvirtd on# service libvirtd start

如果服务器用来做 Cloud Controller 结点需要安装(OpenStack Nova 云里至少要有一台服务器作为控制结点):

# yum install euca2ools openstack-nova-node-full unzip

如果服务器只是做计算结点则需要在每个 Cloud Compute 结点上都安装(理论上 OpenStack Nova 云里可以有无数个计算结点):

# yum install euca2ools openstack-nova-node-full

配置 MySQL 数据库

OpenStack Nova 需要数据库的支持,这里用的是 MySQL:

# service mysqld start# chkconfig mysqld on# service rabbitmq-server start# chkconfig rabbitmq-server on

修改 MySQL 绑定地址,以便其他的节点服务器也能访问这个数据库:

# vi /etc/my.cnf...#bind-address = 127.0.0.1bind-address = 0.0.0.0...# service mysql restart

创建一个名为 nova 的数据库,并设置 root 从任何 IP 访问的权限和密码:

# mysql -uroot -ppassword -e 'CREATE DATABASE nova;'# mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON *.* TO \'root'@'%' WITH GRANT OPTION;"# mysql -uroot -ppassword -e "SET PASSWORD FOR \'root'@'%' = PASSWORD('password');"

配置 Nova:

$ sudo vi /etc/nova/nova.conf--verbose=false--ec2_url=http://172.16.39.111:8773/services/Cloud--s3_host=172.16.39.111--cc_host=172.16.39.111--rabbit_host=172.16.39.111--sql_connection=mysql://nova:nova@172.16.39.111/nova--glance_api_servers=172.16.39.111:9292--use_s3=true--libvirt_type=kvm--use_syslog=false--node_availability_zone=nova--logdir=/var/log/nova--logging_context_format_string=%(asctime)s %(name)s: %(levelname)s [%(request_id)s %(user)s %(project)s] %(message)s--logging_default_format_string=%(asctime)s %(name)s: %(message)s--logging_debug_format_suffix=--use_cow_images=true--auth_driver=nova.auth.dbdriver.DbDriver--network_manager=nova.network.manager.VlanManager--scheduler_driver=nova.scheduler.zone.ZoneScheduler--image_service=nova.image.glance.GlanceImageService--use_ipv6=false--ca_path=/var/lib/nova/CA--keys_path=/var/lib/nova/keys--images_path=/var/lib/nova/images--buckets_path=/var/lib/nova/buckets--instances_path=/var/lib/nova/instances--networks_path=/var/lib/nova/networks--dhcpbridge_flagfile=/etc/nova/nova.conf--dhcpbridge=/usr/bin/nova-dhcpbridge--injected_network_template=/usr/share/nova/interfaces/--libvirt_xml_template=/usr/share/nova/libvirt.xml.template--vpn_client_template=/usr/share/nova/client.ovpn.template--credentials_template=/usr/share/nova/novarc.template--state_path=/var/lib/nova--lock_path=/var/lib/nova/tmp--vnc_enabled=true--vncproxy_url=http://172.16.39.111:6080--vncserver_host=0.0.0.0--vnc_token_ttl=300

每次重启一堆服务很麻烦,写个脚本方便重启 nova 所有服务:

# vi nova-restart-all.sh#!/bin/bashfor n in api compute network objectstore scheduler vncproxy; do service openstack-nova-$n restart; doneservice openstack-glance-api restartservice openstack-glance-registry restart# chmod +x nova-restart-all.sh# ./nova-restart-all.sh

使用 Nova

接下来的步骤和在 Ubuntu 上安装和配置 OpenStack Nova 差不多,这里就不再赘述:

# nova-manage db sync# nova-manage network create 192.168.0.0/24 1 255# nova-manage floating create 10.10.10.2 10.10.10.224/27# nova-manage user admin vpsee# nova-manage project create mycloud vpsee

导出权限信息:

# mkdir /home/vpsee/creds# nova-manage project zipfile mycloud vpsee /home/vpsee/creds/novacreds.zip# cd /home/vpsee/creds# unzip novacreds.zip# chown -R vpsee:vpsee /home/vpsee/creds/# source /home/vpsee/creds/novarc

再次重启 nova 相关的所有服务:

# ./nova-restart-all.sh

如果一切正常的话,应该可以看到下面的类似信息,这样 OpenStack Nova 就成功安装了:

# euca-describe-availability-zones verboseAVAILABILITYZONE nova availableAVAILABILITYZONE |- node00AVAILABILITYZONE | |- nova-network enabled :-) 2011-08-16 19:28:13AVAILABILITYZONE | |- nova-compute enabled :-) 2011-08-16 19:28:22AVAILABILITYZONE | |- nova-scheduler enabled :-) 2011-08-16 19:28:14

启动第一个实例

启动实例之前需要先上传一个系统模版(称之为镜像 image),自己制作 image 有点麻烦,可以参考:为 OpenStack Nova 制作 Ubuntu 镜像 和 为 OpenStack Nova 制作 Windows 镜像。

有了 image 后就可以启动实例了,就像在 C++/Java 等面向对象语言里面有了类(class)以后可以创建实例(instance)一样,这里有了 OS image 以后就可以创建 OS instance 了。启动和访问实例可以看这篇的相关部分。

原文:http://www.vpsee.com/2011/08/install-openstack-nova-on-centos/

原创粉丝点击