openstack--JUNO10搭建手册整理2: keystone && glance服务

在此,先说一下,本手册将要安装的服务有:

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节点做个快照,弄个备份哦!

因为困难的要逐步开始了!

你可能感兴趣的:(Xiangmu)