OpenStack Train 部署实战(三)控制节点--keystone服务

OpenStack Train 部署实战(三)控制节点--keystone服务

参考官网原文链接:

1️⃣ 创建 Keystone 数据库和用户

  1. 登录 MySQL(我使用的密码 555555)

    mysql -u root -p555555

  2. 创建 Keystone 数据库并授权

sql 复制代码
CREATE DATABASE keystone;

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '555555';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '555555';

flush privileges;
show databases;
select user,host from mysql.user;
exit;

注意 :BY 后面 为实际密码555555


2️⃣ 安装和配置 Keystone 组件

  1. 安装 Keystone 和 Apache
bash 复制代码
yum install -y openstack-keystone httpd mod_wsgi python-keystoneclient

# 用于快速配置
yum install openstack-utils -y 
  1. 添加 [database] 部分 [token] 部分
ini 复制代码
cat >> /etc/keystone/keystone.conf << EOF
[database]
connection = mysql+pymysql://keystone:555555@controller/keystone
[token]
provider = fernet
EOF
bash 复制代码
# 查看生效的配置
egrep -v "^#|^$" /etc/keystone/keystone.conf
# 其他方式查看生效配置
grep '^[a-z]' /etc/keystone/keystone.conf
  1. 填充数据库并初始化 Fernet 密钥
bash 复制代码
# 填充身份服务数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
perl 复制代码
#查看是否成功 
mysql -u keystone -p"555555" 
use keystone; 
show tables;    #有表就行
exit;
  1. 初始化引导keystone认证服务
css 复制代码
# 初始化Fernet令牌库
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone 
bash 复制代码
keystone-manage bootstrap --bootstrap-password 555555 \
  --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
  1. 配置 Apache HTTP 服务

    1. 配置 Apache 监听控制器主机名
    bash 复制代码
    sed  -i  "s/#ServerName www.example.com:80/ServerName controller/" /etc/httpd/conf/httpd.conf
    1. 创建一个链接到 /usr/share/keystone/wsgi-keystone.conf 文件:
    bash 复制代码
    ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
    1. 启动 Apache 并设置开机自启
    bash 复制代码
    systemctl enable httpd
    systemctl start httpd
    
    systemctl list-unit-files |grep httpd.service
  2. 配置管理员环境变量

    1. 设置环境变量 (当前终端生效)
    ini 复制代码
    export OS_USERNAME=admin
    export OS_PASSWORD=555555
    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
    1. 验证认证是否成功
    bash 复制代码
    # 查看声明的变量
    env |grep OS_
    
    echo $OS_USERNAME   # 应输出 "admin"
    echo $OS_AUTH_URL   # 应输出 "http://controller:5000/v3"

3️⃣ 创建域、项目、用户和角色

sql 复制代码
# 创建一个名为example的域
openstack domain create --description "An Example Domain" example

# 创建名为service的项目,在default域中。用于常规(非管理)任务,需要使用无特权用户。
# 以下命令会在project表中创建名为service的项目
openstack project create --domain default --description "Service Project" service


# 创建名为myproject项目,在default域中。作为一般用户(非管理员)的项目,为普通用户提供服务。以下命令会在project表中创建名为myproject项目
openstack project create --domain default --description "Demo Project" myproject

# 创建myuser用户,在default域中。
openstack user create --domain default --password=555555 myuser

# 创建myrole角色,在role表中
openstack role create myrole

# 创建一个默认角色user或者_member_
openstack role create user

# 将myrole角色添加到myproject项目中和myuser用户
openstack role add --project myproject --user myuser myrole

# 查看keystone实例相关信息
openstack endpoint list
openstack project list
openstack user list

4️⃣ 验证操作keystone是否安装成功

  1. 去除环境变量

关闭临时认证令牌机制,获取 token,验证keystone配置成功

bash 复制代码
unset OS_AUTH_URL OS_PASSWORD
env |grep OS_
  1. 作为 管理员admin 用户去请求一个认证的token
arduino 复制代码
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
# 输入密码:555555
  1. 使用普通用户获取认证token

以下命令使用"myuser"用户的密码和API端口5000,只允许对身份认证服务API的常规(非管理)访问。

arduino 复制代码
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
输入密码:555555

5️⃣ 创建OpenStack客户端环境变量脚本

Create OpenStack client environment scripts,上面使用环境变量和命令选项的组合通过"openstack"客户端与身份认证服务交互。为了提升客户端操作的效率,OpenStack支持简单的客户端环境变量脚本即OpenRC 文件,我这里使用自定义的文件名

  1. 创建admin用户的环境管理脚本
ini 复制代码
cd
touch admin-openrc.sh
# 文件内容
cat << EOF > admin-openrc.sh
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=555555
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF
  1. 创建普通用户myuser的客户端环境变量脚本
ini 复制代码
touch myuser-openrc.sh
# 文件内容
cat << EOF > myuser-openrc.sh
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=555555
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF
  1. 测试环境管理脚本
bash 复制代码
source admin-openrc.sh
openstack token issue
# 列举当前所有域名
openstack domain list
openstack user list

source myuser-openrc.sh
openstack token issue

6️⃣ keystone安装完毕

至此,控制节点的keystone认证服务组件完成安装与配置,现在可以关机做快照

输入shutdown -h now 关机

下一步配置:

3控制节点--Glance镜像服务

相关推荐
哈里谢顿2 天前
云计算基础架构工程师面试终极准备指南(OpenStack 背景专属)
openstack
哈里谢顿2 天前
云计算基础架构工程师”面试通关 Checklist
openstack
欧云服务器4 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
xiaoliuliu123454 天前
CentOS 7 安装 gcc-4.8.5-44.el7.x86_64.rpm 详细步骤(含依赖解决)
linux·运维·centos
txzz88884 天前
CentOS-Stream-10 Secure Shell服务器sshd_config配置文件
linux·centos·sshd_config·ssh配置
txzz88884 天前
CentOS-Stream-10 Secure Shell服务器
linux·centos·ssh·secure shell·ssh服务器
文静小土豆5 天前
CentOS 7 OpenSSH 10.2p1 升级全攻略(含离线安装与回退方案)
linux·运维·centos·ssh
xianyudx5 天前
Linux 服务器 DNS 配置指南 (CentOS 7 / 麒麟 V10)
linux·服务器·centos
文静小土豆5 天前
CentOS 7 升级 OpenSSL 3.5.4 详细指南
linux·运维·centos·ssl