Centos6.4部署OpenStack

現在好多公司都使用Openstack,我做這個也是小菜鳥一個;網上看了一些資料說的都是openstack,但是現在openstack的版本不一樣。
所以親們安裝的時候一定要注意看一下你要安裝的是那個版本,別到最後才發現版本不對;
我的是F版本,按照A-B-C-D-E-F    我只知道E-F版本的,以前的版本不知道是否有過,估計有隻是沒發佈出來吧;
E版本的請看這個:http://longgeek.com/2012/07/31/rhel-6-2-openstack-essex-install-multi-node/
F版本的請看這個:http://blog.csdn.net/ddl007/article/details/8502185?spm=0.0.0.0.BkusGf
在上一個連接中有一個小小錯誤:
打開/etc/tgt/targets.conf  添加如下內容:

include /etc/nova/volumes/*

剛剛來部署openstack性能暫時就先放一放吧!
原來打算寫一個原創的文章來着,結果看到有51同胞已經寫出來了,我還是再寫到我的博客裏吧;
系統Centos6.4
主機名是:openstack.lisys.cn
IP地址是:192.168.1.195(eth0

安裝必要工具:

yum -y install vim wget make gcc automake yum-utils unzip
想安裝openstack必要的源:
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm


安裝openstack組件及依賴包:不要害怕,按照步驟來吧;你看的別的文章肯定沒這麼快一下安裝這麼多的包;
yum --enablerepo=epel-testing install openstack-nova openstack-glance openstack-keystone openstack-quantum openstack-swift openstack-dashboard openstack-utils memcached qpid-cpp-server mysql-server avahi
這個這幾天用epel-testin會報錯說quantum-2013.1找不到,安裝的時候把--enablerepo=epel-testing去掉就可以了!
消息服務器是必須的,
OpenStack默認採用qpid作爲消息服務器,因此此處安裝的是qpid。
安全現在
vim /etc/qpidd.conf
auth=yes----->auth=no
:x保存退出;
selinux設置:
vim /etc/selinux/config
SELINUX=permissive  此模式爲自由模式;
設置DNS控制:
yum install -y dnsmasq-utils
數據庫相關的配置:
開啓mysql,並設置開機自啓
service mysqld start && chkconfig mysqld on
Starting mysqld:                                           [  OK  ]

初始化nova相關數據庫
openstack-db --init --service nova

MySQL user:是登陸數據庫的密碼,即爲數據庫管理員密碼;
初始化glance相關數據庫
openstack-db --init --service glance
開啓AMQP消息功能:
service qpidd start && chkconfig qpidd on
Starting Qpid AMQP daemon:                                 [  OK  ]
開啓libvirt功能:
service libvirtd restart ; chkconfig libvirtd on
Stopping libvirtd daemon:                                  [  OK  ]
Starting libvirtd daemon: 2013-05-21 17:20:23.433+0000: 23858: info : libvirt version: 0.10.2, package: 18.el6_4.5 (CentOS BuildSystem <http://bugs.centos.org>, 2013-05-16-14:53:18, c6b7.bsys.dev.centos.org)
2013-05-21 17:20:23.433+0000: 23858: warning : virGetHostname:2265 : getaddrinfo failed for 'openstack': Name or service not known
                                                           [  OK  ]
啓動glance-api、glance-registry功能:
for svc in api registry ; do service openstack-glance-$svc start; chkconfig openstack-glance-$svc on ;done
Starting openstack-glance-api:                             [  OK  ]
Starting openstack-glance-registry:                        [  OK  ]
dd if=/dev/zero of=/var/lib/nova/nova-volumes.img bs=1M seek=20k count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.8741e-05 s, 0.0 kB/s
vgcreate nova-volumes $(losetup --show -f /var/lib/nova/nova-volumes.img)
  No physical volume label read from /dev/loop0
  Physical volume "/dev/loop0" successfully created
  Volume group "nova-volumes" successfully created
以下兩點很重要,如果不做會導致創建volume失敗!
vim /etc/tgt/targets.conf
include /etc/nova/volumes/*
service tgtd start ; chkconfig tgtd on
Starting SCSI target daemon:                               [  OK  ]
service tgtd start ; chkconfig tgtd on
Starting SCSI target daemon:                               [  OK  ]
openstack-config --set /etc/nova/nova.conf DEFAULT libvirt_type kvm
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-system-x86_64

重啓系統

reboot

重啓libvirt

service libvirtd restart


啓動nova的所有服務:
for svc in api objectstore compute network volume scheduler cert; do service openstack-nova-$svc start; chkconfig openstack-nova-$svc on;  done

啓動服務後,使用ps -aux | grep nova看看是否所有的服務都起來,這些服務包括nova-objectstore、nova-network、nova-volume、nova-scheduler、nova-cert、nova-api、nova-compute。爲了進一步確認服務都正常,務必查看/var/log/nova下的各個服務的日誌文件,看看是否有錯誤或者警告。


注意:此處特別強調一下nova-voluem服務,每次重啓系統後nova-volumes卷都會丟失(具體原因待查),因此,上面執行的命令可能會在啓動volume服務時失敗,具體看日誌。如果確實是這種情況,可以再運行一次:

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

並重啓一次volume服務,若果有提示錯誤,則再嘗試一次:

service openstack-nova-volume restart


初始化keystone服務:
初始化keystone相關的數據庫
openstack-db --init --service keystone

vi創建一個keystonerc的文件,並寫入如下內容用於環境變量:
vim keystonerc
export ADMIN_TOKEN=$(openssl rand -hex 10)
export OS_USERNAME=admin
export OS_PASSWORD=verybadpass
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/

保存並退出,然後執行:
source ./keystonerc

注意:以上文件的內容,最好添加到~/.bashrc中,否則每次重啓系統後,如果通過命令行進行相關操作需找到keystonerc文件,且執行source ./keystonerc


設置配置文件中的admin_token值
openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN

啓動keystone服務
service openstack-keystone start && chkconfig openstack-keystone on

創建簡單的tenant、user、roles、service
ADMIN_PASSWORD=$OS_PASSWORD SERVICE_PASSWORD=servicepass openstack-keystone-sample-data

測試keystone服務是否工作正常
keystone user-list


配置nova使用keystone認證服務:
openstack-config --set /etc/nova/api-paste.ini filter:authtoken admin_tenant_name service
openstack-config --set /etc/nova/api-paste.ini filter:authtoken admin_user nova
openstack-config --set /etc/nova/api-paste.ini filter:authtoken admin_password servicepass
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone

重啓nova的api和compute服務
for svc in api compute; do service openstack-nova-$svc restart; done

驗證nova、keystone是否可連通
nova flavor-list


配置glance使用keystone認證服務:
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_tenant_name service
openstack-config --set /etc/glance/glance-api-paste.ini filter:authtoken admin_user glance
openstack-config --set /etc/glance/glance-api-paste.ini filter:authtoken admin_password servicepass
openstack-config --set /etc/glance/glance-registry-paste.ini filter:authtoken admin_tenant_name service
openstack-config --set /etc/glance/glance-registry-paste.ini filter:authtoken admin_user glance
openstack-config --set /etc/glance/glance-registry-paste.ini filter:authtoken admin_password servicepass

重啓glance的兩個服務
service openstack-glance-api restart
service openstack-glance-registry restart

驗證glance、keystone是否連通
glance index


配置dashboard服務:
啓動httpd服務
service httpd restart && chkconfig httpd on

如果selinux是打開的,我們需要必須做如下設置,以便保證httpd可以訪問其他的網絡服務(dashboard需要與OpenStack其他服務的http API通信)
setsebool -P httpd_can_network_connect=on

至此,我們可以通過 http://192.168.1.195/dashboard 訪問openstack,用戶名爲:nova  密碼爲:servicepass 也就是我們在keystone中設置的密碼

在防火牆中開啓對http服務的訪問許可:
lokkit -p http:tcp
lokkit -p https:tcp


以上這些是我做過後寫上去的;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章