CentOS 6.2下安装 openstack 2012.1

现在 ubuntu 上安装已经比较方便,但是 CentOS 下安装 openstack 2012还是比较痛苦,我做了一个软件包,方便大家使用:

http://openstack.pubyun.com/centos/6/pubyun/x86_64/

安装方法如下:

wget -O /etc/yum.repos.d/pubyun.repo http://openstack.pubyun.com/centos/6/pubyun/x86_64/pubyun.repo

安装epel的源:

rpm -i http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm

安装 kvm 虚拟机软件:

yum -y install kvm virt-manager libvirt libvirt-python python-virtinst libvirt-client bridge-utils

安装openstack 和相应的软件:

yum -y install openstack-nova openstack-glance openstack-keystone openstack-dashboard rabbitmq-server python-pip python-tempita ntp ntpdate

#升级 sqlalchemy

pip-python install -U sqlalchemy

启动 mysql server:

chkconfig mysqld on && service mysqld restart

设置和启动 libvritd:

perl -pi -e “s|#mdns_adv|mdns_adv|” /etc/libvirt/libvirtd.conf

perl -pi -e “s|#auth_unix_rw|auth_unix_rw|” /etc/libvirt/libvirtd.conf

chkconfig libvirtd on && service libvirtd restart

virsh net-autostart default –disable

virsh net-destroy default

启动 ntp 时间同步:

chkconfig ntpd on && service ntpd restart

设置用户密码,注意,域名一定要设置正确,否则 rabbitmq-server 无法正常启动。如果不能控制域名服务器:

vi /etc/sysconfig/network

#设置成你要的域名

HOSTNAME=nova.pubyun.com

vi /etc/hosts

#正确配置域名服务器,或者将域名、IP写入 hosts文件

#IP是你当前机器的IP,域名是你刚才设置的域名

172.16.11.12 nova.pubyun.com nova

如果不想重新启动机器,则:

hostname nova.pubyun.com

启动 rabbitmq-server:

chkconfig rabbitmq-server on && service rabbitmq-server restart

rabbitmqctl change_password guest nova

查看rabbitmq-server的状态:

rabbitmqctl list_exchanges

rabbitmqctl list_queues

rabbitmqctl list_bindings

设置 lvm for nova volume:

dd if=/dev/zero of=/var/lib/nova/nova-volumes.img bs=1M seek=20k count=0

vgcreate nova-volumes $(losetup –show -f /var/lib/nova/nova-volumes.img)

设置 nova 的一些参数:

openstack-config-set /etc/nova/nova.conf DEFAULT libvirt_type kvm

openstack-config-set /etc/nova/nova.conf DEFAULT rpc_backend nova.rpc.impl_kombu

openstack-config-set /etc/nova/nova.conf DEFAULT rabbit_host localhost

openstack-config-set /etc/nova/nova.conf DEFAULT rabbit_password nova

openstack-config-set /etc/nova/nova.conf DEFAULT auth_strategy keystone

设置 nova 的数据:

openstack-nova-db-setup

openstack-keystone-db-setup

设置用户名:

cat > keystonerc <

export ADMIN_TOKEN=$(openssl rand -hex 10)

export OS_USERNAME=admin

export OS_PASSWORD=nova

export OS_TENANT_NAME=admin

export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/

EOF

. ./keystonerc

mkdir -p /var/run/keystone

chown keystone.keystone /var/run/keystone/

#启动 keystone

openstack-config-set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN

chkconfig openstack-keystone on && service openstack-keystone restart

#导入keystone数据:

ADMIN_PASSWORD=$OS_PASSWORD openstack-keystone-sample-data

#查看一下,keystone是否工作:

keystone user-list

keystone tenant-list

#设置、启动 glance

openstack-config-set /etc/glance/glance-api.conf paste_deploy flavor keystone

openstack-config-set /etc/glance/glance-registry.conf paste_deploy flavor keystone

openstack-config-set /etc/glance/glance-api-paste.ini filter:authtoken admin_token $ADMIN_TOKEN

openstack-config-set /etc/glance/glance-registry-paste.ini filter:authtoken admin_token $ADMIN_TOKEN

for svc in api registry; do service openstack-glance-$svc start; done

for svc in api registry; do chkconfig openstack-glance-$svc on; done

for svc in api registry; do service openstack-glance-$svc status; done

grep -i error /var/log/glance/*.log

导入image:

curl http://images.ansolabs.com/tty.tgz | tar -xzv

glance add name=aki-tty is_public=true container_format=aki disk_format=aki < aki-tty/image

glance add name=ari-tty is_public=true container_format=ari disk_format=ari < ari-tty/image

glance add name=ami-tty is_public=true container_format=ami disk_format=ami

“kernel_id=$(glance index | awk ‘/aki-tty/ {print $1}’)”

“ramdisk_id=$(glance index | awk ‘/ari-tty/ {print $1}’)”

< <(zcat –force ami-tty/image)

检查 glance 是否正常工作:

glance index

#启动 nova

sed -i -e ‘s/# (pipeline = .*keystone)/1/g’ /etc/nova/api-paste.ini

openstack-config-set /etc/nova/api-paste.ini filter:authtoken admin_token $ADMIN_TOKEN

for svc in api cert compute network objectstore scheduler volume; do service openstack-nova-$svc start; done

for svc in api cert compute network objectstore scheduler volume; do chkconfig openstack-nova-$svc on; done

#nova 是否正常工作

nova flavor-list

nova endpoints

. ./keystonerc

USER_ID=$(keystone user-list | awk ‘/admin / {print $2}’)

ACCESS_KEY=$(keystone ec2-credentials-list –user $USER_ID | awk ‘/admin / {print $4}’)

SECRET_KEY=$(keystone ec2-credentials-list –user $USER_ID | awk ‘/admin / {print $6}’)

cat > novarc <

export EC2_URL=http://localhost:8773/services/Cloud

export EC2_ACCESS_KEY=$ACCESS_KEY

export EC2_SECRET_KEY=$SECRET_KEY

EOF

chmod 600 novarc

. ./novarc

euca-add-keypair nova_key > nova_key.priv

euca-describe-keypairs

nova-manage network create private –multi_host=T –fixed_range_v4=10.9.0.0/16 –num_networks=1 –network_size=256 –bridge=br100 –bridge_interface=eth1

nova-manage floating create –ip_range=192.168.28.32/27

euca-run-instances ami-tty –kernel aki-tty –ramdisk ari-tty -k nova_key

mkdir /var/www/.novaclient

chkconfig httpd on && service httpd restart