安装openstack 客户端
~# apt install python3-openstackclient
先决条件:本地做hosts解析,所有机器
~# cat /etc/hosts
172.18.40.1 controller
参考地址:https://docs.openstack.org/install-guide/openstack-services.html
Minimal deployment for Yoga
OpenStack系统由几个单独安装的关键服务组成。这些服务根据云需求协同工作,包括计算、标识、网络、映像、块存储、对象存储、遥测、业务流程和数据库服务。您可以单独安装这些项目中的任何一个,并将它们单独配置或配置为连接的实体。
本节介绍如何在控制器节点上安装和配置 OpenStack Identity 服务(代号为 keystone)。出于可伸缩性目的,此配置部署 Fernet 令牌和 Apache HTTP 服务器来处理请求。
Keystone 安装和配置
~# mysql
创建数据库
MariaDB [(none)]> CREATE DATABASE keystone;
- 授权访问keystone
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'keystone123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'keystone123';
安装keystone及配置
~# apt install keystone
~# keystone-manage --version
21.0.0
~# vim /etc/keystone/keystone.conf
[database]
# ...
connection = mysql+pymysql://keystone:keystone123@mysql01/keystone
- 配置 Fernet 令牌提供程序:
[token]
~# vim /etc/keystone/keystone.conf
[token]
# ...
provider = fernet
- 填充身份服务数据库:
~# su -s /bin/sh -c "keystone-manage db_sync" keystone
- 初始化 Fernet 密钥存储库:
和 标志用于指定将用于运行 keystone 的操作系统的用户/组。提供这些是为了允许在另一个操作系统用户/组下运行 Keystone。在下面的示例中,我们将用户和组称为 。--keystone-user``--keystone-group``keystone
~# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
~# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
- 引导标识服务:
在 Queens 发布之前,Keystone 需要在两个单独的端口上运行,以适应 Identity v2 API,该 API 通常在端口 35357 上运行单独的仅限管理员的服务。删除 v2 API 后,可以在所有接口的同一端口上运行 keystone。
~# keystone-manage bootstrap --bootstrap-password Admin@123 \
--bootstrap-admin-url http://controller:5000/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
- 配置 Apache HTTP 服务器
vim /etc/apache2/apache2.conf 增加配置
ServerName controller
~# service apache2 restart && systemctl enable apache2
~# ss -lnt |grep 5000
完成安装:
- 通过设置正确的环境变量来配置管理帐户:
~# vim /etc/profile
export OS_USERNAME=admin
export OS_PASSWORD=Admin@123
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
创建域、项目、用户和角色
身份服务为每个 OpenStack 服务提供身份验证服务。身份验证服务使用域、项目、用户和角色的组合。
- 尽管本指南中的 keystone-manage 引导步骤中已存在“默认”域,但创建新域的正式方法是:
~# openstack domain create --description "An Example Domain" example
- 本指南使用一个服务项目,该项目包含添加到环境中的每个服务的唯一用户。创建项目:
service
\
~# openstack project create --domain default \
--description "Service Project" service
常规(非管理员)任务应使用非特权项目和用户。例如,本指南将创建项目和用户。myproject``myuser
- 创建项目:
myproject
~# openstack project create --domain default \
--description "Demo Project" myproject
- 创建用户:
myuser
~# openstack user create --domain default \
--password-prompt myuser
- 创建角色:
myrole
~# openstack role create myrole
- 将角色添加到项目和用户:
myrole``myproject``myuser
~# openstack role add --project myproject --user myuser myrole
验证操作
- 取消设置临时变量和环境变量:
OS_AUTH_URL``OS_PASSWORD
~# unset OS_AUTH_URL OS_PASSWORD
- 作为用户,请求身份验证令牌:
admin
,此命令使用用户的密码。admin
~# openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name admin --os-username admin token issue
- 与前面创建的用户一样,请求身份验证令牌:
myuser
~# openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name myproject --os-username myuser token issue
创建 OpenStack 客户端环境脚本
前面的部分使用环境变量和命令选项的组合,通过客户端与标识服务进行交互。为了提高客户端操作的效率,OpenStack支持简单的客户端环境脚本,也称为OpenRC文件。这些脚本通常包含所有客户端的通用选项,但也支持唯一选项。
- 创建脚本
创建和编辑文件,并添加以下内容:admin-openrc
~# vim 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=Admin@123
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
创建和编辑文件,并添加以下内容:demo-openrc
~# vim demo-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=Admin@123
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
- 使用脚本
~# . admin-openrc
请求生份验证令牌
~# openstack token issue