OpenStackOcata单点部署教程.docx
《OpenStackOcata单点部署教程.docx》由会员分享,可在线阅读,更多相关《OpenStackOcata单点部署教程.docx(51页珍藏版)》请在冰豆网上搜索。
OpenStackOcata单点部署教程
OpenStack
Ocata版本单点部署
姓名:
日期:
1OpenStack安装环境搭建
CenOS7初始配置
单点虚拟机配置:
CPU8核,内存16GB,存储100GB,网卡2块。
操作系统:
CentOS7
在搭建OpenStack安装环境之前需要初始化centos的系统配置,包括网络、在线更新源、安全三个部分。
1.网络
两块网卡一块设置为外网访问IP,另一块设置为本地管理网络IP。
修改配置文件/etc/sysconfig/network-scripts/ifcfg-xxx(根据网卡名称修改):
2.在线更新源
备份原有源文件:
mv/etc//etc/下载网易源文件并更改文件名为:
建立缓存并更新:
yumcleanall
yummakecache
yumupdate
3.安全
关闭防火墙与selinux:
systemctldisable
systemctlstop
setenforce0
配置文件/etc/selinux/config,将SELINUX设置为disabled。
基础环境配置
1.启用OpenStack仓库
yuminstallcentos-release-openstack-ocata
完成安装:
安装OpenStack客户端--yuminstallpython-openstackclient
安装selinux安装包--yuminstallopenstack-selinux
2.设置内外网IP对应主机名
修改配置文件/etc/hosts
退出重新登录即可生效
数据库安装配置
安装相关软件包:
yuminstallmariadb-serverpython2-PyMySQL
编辑配置文件/etc/:
启动数据库服务:
systemctlenable
systemctlstart
设置数据库密码:
mysql_secure_installation
测试登录:
mysql–uroot–p
4.消息队列RabbitMQ安装与配置
安装软件包:
yuminstallrabbitmq-server
启用消息队列服务:
systemctlenable
systemctlstart
添加opensatck用户:
rabbitmqctladd_useropenstackPASS
设置权限:
rabbitmqctlset_permissionsopenstack".*"".*"".*"
安装与配置
Memcached的作用为缓存tokens。
安装相关软件包:
yuminstallmemcachedpython-memcached
配置文件/etc/sysconfig/memcached
启动服务:
systemctlenable
systemctlstart
2Keystone—认证服务
概述
云安全需要考虑数据安全、身份与访问管理安全、虚拟化安全和基础设施安全四个部分。
Keystone为OpenStack中的一个独立的提供安全认证的模块,主要负责OpenStack用户的身份认证、令牌管理、提供访问资源的服务目录,以及基于用户角色的访问控制。
在OpenStack整体框架中,Keystone作用类似于服务总线,其他服务需要通过Keystone注册服务端点,其中服务端点为服务的访问点或URL。
Keystone几个基本概念:
用户
通过Keystone访问OpenStack服务的个人、系统或者某个服务,Keystone通过认证信息验证用户请求合法性。
角色
一个用户所具有的角色,代表其被赋予的权限。
服务
端点
一个可以用来访问某个具体服务的网络地址。
令牌
服务查询目录
keystone安装与配置
1.安装前准备
使用root用户登录数据库
mysql–uroot–p
创建keystone数据库
CREATEDATABASEkeystone;
授权数据库访问
GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'localhost'IDENTIFIEDBY'PASS';
GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'%'IDENTIFIEDBY'PASS';
退出数据库
组件安装与配置
安装相关软件包:
yuminstallopenstack-keystonehttpdmod_wsgi
修改配置文件/etc/keystone/:
[database]
connection=mysql+=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-passwordPASS--bootstrap-admin-url--bootstrap-internal-url--bootstrap-public-url--bootstrap-region-idRegionOne
Http服务器配置
修改配置文件/etc/httpd/conf/:
ServerNamecontroller
创建链接:
ln-s/usr/share/keystone//etc/httpd/
4.启动服务
systemctlenable
systemctlstart
5.配置管理账户
export OS_USERNAME=admin
export OS_PASSWORD=PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL= OS_IDENTITY_API_VERSION=3
创建域/项目/用户/角色
1.创建service项目
openstackprojectcreate--domaindefault--description"ServiceProject"service
2.创建Demo项目
openstackprojectcreate--domaindefault--description"DemoProject"demo
3.创建Demo用户
openstackusercreate--domaindefault--password-promptdemo(需输入密码)
4.创建demo用户相关的角色
openstackrolecreateuser
5.将角色加入对应的用户和项目中
openstackroleadd--projectdemo--userdemouser
keystone功能验证
1.关闭token临时认证机制
编辑/etc/keystone/:
删除以下三个部分中的admin_token_auth
2.取消临时环境变量
unsetOS_AUTH_URLOS_PASSWORD
用户token认证
openstack--os-auth-url--os-project-domain-namedefault--os-user-domain-namedefault--os-project-nameadmin--os-usernameadmintokenissue
用户token认证
openstack--os-auth-url--os-project-domain-namedefault--os-user-domain-namedefault--os-project-namedemo--os-usernamedemotokenissue
创建客户端认证脚本
1.创建文件admin-openrc:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=PASS
export OS_AUTH_URL=
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
2.创建文件demo-openrc:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=PASS
export OS_AUTH_URL=
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
3.测试脚本
.admin-openrc
openstacktokenissue
3Glance—镜像服务
概述
Glance为OpenStack提供虚拟机的镜像服务,由glance-api与glance-registry两个服务组成。
glance-api是进入Glance的入口,负责接收用户的RESTful请求,再通过后台的存储系统完成镜像的存储与获取。
glance安装与配置
1.安装前准备
创建glance数据库及后续操作:
mysql–uroot–p
CREATEDATABASEglance;
GRANTALLPRIVILEGESONglance.*TO'glance'@'localhost'IDENTIFIEDBY'PASS';
GRANTALLPRIVILEGESONglance.*TO'glance'@'%'IDENTIFIEDBY'PASS';
2.使用admin认证
.admin-openrc
3.创建glance用户
openstackusercreate--domaindefault--password-promptglance
4.将admin角色加入glance用户及service项目
openstackroleadd--projectservice--userglanceadmin
5.创建glance服务实体
openstackservicecreate--nameglance--description"OpenStackImage"image
6.创建镜像服务API接入点
openstackendpointcreate--regionRegionOneimagepublic
endpointcreate--regionRegionOneimageinternal
endpointcreate--regionRegionOneimageadmin
installopenstack-glance
(2)编辑文件/etc/glance/
[database]
connection=mysql+ ...
auth_uri = = = controller:
11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = PASS
[paste_deploy]
# ...
flavor = keystone
[glance_store]
# ...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
(3)编辑文件/etc/glance/
[database]
connection=mysql+ ...
auth_uri = = = controller:
11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = PASS
[paste_deploy]
# ...
flavor = keystone
8.填充glance数据库
su-s/bin/sh-c"glance-managedb_sync"glance
9.启动服务
systemctlenable
systemctlstart
glance功能验证
1.使用admin认证
.admin-openrc
2.下载镜像
wget上传镜像至服务器
openstackimagecreate"cirros"--file --disk-formatqcow2--container-formatbare–public
4.查看镜像是否上传成功
openstackimagelist
4Nova—计算服务
概述
Nova为OpenStack的计算组件,由API、Compute、Conductor、Scheduler四个核心服务所组成,服务之间通过AMQP消息队列进行通信。
API是进入Nova的HTTP接口,Compute和VMM交互运行虚拟机并管理虚拟机的生命周期。
Schedular从可用资源池中选择最合适的计算节点来创建新的虚拟机实例,Conductor为数据库的访问提供一层安全保障。
虚拟机创建服务流程:
首先用户执行novaclient提供的用于创建虚拟机的命令,API服务监听到novaclient发送的HTTP请求并且将它转换成AMQP消息,通过消息队列(Queue)调用Conductor服务,Conductor服务通过消息队列接受到任务之后,先完成一些准备工作,再通过消息队列告诉Schedular去选择一个满足虚拟机创建要求的主机,Conductor拿到Schedular提供的目标主机之后,会要求Compute服务创建虚拟机。
controller节点安装与配置
安装前准备工作:
1.添加nova数据库
mysql–uroot-p
CREATEDATABASEnova_api;
CREATEDATABASEnova;
CREATEDATABASEnova_cell0;
GRANTALLPRIVILEGESONnova_api.*TO'nova'@'localhost'IDENTIFIEDBY'PASS';
GRANTALLPRIVILEGESONnova_api.*TO'nova'@'%'IDENTIFIEDBY'PASS';
GRANTALLPRIVILEGESONnova.*TO'nova'@'localhost'IDENTIFIEDBY'PASS';
GRANTALLPRIVILEGESONnova.*TO'nova'@'%'IDENTIFIEDBY'PASS';
GRANTALLPRIVILEGESONnova_cell0.*TO'nova'@'localhost'IDENTIFIEDBY'PASS';
GRANTALLPRIVILEGESONnova_cell0.*TO'nova'@'%'IDENTIFIEDBY'PASS';
2.使用admin认证
.admin-openrc
3.创建nova用户
openstackusercreate--domaindefault--password-promptnova
4.将admin角色加给nova用户
openstackroleadd--projectservice--usernovaadmin
5.创建nova服务实体
openstackservicecreate--namenova--description"OpenStackCompute"compute
6.创建计算API服务端点
openstackendpointcreate--regionRegionOnecomputepublic
endpointcreate--regionRegionOnecomputeinternal
endpointcreate--regionRegionOnecomputeadmin
usercreate--domaindefault--password-promptplacement
8.将placement用户添加到service项目及admin角色中
openstackroleadd--projectservice--userplacementadmin
9.创建placementAPI实体
openstackservicecreate--nameplacement--description"PlacementAPI"placement
10.创建placementAPI服务端点
openstackendpointcreate--regionRegionOneplacementpublic
endpointcreate--regionRegionOneplacementinternal
endpointcreate--regionRegionOneplacementadmin
installopenstack-nova-apiopenstack-nova-conductoropenstack-nova-consoleopenstack-nova-novncproxyopenstack-nova-scheduleropenstack-nova-placement-api
2.修改配置文件/etc/nova/
[DEFAULT]
# ...
enabled_apis = osapi_compute,metadata
[api_database]
# ...
connection = mysql+ ...
connection = mysql+ ...
transport_url = ...
auth_strategy = keystone
[keystone_authtoken]
# ...
auth_uri = = = controller:
11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = PASS
[DEFAULT]
# ...
my_ip = ...
use_neutron = True
firewall_driver = = true
# ...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
[glance]
# ...
api_servers = ...
lock_path = /var/lib/nova/tmp
[placement]
# ...
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = = placement
password = PASS
3.修改配置文件/etc/httpd/
末尾增加:
= >
Require all granted
Order allow,deny
Allow from all
4.重启httpd服务
systemctlrestart
5.填充nova-api数据库
su-s/bin/sh-c"nova-manageapi_dbsync"nova
6.注册cell0数据库
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
7.创建cell1cell
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
8.填充nova数据库
su -s /bin/sh -c "nova-manage db sync" nova
9.验证cell0和cell1
nova-managecell_v2list_cells
10.启动服务
systemctlenable
systemctlstart
compute节点安装与配置
1.安装与配置compute组件
yuminstallopenstack-nova-compute
修改文件/etc/nova/
[DEFAULT]
#...
enabled_apis=osapi_compute,metadata
[DEFAULT]
#...
transport_url=...
auth_strategy=keystone
[keystone_authtoken]
#...
auth_uri===controll