OpenStack安装手册Word文件下载.docx
《OpenStack安装手册Word文件下载.docx》由会员分享,可在线阅读,更多相关《OpenStack安装手册Word文件下载.docx(25页珍藏版)》请在冰点文库上搜索。
计算节点上运行计算服务中管理实例的管理程序部分。
默认情况下,计算服务使用KVM。
还运行网络代理服务,用来连接实例和虚拟网络以及通过安全组给实例提供防火墙服务。
2、网络
∙公有网络
公有网络选项以尽可能简单的方式通过layer-2(网桥/交换机)服务以及VLAN网络的分割来部署OpenStack网络服务。
实际上,它将虚拟网络桥接到物理网络,并依靠物理网络基础设施提供layer-3服务(路由)。
另外,DHCP服务为实例提供IP地址。
∙私有网络
私有网络选项扩展了公有网络选项,增加了layer-3(路由)服务,使用VXLAN类似的方式。
本质上,它使用NAT路由虚拟网络到物理网络。
另外,这个选项也提供高级服务的基础,比如LBaas和FWaaS。
这里我们选择私有网络。
3、安全
下面是各个需要密码的服务以及解释,建议这些密码使用同一个,以免混淆。
4、主机网络配置
控制节点
∙配置网络接口
Controller:
IP:
192.168.0.112/24GATEWAY:
192.168.0.1
网络配置完之后需要将防火墙和selinux关闭。
∙关闭防火墙:
systemctlstopfirewalld.service
∙禁止防火墙开机启动
systemctldisablefirewalld.service
∙关闭selinux
vim/etc/selinux/config,配置selinux=disabled
#
setenforce0,使配置立即生效
∙配置地址解析
编辑/etc/hosts
#controller
192.168.0.112
controller
#compute1
192.168.0.113
compute1
计算节点
∙配置网络接口。
Compute:
192.168.0.113/24GATEWAY:
同样需要配置地址解析,参考控制节点。
配置完成之后需要进行验证:
∙与外网连通性:
分别在控制节点和计算节点上:
#ping-c4
∙控制节点和计算节点连通性:
控制节点上输入#ping-c4compute1
计算节点上输入#ping-c4controller
5、NTP
∙安装相关包
#yuminstallchrony
∙编辑/etc/chrony.conf
serverNTP_SERVERiburst
可以根据需要将NTP_SERVER替换为合适的NTP服务器,建议不用改。
然后添加:
allow192.168.0.0/24
即允许计算节点同步。
(计算节点IP网段属于192.168.0.0)
#systemctlenablechronyd.service
#systemctlstartchronyd.service
启动服务。
编辑/etc/chrony.conf,可以将其他的几个同步地址注释掉。
servercontrolleriburst
同步控制节点。
(如果发现同步的不是控制节点,那么重启一下NTP服务即可。
#systemctlrestartchronyd.service
验证操作:
在控制节点上同步时间。
#chronycsources
带星号的是NTP当前同步的地址。
计算节点上同步。
#chronycsources
210Numberofsources=1
MSName/IPaddress
StratumPollReachLastRxLastsample
======================================================
^*controller39377
421
+15us[
-87us]+/-
15ms
6、安装OpenStack包
以下操作在所有节点上进行。
∙启用OpenStack库:
#yuminstallcentos-release-openstack-ocata
∙完成安装
1)在所有节点上升级包
#yumupgrade
2)安装OpenStack客户端
#yuminstallpython-openstackclient
3)CentOS默认启用了SELinux,安装openstack-selinux来自动管理OpenStack服务的安全策略。
#yuminstallopenstack-selinux
7、安装数据库
数据库一般运行在控制节点上。
安装并配置组件。
∙安装相关包。
#yuminstallmariadbmariadb-serverpython2-PyMySQL
创建并编辑/etc/f.d/f
文件,并完成以下操作。
在配置文件中添加以下配置:
[mysqld]
bind-address=192.168.0.112
default-storage-engine=innodb
innodb_file_per_table=on
max_connections=4096
collation-server=utf8_general_ci
character-set-server=utf8
其中bind-address为控制节点IP地址。
1)启动数据库并设置开机启动
#systemctlenablemariadb.service
#systemctlstartmariadb.service
2)运行mysql_secure_installation脚本来保证数据库安全,为root账户设置一个合适的密码
#mysql_secure_installation
8、消息队列
OpenStack使用消息队列来协调服务之间的状态和操作,消息队列服务一般运行在控制节点上。
,OpenStack支持RabbitMQ,Qpid以及ZeroMQ等消息队列服务。
本指南使用RabbitMQ消息队列服务。
#yuminstallrabbitmq-server
∙启动消息队列并设置开机启动
#systemctlenablerabbitmq-server.service
#systemctlstartrabbitmq-server.service
∙添加openstack用户
#rabbitmqctladd_useropenstackRABBIT_PASS
Creatinguser"
openstack"
...
使用合适的密码替换掉
RABBIT_PASS
∙允许openstack用户的配置、写、读权限
#rabbitmqctlset_permissionsopenstack"
.*"
"
Settingpermissionsforuser"
invhost"
/"
9、缓存令牌
认证服务的认证机制使用Memcached来缓存令牌,一般运行在控制节点上。
#yuminstallmemcachedpython-memcached
编辑
/etc/sysconfig/memcached文件并配置IP地址,将127.0.0.1改为控制节点IP。
启动
Memcached服务并设置开机启动。
#systemctlenablememcached.service
#systemctlstartmemcached.service
二、认证服务
1、前提条件
∙创建数据库
以root身份登录数据库
$mysql-uroot-p
创建keystone数据库
MariaDB[(none)]>
CREATEDATABASEkeystone;
给数据库赋予适当的权限;
MariaDB[(none)]>
GRANTALLPRIVILEGESONkeystone.*TO'
keystone'
@'
localhost'
\
IDENTIFIEDBY'
KEYSTONE_DBPASS'
;
%'
用合适的密码替换KEYSTONE_DBPASS
2、安装并配置组件
∙运行命令安装相关包
#yuminstallopenstack-keystonehttpdmod_wsgi
编辑文件/etc/keystone/keystone.conf
在[database]选项配置数据库连接
[database]
#...
connection=mysql+pymysql:
//keystone:
KEYSTONE_DBPASS@controller/keystone
替换掉KEYSTONE_DBPASS
在[token]选项中,配置,Fernet令牌提供者:
[token]
#...
provider=fernet
∙同步认证服务数据库
#su-s/bin/sh-c"
keystone-managedb_sync"
keystone
∙初始化Fernetkey仓库
#keystone-managefernet_setup--keystone-userkeystone--keystone-
groupkeystone
#keystone-managecredential_setup--keystone-userkeystone--keystone-groupkeystone
∙引导认证服务
#keystone-managebootstrap--bootstrap-passwordADMIN_PASS\
--bootstrap-admin-urlhttp:
//controller:
35357/v3/\
--bootstrap-internal-urlhttp:
5000/v3/\
--bootstrap-public-urlhttp:
--bootstrap-region-idRegionOne
替换掉
ADMIN_PASS
∙配置Apache服务器
1.编辑
/etc/httpd/conf/httpd.conf并配置ServerName选项,使之参考控制节点
2.给/usr/share/keystone/wsgi-keystone.conf文件创建一个链接
#ln-s/usr/share/keystone/wsgi-keystone.conf/etc/httpd/conf.d/
1.启动Apache服务器并设置开机启动
#systemctlenablehttpd.service
#systemctlstarthttpd.service
2.配置管理账户
$exportOS_USERNAME=admin
$exportOS_PASSWORD=ADMIN_PASS
$exportOS_PROJECT_NAME=admin
$exportOS_USER_DOMAIN_NAME=Default
$exportOS_PROJECT_DOMAIN_NAME=Default
$exportOS_AUTH_URL=http:
35357/v3
$exportOS_IDENTITY_API_VERSION=3
3、创建一个域、项目、用户和角色
o本指南有一个service项目,你添加的每一个服务都有唯一的用户。
$openstackprojectcreate--domaindefault\
--description"
ServiceProject"
service
o普通的任务不应该使用具有特权的项目和用户。
作为示例,本指南创建一个demo项目和用户。
1、创建demo项目:
DemoProject"
demo
2、创建demo用户:
$openstackusercreate--domaindefault\
--password-promptdemo
3、创建user角色:
$openstackrolecreateuser
4、将user角色添加到demo项目和用户中。
$openstackroleadd--projectdemo--userdemouser
4、验证操作
∙出于安全性的原因,禁用掉暂时的认证令牌机制。
编辑/etc/keystone/keystone-paste.ini文件,并从[pipeline:
public_api],
[pipeline:
admin_api],和
api_v3]选项中删除admin_token_auth
∙取消设置临时的OS_AUTH_URL和
OS_PASSWORD环境变量:
$unsetOS_AUTH_URLOS_PASSWORD
∙使用admin用户,请求一个认证令牌;
$openstack--os-auth-urlhttp:
35357/v3\
--os-project-domain-namedefault--os-user-domain-namedefault\
--os-project-nameadmin--os-usernameadmintokenissue
这里遇到错误
由于是Http错误,所以返回ApacheHTTP服务配置的地方,重启Apache服务,并重新设置管理账户:
#systemctlrestarthttpd.service
$exportOS_USERNAME=admin
$exportOS_PASSWORD=ADMIN_PASS
$exportOS_PROJECT_NAME=admin
$exportOS_USER_DOMAIN_NAME=Default
$exportOS_PROJECT_DOMAIN_NAME=Default
$exportOS_AUTH_URL=http:
$exportOS_IDENTITY_API_VERSION=3
错误解决!
∙使用demo用户,请求认证令牌:
$openstack--os-auth-urlhttp:
5000/v3\
--os-project-domain-namedefault--os-user-domain-namedefault\
--os-project-namedemo--os-usernamedemotokenissue
Password:
密码为创建demo用户时的密码。
5、创建OpenStack客户端环境脚本:
在前面章节中,我们使用环境变量和命令的组合来配置认证服务,为了更加高效和方便,我们创建一个脚本方便以后的操作。
这些脚本包括一些公共的操作,但是也支持自定义的操作。
∙创建脚本
创建并编辑
admin-openrc文件,并添加以下内容:
exportOS_PROJECT_DOMAIN_NAME=Default
exportOS_USER_DOMAIN_NAME=Default
exportOS_PROJECT_NAME=admin
exportOS_USERNAME=admin
exportOS_PASSWORD=root
exportOS_AUTH_URL=http:
exportOS_IDENTITY_API_VERSION=3
exportOS_IMAGE_API_VERSION=2
替换掉OS_PASSWORD的密码。
创建并编辑demo-openrc文件,并添加以下内容:
exportOS_PROJECT_NAME=demo
exportOS_USERNAME=demo
exportOS_PASSWORD=DEMO_PASS
5000/v3
∙使用脚本
加载脚本文件更新环境变量:
$.admin-openrc
请求一个认证令牌;
$openstacktokenissue
三、镜像服务
连接数据库,使用root登录。
创建
glance
数据库
CREATEDATABASEglance;
赋予权限:
GRANTALLPRIVILEGESONglance.*TO'
glance'
GLANCE_DBPASS'
替换GLANCE_DBPASS为合适的密码;
退出数据库连接。
∙导入admin证书来获取只有admin才能执行的命令行权限;
∙创建服务认证:
创建glance用户
$openstackusercreate--domaindefault--password-promptglance
添加管理员角色到glance用户和service项目中:
$openstackroleadd--projectservice--userglanceadmin
∙创建glance服务实体
创建镜像服务API端口:
$openstackendpointcreate--regionRegionOne\
imagepublichttp:
9292
imageinternalhttp:
imageadminhttp:
∙安装相关包:
#yuminstallopenstack-glance
∙编辑/etc/glance/glance-api.conf文件,完成以下操作;
在[keystone_authtoken]和[paste_deploy]选项中,配置认证服务权限:
[keystone_authtoken]
auth_uri=http:
5000
auth_url=http:
35357
memcached_servers=controller:
11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=GLANCE_PASS
[paste_deploy]
flavor=keystone
替换掉GLANCE_PASS密码。
删除或注释掉其他[keystone_authtoken]参数。
在[glance_store]选项中,配置本地文件系统存储和镜像文件位置。
[glance_store]
stores=file,http
default_store=file
filesystem_store_datadir=/var/lib/glance/images/
编辑/etc/glance/glance-registry.conf文件,并完成以下操作:
在[database]选项中,配置数据库权限:
//glance:
GLANCE_DBPASS@controller/glance
GLANCE_DBPASS密码。