1openstack icehousemulti完整版.docx
《1openstack icehousemulti完整版.docx》由会员分享,可在线阅读,更多相关《1openstack icehousemulti完整版.docx(49页珍藏版)》请在冰豆网上搜索。
1openstackicehousemulti完整版
openstackicehouse在ubuntu14.04上的搭建过程(多节点)
第一节平台的基本搭建
参考地址:
一、框架图
Openstack三节点架构图
二、准备工作
1,新建三台虚拟机分别为controller、network、compute等三个节点,然后在各自虚拟机目录下,在.vmx中修改成vcpu.hotadd="FALSE"
2,在三台虚拟机上,新建网卡,然后分别设以下ip
controller
vmnet8172.24.54.12
Vmnet110.0.0.11
network
vmnet8172.24.54.22
vmnet110.0.0.21
vmnet210.0.1.21
compute
vmnet8172.24.54.32
vmnet110.0.0.31
vmnet210.0.1.31
具体过程如下:
(1)controller
vi/etc/hostname并写入
controller
vi/etc/hosts并写入
10.0.0.11controller
10.0.0.21network
10.0.0.31compute
vi/etc/network/interfaces
#Themanagementnetworkinterface
autoeth0
ifaceeth0inetstatic
address172.24.54.12
netmask255.255.255.0
gateway172.24.54.2
#Thepublicnetworkinterface
autoeth1
ifaceeth1inetstatic
address10.0.0.11
netmask255.255.255.0
如果不能上外网,添加DNS在目录下创建tail文件,对network和compute也适用
cd/etc/resolvconf/resolv.conf.d/
vimtail写入
nameserver172.24.54.2
(2)network
vi/etc/hostname并写入
network
vi/etc/hosts并写入
10.0.0.11controller
10.0.0.21network
10.0.0.31compute
vi/etc/network/interfaces
#Themanagementnetworkinterface
autoeth0
ifaceeth0inetstatic
address172.24.54.22
netmask255.255.255.0
gateway172.24.54.2
#VMtrafficinterface
autoeth1
ifaceeth1inetstatic
address10.0.0.21
netmask255.255.255.0
#Thepublicnetworkinterface
autoeth2
ifaceeth2inetstatic
address10.0.1.21
netmask255.255.255.0
(3)compute
vi/etc/hostname加入
compute
vi/etc/hosts加入
10.0.0.11controller
10.0.0.21network
10.0.0.31compute
vi/etc/network/interfaces
#Themanagementnetworkinterface
autoeth0
ifaceeth0inetstatic
address172.24.54.32
netmask255.255.255.0
gateway172.24.54.2
#VMtrafficinterface
autoeth1
ifaceeth1inetstatic
address10.0.0.31
netmask255.255.255.0
#VMtrafficinterface
autoeth2
ifaceeth2inetstatic
address10.0.1.31
netmask255.255.255.0
(4)测试
从controller节点
#pingasiteontheinternet:
pingopenstack.org
#pingthemanagementinterfaceonthenetworknode:
pingnetwork
#pingthemanagementinterfaceonthecomputenode:
pingcompute
从network节点:
#pingasiteontheinternet:
pingopenstack.org
#pingthemanagementinterfaceonthecontrollernode:
pingcontroller
#pingtheVMtrafficinterfaceonthecomputenode:
ping172.24.55.31
从compute节点:
#pingasiteontheinternet:
pingopenstack.org
#pingthemanagementinterfaceonthecontrollernode:
pingcontroller
#pingtheVMtrafficinterfaceonthenetworknode:
ping172.24.55.21
三、搭建过程
1,controller节点要安装以下服务
1.1安装支持服务(MySQL和RabbitMQ)。
(1)更新系统以及各依赖关系
apt-getupdate-y&&apt-getupgrade-y&&apt-getdist-upgrade
(2)安装时间同步服务
apt-getinstall-yntp
(3)安装数据库mysql
apt-getinstall-ymysql-serverpython-mysqldb
(4)修改下面文件
vi/etc/mysql/f
bind-address=10.0.0.11
vi/etc/mysql/f
[mysqld]
default-storage-engine=innodb
innodb_file_per_table
collation-server=utf8_general_ci
init-connect='SETNAMESutf8'
character-set-server=utf8
(5)重启数据库
servicemysqlrestart
(6)删除数据库匿名用户
在终端下执行
mysql_install_db
mysql_secure_installation
(7)安装RabbitMQ(MessageQueue)服务:
apt-getinstall-yrabbitmq-server
1.2安装认证服务(Keystone)
(1)安装keystone包
apt-getinstall-ykeystone
(2)为keystone创建数据库
mysql-uroot-p
CREATEDATABASEkeystone;
GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'localhost'IDENTIFIEDBY'KEYSTONE_DBPASS';
GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'%'IDENTIFIEDBY'KEYSTONE_DBPASS';
exit;
(3)移除KeystoneSQLite数据库
rm/var/lib/keystone/keystone.db
(4)编辑修改文件
vi/etc/keystone/keystone.conf
[database]
把connection=sqlite:
////var/lib/keystone/keystone.db改成
connection=mysql:
//keystone:
KEYSTONE_DBPASS@controller/keystone
[DEFAULT]
admin_token=ADMIN
log_dir=/var/log/keystone
(5)重启认证服务并并同步数据库
servicekeystonerestart
keystone-managedb_sync
(6)检查同步结果,看表里面有数据没,有就说明成功了
mysql-uroot-pkeystone
showTABLES;
(7)定义users,tenants,androles:
在终端下先添加环境变量
exportOS_SERVICE_TOKEN=ADMIN
exportOS_SERVICE_ENDPOINT=http:
//controller:
35357/v2.0
在终端下#Createanadministrativeuser
keystoneuser-create--name=admin--pass=admin_pass--email=admin@
keystonerole-create--name=admin
keystonetenant-create--name=admin--description="AdminTenant"
keystoneuser-role-add--user=admin--tenant=admin--role=admin
keystoneuser-role-add--user=admin--role=_member_--tenant=admin
#Createanormaluser
keystoneuser-create--name=demo--pass=demo_pass--email=demo@
keystonetenant-create--name=demo--description="DemoTenant"
keystoneuser-role-add--user=demo--role=_member_--tenant=demo
#Createaservicetenant
keystonetenant-create--name=service--description="ServiceTenant"
(8)定义服务和API端点,在终端分别输入下面两条指令
keystoneservice-create--name=keystone--type=identity--description="OpenStackIdentity"
keystoneendpoint-create\
--service-id=$(keystoneservice-list|awk'/identity/{print$2}')\
--publicurl=http:
//172.24.54.12:
5000/v2.0\
--internalurl=http:
//controller:
5000/v2.0\
--adminurl=http:
//controller:
35357/v2.0
(9)新建两个文件,分别编辑如下,用于导入环境变量,要记住下面文件的路径,以便用时导入
vicreds
#Pastethefollowing:
exportOS_TENANT_NAME=admin
exportOS_USERNAME=admin
exportOS_PASSWORD=admin_pass
exportOS_AUTH_URL="http:
//172.24.54.12:
5000/v2.0/"
viadmin_creds
#Pastethefollowing:
exportOS_USERNAME=admin
exportOS_PASSWORD=admin_pass
exportOS_TENANT_NAME=admin
exportOS_AUTH_URL=http:
//controller:
35357/v2.0
(10)测试Keystone:
#清除OS_SERVICE_TOKEN和OS_SERVICE_ENDPOINT环境变量里的值
unsetOS_SERVICE_TOKENOS_SERVICE_ENDPOINT
#请求授权认证
keystone--os-username=admin--os-password=admin_pass--os-auth-url=http:
//controller:
35357/v2.0token-get
#加载admin认证的环境变量文件
sourceadmin_creds
keystonetoken-get
#加载环境变量文件
sourcecreds
开始测试
keystoneuser-list
keystoneuser-role-list--useradmin--tenantadmin
1.3安装镜像服务(Glance)
(1)安装Glance包:
apt-getinstall-yglancepython-glanceclient
(2)为Glance创建一个MySQL数据库:
mysql-uroot-p
CREATEDATABASEglance;
GRANTALLPRIVILEGESONglance.*TO'glance'@'localhost'IDENTIFIEDBY'GLANCE_DBPASS';
GRANTALLPRIVILEGESONglance.*TO'glance'@'%'IDENTIFIEDBY'GLANCE_DBPASS';
exit;
(3)创建user和role服务:
keystoneuser-create--name=glance--pass=service_pass--email=glance@
keystoneuser-role-add--user=glance--tenant=service--role=admin
(4)注册服务创建端点:
keystoneservice-create--name=glance--type=image--description="OpenStackImageService"
keystoneendpoint-create\
--service-id=$(keystoneservice-list|awk'/image/{print$2}')\
--publicurl=http:
//172.24.54.12:
9292\
--internalurl=http:
//controller:
9292\
--adminurl=http:
//controller:
9292
(5)修改文件/etc/glance/glance-api.conf:
vi/etc/glance/glance-api.conf
[database]
replacesqlite_db=/var/lib/glance/glance.sqlitewith
connection=mysql:
//glance:
GLANCE_DBPASS@controller/glance
[DEFAULT]
rpc_backend=rabbit
rabbit_host=controller
[keystone_authtoken]
auth_uri=http:
//controller:
5000
auth_host=controller
auth_port=35357
auth_protocol=http
admin_tenant_name=service
admin_user=glance
admin_password=service_pass
[paste_deploy]
flavor=keystone
(6)修改文件/etc/glance/glance-registry.conf:
vi/etc/glance/glance-registry.conf
[database]
replacesqlite_db=/var/lib/glance/glance.sqlitewith:
connection=mysql:
//glance:
GLANCE_DBPASS@controller/glance
[keystone_authtoken]
auth_uri=http:
//controller:
5000
auth_host=controller
auth_port=35357
auth_protocol=http
admin_tenant_name=service
admin_user=glance
admin_password=service_pass
[paste_deploy]
flavor=keystone
(7)重启lance-apiandglance-registry服务:
serviceglance-apirestart;serviceglance-registryrestart
(8)同步glance数据:
glance-managedb_sync
(9)测试Glance,上传镜像文件:
sourcecreds
glanceimage-create--name"cirros-0.3.2-x86_64"--is-publictrue--container-formatbare--disk-formatqcow2--locationhttp:
//cdn.download.cirros-
(10)列出镜像:
glanceimage-list
1.4安装计算服务(Nova)
(1)安装nova包:
apt-getinstall-ynova-apinova-certnova-conductornova-consoleauthnova-novncproxynova-schedulerpython-novaclient
(2)为Nova创建mysql数据库
mysql-uroot-p
CREATEDATABASEnova;
GRANTALLPRIVILEGESONnova.*TO'nova'@'localhost'IDENTIFIEDBY'NOVA_DBPASS';
GRANTALLPRIVILEGESONnova.*TO'nova'@'%'IDENTIFIEDBY'NOVA_DBPASS';
exit;
(3)创建user和role服务:
keystoneuser-create--name=nova--pass=service_pass--email=nova@
keystoneuser-role-add--user=nova--tenant=service--role=admin
(4)注册服务并创建端点:
keystoneservice-create--name=nova--type=compute--description="OpenStackCompute"
keystoneendpoint-create\
--service-id=$(keystoneservice-list|awk'/compute/{print$2}')\
--publicurl=http:
//172.24.54.12:
8774/v2/%\(tenant_id\)s\
--internalurl=http:
//controller:
8774/v2/%\(tenant_id\)s\
--adminurl=http:
//controller:
8774/v2/%\(tenant_id\)s
(5)修改文件,在/etc/nova/nova.conf的下方添加下列内容
vi/etc/nova/nova.conf
[database]
connection=mysql:
//nova:
NOVA_DBPASS@controller/nova
[DEFAULT]
rpc_backend=rabbit
rabbit_host=controller
my_ip=172.24.54.11
vncserver_listen=172.24.54.11
vncserver_proxyclient_address=172.24.54.11
auth_strategy=keystone
[keystone_authtoken]
auth_uri=http:
//controller:
5000
auth_host=controller
auth_port=35357
auth_protocol=http
admin_tenant_name=service
admin_user=nova
admin_password=service_pass
(6)删除NovaSQLite数据库:
rm/var/lib/nova/nova.sqlite
(7)同步数据库:
nova-managedbsync
(8)重启nova-*服务:
servicenova-apirestart
servicenova-certrestart
servicenova-conductorrestart
servicenova-consoleauthrestart
servicenova-novncproxyrestart
servicenova-schedulerrestart
(