在此,先说一下,本手册将要安装的服务有:
Identity Service (Keystone)认证服务
Image Service (Glance)镜像服务
Compute (Nova)计算服务
Networking (Neutron)网络服务
Block Storage (Cinder)块存储
Dashboard (Horizon)仪表板
Launch an instance 在controller节点上创建一个实例
至于其他服务,自己有兴趣,可以去查资料安装一下,OpenStack的的所有的服务安装过程都是以下过程:
创建用户--加入租户--创建服务--创建端点--创建初始化数据库--配置连接方式--配置认证方式--连接--通信
三,OpenStack的认证服务梯形中的一些概念
User(用户) 被认证的人或服务为用户。
一个人、系统或服务在OpenStack中的数字表示。已经登录的用户分配令牌环以访问资源。用户可以直接分配给特定的租户,就像隶属于每个组。
Credentials(凭证) 密钥
用于确认用户身份的数据。例如:用户名和密码,用户名和API key,或由认证服务提供的身份验证令牌
Authentication(验证) 确认用户身份的过程。
Token(令牌) 一个用于访问OpenStack API和资源的字母数字字符串。一个临牌可以随时撤销,并且持续一段时间有效Tenant(租户) 一个组织或孤立资源的容器。租户和可以组织或隔离认证对象。根据服务运营的要求,一个租户可以映射到客户、账户、组织或项目。
Tenant(租户)租户是特定权限的集合。
一个组织或孤立资源的容器。租户和可以组织或隔离认证对象。根据服务运营的要求,一个租户可以映射到客户、账户、组织或项目。
Service(服务) OpenStack服务,例如计算服务(nova),对象存储服务(swift),或镜像服务(glance)。它提供了一个或多个端点,供用户访问资源和执行操作。
Endpoint(端点) 一个用于访问某个服务的可以通过网络进行访问的地址,通常是一个URL地址。
Role(角色) 特定的权限为角色
Keystone Client(keystone命令行工具) Keystone的命令行工具。通过该工具可以创建用户,角色,服务和端点等。
四,在控制器节点安装和配置梯形认证服务
4.1配置先决条件
4.1.1创建认证服务数据库
一个。登录的MySQL数据库
的MySQL -u根-ppqjpqj
b。创建keystone数据库
CREATE DATABASE keystone;
角创建梯形数据库用户,使其可以对梯形数据库有完全控制权限
注意:在所有数据库授权时都要注意书写格式,尤其不要少写空格!!!!
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
退出数据库
4.1.2。生成一个随机值作为管理令牌在初始配置
openssl rand -hex 10:
#979e7a8fb2f1ff534974
4.2安装和配置认证组件
4.2.1安装软件包
百胜-y安装OpenStack的梯形中的python-keystoneclient4.2.2 VI /etc/keystone/keystone.conf文件并作下列修改:
[default]
admin_token=979e7a8fb2f1ff534974 +13 取消注释并修改
[database]
connection=mysql://keystone:[email protected]/keystone +633取修
[token]
provider=keystone.token.providers.uuid.Provider +1539取修
driver=keystone.token.persistence.backends.sql.Token 1542取消注释
verbose=True +353取修
4.3常见通用证书的密钥,并限制相关文件的访问权限
keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
chown -R keystone:keystone /var/log/keystone
chown -R keystone:keystone /etc/keystone/ssl
chmod -R o-rwx /etc/keystone/ssl
4.4初始化keystone数据库
su -s / bin / sh -c“keystone-manage db_sync”keystone
#验证
mysql -uroot -ppqjpqj
show databases;
use keystone;
show tables;
+-----------------------+
| Tables_in_keystone |
+-----------------------+
| assignment |
| credential |
| domain |
| endpoint |
| group |
| id_mapping |
| migrate_version |
| policy |
| project |
| region |
| revocation_event |
| role |
| service |
| token |
| trust |
| trust_role |
| user |
| user_group_membership |
+-----------------------+
18 rows in set (0.03 sec)
退出#退出数据库
4.5完成安装
4.5.1启动身份服务并设置开机启动
systemctl enable openstack-keystone
systemctl start openstack-keystone
4.5.2默认情况下,服务器会无限存储到期的令牌,在资源有限的情况下会严重影响服务器性能。建议用计划任务,每小时删除过期的令牌
(crontab -l -u keystone 2>&1 | grep -q token_flush) || echo '@hourly /usr/bin/keystone-manage token_flush > /var/log/keystone/keystone-tokenflush.log 2>&1' >> /var/spool/cron/keystone
4.6创建租户(租户),(用户)用户和(角色)角色
4.6.1先决备件:管理员配置令牌状语从句:配置端点
导出OS_SERVICE_TOKEN = 979e7a8fb2f1ff534974
导出OS_SERVICE_ENDPOINT = http://controller.nice.com:35357/v2 0.0
4.6.2创建用于管理的租户,用户和角色
a。创建管理员租户
keystone tenant-create --name admin --description“Admin Tenant”
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Admin Tenant |
| enabled | True |
| id | 8e69fd3b6d7547e0ab4043b004cdc9fa |
| name | admin |
+-------------+----------------------------------+
b。创建管理员用户
keystone user-create --name admin --pass ADMIN_PASS --email EMAIL_ADDRESS
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | EMAIL_ADDRESS |
| enabled | True |
| id | ab137a84280e44e9a1a972d786167793 |
| name | admin |
| username | admin |
+----------+----------------------------------+
c。创建管理
角色keystone role-create --name admin
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| id | 1aedcd0c77bf4698833c3b13d8003bb2 |
| name | admin |
+----------+----------------------------------+
d。添加(链接)admin租户和用户到admin
角色keystone user-role-add --tenant admin --user admin --role admin
e。创建用于仪表板访问的“_member_”
角色keystone role-create --name _member_
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| id | cf9f990dfb27478296af0e505c5a7373 |
| name | _member_ |
+----------+----------------------------------+
f。添加管理员租户和用户到_member_
角色keystone user-role-add --tenant admin --user admin --role _member_
4.6.3创建一个用于演示的demo租户和用户
a。创建演示租户
keystone tenant-create --name demo --description“Demo Tenant”
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Demo Tenant |
| enabled | True |
| id | ebac9d5bb7364c62ab5d15255bca7e30 |
| name | demo |
+-------------+----------------------------------+
b。创建的demo用户
keystone user-create --name demo --pass DEMO_PASS --email EMAIL_ADDRESS
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | EMAIL_ADDRESS |
| enabled | True |
| id | 01364b7cc18c44a5ab57968cdec6e5b7 |
| name | demo |
| username | demo |
+----------+----------------------------------+
c。添加演示租户和用户到_member_
角色keystone user-role-add --tenant demo --user demo --role _member_
4.6.4OpenStack服务也需要一个租户,用户和角色和其他服务进行交互。任何一个OpenStack服务都要和它关联.keystone
tenant-create --name service --description“Service Tenant”
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Service Tenant |
| enabled | True |
| id | 4f33f9d0db5841a0b54607eec1eb1dac |
| name | service |
+-------------+----------------------------------+
4.6.5创建服务实体和API端点
4.6.5.1为身份服务创建一个服务实体
keystone service-create --name keystone --type identity --description“OpenStack Identity”
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Identity |
| enabled | True |
| id | 105e8ab8d8ce4f93a637710bc03c9b57 |
| name | keystone |
| type | identity |
+-------------+----------------------------------+
4.6.5.2OpenStack为每个服务提供了三个API端点:admin(管理),internal(内部),public(公共)为identity服务创建API端点
#一行一行复制粘贴!!!#
keystone endpoint-create \
- -service-id $(keystone service-list | awk'/ identity / {print $ 2}')\
--publicurl http://controller.nice.com:5000/v2.0 \
--internalurl http:// controller .nice.com:5000 / v2.0 \
--adminurl http://controller.nice.com:35357/v2.0 \
- regionionOne
keystone endpoint-create --service-id $(keystone service-list | awk '/ identity / {print $2}') --publicurl http://controller.nice.com:5000/v2.0 --internalurl http://controller.nice.com:5000/v2.0 --adminurl http://controller.nice.com:35357/v2.0 --region regionOne
+-------------+---------------------------------------+
| Property | Value |
+-------------+---------------------------------------+
| adminurl | http://controller.nice.com:35357/v2.0 |
| id | d0160da0fe2249e69c9feae423ad80b0 |
| internalurl | http://controller.nice.com:5000/v2.0 |
| publicurl | http://controller.nice.com:5000/v2.0 |
| region | regionOne |
| service_id | 105e8ab8d8ce4f93a637710bc03c9b57 |
+-------------+---------------------------------------+
4.6.6确认操作
4.6.6.1删除OS_SERVICE_TOKEN和OS_SERVICE_ENDPOINT临时变量未
设置OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT4.6.6.2使用admin租户和用户请求认证令牌
keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 token-get
+-----------+----------------------------------+
| Property | Value |
+-----------+----------------------------------+
| expires | 2018-09-26T18:17:30Z |
| id | 6da89c66d87f4db19c74d701423d2475 |
| tenant_id | 8e69fd3b6d7547e0ab4043b004cdc9fa |
| user_id | ab137a84280e44e9a1a972d786167793 |
+-----------+----------------------------------+
4.6.6.3。以管理员租户和用户的身份查看租户列表
keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 tenant-list
+----------------------------------+---------+---------+
| id | name | enabled |
+----------------------------------+---------+---------+
| 8e69fd3b6d7547e0ab4043b004cdc9fa | admin | True |
| ebac9d5bb7364c62ab5d15255bca7e30 | demo | True |
| 4f33f9d0db5841a0b54607eec1eb1dac | service | True |
+----------------------------------+---------+---------+
4.6.6.4。以管理员租户和用户的身份查看用户列表
keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 user-list
+----------------------------------+-------+---------+---------------+
| id | name | enabled | email |
+----------------------------------+-------+---------+---------------+
| ab137a84280e44e9a1a972d786167793 | admin | True | EMAIL_ADDRESS |
| 01364b7cc18c44a5ab57968cdec6e5b7 | demo | True | EMAIL_ADDRESS |
+----------------------------------+-------+---------+---------------+
4.6.6.5以管理员租户和用户的身份查看角色列表
keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 role-list
+----------------------------------+----------+
| id | name |
+----------------------------------+----------+
| cf9f990dfb27478296af0e505c5a7373 | _member_ |
| 1aedcd0c77bf4698833c3b13d8003bb2 | admin |
+----------------------------------+----------+
4.6.6.6。以演示租户和用户的身份请求认证令牌
keystone --os-tenant-name demo --os-username demo --os-password DEMO_PASS --os-auth-url http://controller.nice .com:35357 / v2.0 token-get
+-----------+----------------------------------+
| Property | Value |
+-----------+----------------------------------+
| expires | 2018-09-26T18:23:45Z |
| id | 4b71d06d37fc46f99dd84599a4102465 |
| tenant_id | ebac9d5bb7364c62ab5d15255bca7e30 |
| user_id | 01364b7cc18c44a5ab57968cdec6e5b7 |
+-----------+----------------------------------+
4.6.6.7 以演示租户和用户的身份查看用户列表
keystone --os-tenant-name demo --os-username demo --os-password DEMO_PASS --os-auth-url http://controller.nice.com:35357/v2.0 user-list
#您无权执行请求的操作:admin_required(HTTP 403) 这是正常的,因为没有授权!
4.7创建OpenStack客户端环境
脚本为了方便使用上面的环境变量和命令选项,我们为admin和demo租户和用户创建环境脚本.
4.7.1.vi / root / admin-open
export OS_TENANT_NAME = admin
export OS_USERNAME = admin
export OS_PASSWORD = ADMIN_PASS
export OS_AUTH_URL = http://controller.nice.com:35357 / v2.0
4.7.2.vi / root / demo-open
export OS_TENANT_NAME = demo
export OS_USERNAME = demo
export OS_PASSWORD = DEMO_PASS
export OS_AUTH_URL = http://controller.nice.com:5000 / v2.0
chmod a + x / root / admin-open
chmod a + x / root / demo-open
至此,keystone服务配置完毕!
五、在controller节点安装并配置OpenStack镜像服务glance
OpenStack镜像服务
OpenStack镜像服务(glance)使用户能够发现、注册并检索虚拟机镜像(.img文件)。它提供了一个REST API接口,使用户可以查询虚拟机镜像元数据和检索一个实际的镜像文件。
不论是简单的文件系统还是OpenStack对象存储,你都可以通过镜像服务在不同的位置存储虚拟机镜像。默认情况下,上传的虚拟机镜像存储路径为/var/lib/glance/images/
OpenStack镜像服务包含的组件
glance-api
一个用来接受镜像发现,检索和存储的 接口
API
glance-registry
用来存储、处理和检索镜像的元数据。元数据包含对象的大小和类型。(glance-registry是一个OpenStack镜像服务使用的内部服务,不要透露给用户)
Database于存储镜像的元数据 大小、类型 ,支持大多数数据库,一般选择MySQL或SQLite。
Storage repository for image files镜像文件的存储仓库。支持包括普通文件系统在内的各种存块设备, 和存储类型。包括对象存储,RADOS HTTP Amazon S3
5.1安装先决条件
5.1.1.创建数据库
a.以数据库管理员root的身份登录数据库
mysql -u root -ppqjpqj
b.创建glance数据库 创建数据库用户glance,并授予其对glance数据库的管理权限
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
exit 退出数据库
5.1.2启用admin环境脚本
source admin-open
5.2.创建认证服务凭证,完成下列步骤:
a.创建glance用户
keystone user-create --name glance --pass GLANCE_PASS
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | 398528daf02841439b188ffb9b1e56d7 |
| name | glance |
| username | glance |
+----------+----------------------------------+
b.将glance用户链接到service租户和admin角色
keystone user-role-add --user glance --tenant service --role admin
c.创建glance服务
keystone service-create --name glance --type image --description "OpenStack Image Service"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Image Service |
| enabled | True |
| id | 0d1ef6bd74af4c14bd266d1638e40543 |
| name | glance |
| type | image |
+-------------+----------------------------------+
5.3.为OpenStack镜像服务创建认证服务端点(一行一行复制粘贴)
keystone endpoint-create \
--service-id $(keystone service-list | awk '/ image / {print $2}') \
--publicurl http://controller.nice.com:9292 \
--internalurl http://controller.nice.com:9292 \
--adminurl http://controller.nice.com:9292 \
--region regionOne
keystone endpoint-create --service-id $(keystone service-list | awk '/ image / {print $2}') --publicurl http://controller.nice.com:9292 --internalurl http://controller.nice.com:9292 --adminurl http://controller.nice.com:9292 --region regionOne
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://controller.nice.com:9292 |
| id | ab22ff497da145bd9ea586487d403035 |
| internalurl | http://controller.nice.com:9292 |
| publicurl | http://controller.nice.com:9292 |
| region | regionOne |
| service_id | 0d1ef6bd74af4c14bd266d1638e40543 |
+-------------+----------------------------------+
5.4安装并配置镜像服务组件
5.4.1.安装软件包
yum -y install openstack-glance python-glanceclient
5.4.2.修改glance配置文件
vi /etc/glance/glance-api.conf
[database]: +303
connection=mysql://glance:[email protected]/glance
[keystone_authtoken]: +383 复制&&粘贴
auth_uri=http://controller.nice.com:5000/v2.0
identity_uri=http://controller.nice.com:35357
admin_tenant_name=service
admin_user=glance
admin_password=GLANCE_PASS
[paste_deploy] 404
flavor=keystone
[DEFAULT]
verbose=True +3
5.4.3 vi /etc/glance/glance-registry.conf
[DEFAULT] +3
verbose=True
[database]: +143
connection=mysql://glance:[email protected]/glance
[keystone_authtoken]: +223
auth_uri=http://controller.nice.com:5000/v2.0
identity_uri=http://controller.nice.com:35357
admin_tenant_name=service
admin_user=glance
admin_password=GLANCE_PASS
[paste_deploy] +243
flavor=keystone
glance_store配置文件中没有,在最后新建!
[glance_store]
default_store=file
filesystem_store_datadir=/var/lib/glance/images/
5.4.4.初始化镜像服务的数据库
su -s /bin/sh -c "glance-manage db_sync" glance
#验证:
mysql -uroot -ppqjpqj
show databases;
use glance;
show tables;
+----------------------------------+
| Tables_in_glance |
+----------------------------------+
| image_locations |
| image_members |
| image_properties |
| image_tags |
| images |
| metadef_namespace_resource_types |
| metadef_namespaces |
| metadef_objects |
| metadef_properties |
| metadef_resource_types |
| migrate_version |
| task_info |
| tasks |
+----------------------------------+
18 rows in set (0.00 sec)
exit
5.4.5启动镜像服务并设置开机自动启动:
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service
5.5验证安装
5.5.1.创建一个临时目录
mkdir /tmp/images
cd !$
5.5.2.上传镜像(cirros-0.3.3-x86_64-disk.img 此镜像在ftp服务器里有,请回看搭建手册1 )到/tmp/miages
5.5.3.运行admin环境脚本
source /root/admin-open
5.5.4.上传镜像文件到镜像服务器
glance image-create --name "cirros-0.3.3-x86_64" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --is-public True --progress
[=============================>] 100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 133eae9fb1c98f45894a4e60d8736619 |
| container_format | bare |
| created_at | 2018-09-26T18:49:19 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | 5ba60cfe-ec43-42d7-a5bc-755a6654bd69 |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros-0.3.3-x86_64 |
| owner | 8e69fd3b6d7547e0ab4043b004cdc9fa |
| protected | False |
| size | 13200896 |
| status | active |
| updated_at | 2018-09-26T18:49:20 |
| virtual_size | None |
+------------------+--------------------------------------+
5.5.5.确认镜像文件上传并验证属性
glance image-list
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| 5ba60cfe-ec43-42d7-a5bc-755a6654bd69 | cirros-0.3.3-x86_64 | qcow2 | bare | 13200896 | active |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
#注意:status必须是active准备状态!!
5.5.6.删除临时目录
cd
rm -rf /tmp/images
okay,到此,keystone && glance服务已经安装完毕,是不是挺简单的,给controller节点做个快照,弄个备份哦!
因为困难的要逐步开始了!