openstack部署过程2

踩过的坑:配置的密码非常多,密码还是统一的好

KeyStone服务安装(仅控制节点)

一.创建KeyStone库并授权

1.连接数据库

mysql

如果连接不了,出现ERROR 1045 (28000)

vi /etc/my.cnf编辑my.cnf文件

[mysqld]后面任意一行添加skip-grant-tables用来跳过密码验证的过程

重启Mysql服务service mysql restart

mysql再次进入重置密码

use mysql;
update user set password=password("你的新密码") where user="root";
flush privileges;
exit;

vi /etc/my.cnf编辑my.cnf文件

把“skip-grant-tables”删除或者注释掉

重启Mysql服务service mysql restart

mysql - u root -p进入即可

2.创建keystone数据库

CREATE DATABASE keystone;

3.授予keystone数据库权限,退出
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' 
  IDENTIFIED BY 'KEYSTONE_DBPASS';# KEYSTONE_DBPASS密码自己设置
  
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' 
  IDENTIFIED BY 'KEYSTONE_DBPASS';# KEYSTONE_DBPASS密码自己设置

exit;

二.安装KeyStone相关软件包

安装软件包

yum install openstack-keystone httpd mod_wsgi –y

三.修改keystone.conf

1.直接修改

由于文件内容有2700行左右,备注内容过多,实际有效配置信息只有40行左右,所有为了方便修改文件,可以先备份该文件,然后去掉注释信息

# 备份
cp /etc/keystone/keystone.conf{,.bak}
# 去掉备份文件keystone.conf.backup的空行、备注等信息覆盖掉keystone.conf文件
grep '^[a-Z\[]' /etc/keystone/keystone.conf.bak >/etc/keystone/keystone.conf

vim /etc/keystone/keystone.conf

#修改一下几项
[DEFAULT]      #定义初始管理令牌的值:
...
admin_token = ADMIN_TOKEN   #t版的不需要修改该项

[database]     #配置数据库访问:
...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

[token]         # 配置Fernet UUID令牌的提供者
...
provider = fernet   #fernet为生成token字符串的一种方法
2.openstack-config修改(两种方法都可以)

下载并且安装自动配置工具(openstack专门用来自动修改配置文件的工具)

yum install openstack-utils -y
使用如下命令自动修改配置文件

openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token  ADMIN_TOKEN #ADMIN_TOKEN替换成自己密码

openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone #KEYSTONE_DBPASS替换成自己的密码

openstack-config --set /etc/keystone/keystone.conf token provider  fernet

四.同步数据库

su -s /bin/sh -c "keystone-manage db_sync" keystone
#切换到keystone身份执行keystone-manage db_sync命令

验证

mysql -u root -p
use keystone;
show tables;

请添加图片描述

五.初始化Fernet keys

这是新版本的OpenStack的新功能,在Train版本下,keystone不再使用简单的字符串作为临时token,而是使用下面创建的fernet的用户来运行keystone。同时,keystone也不再对管理员用户和普通用户的服务端点区分使用不同的端口5000和35357,而是只使用5000端口不再使用35357端口。

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

六.配置及启动HTTP服务

老版配置方法

echo 'ServerName controller' >> /etc/httpd/conf/httpd.conf
vi /etc/httpd/conf.d/wsgi-keystone.conf

# 写入以下内容
Listen 5000
Listen 35357

<VirtualHost *:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /usr/bin/keystone-wsgi-public
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

    <Directory /usr/bin>
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

    <Directory /usr/bin>
        Require all granted
    </Directory>
</VirtualHost>

启动httpd

systemctl enable httpd.service && systemctl start httpd.service

验证端口是否存在

netstat -lntp|grep -E '80|5000|35357'

七.创建服务实体和API端点

1.创建临时身份验证令牌用来初始化的服务实体和API端点
export OS_TOKEN=ADMIN_TOKEN # 配置认证令牌,修改ADMIN_TOKEN为自己的密码
export OS_URL=http://controller:35357/v3 # 配置端点URL
export OS_IDENTITY_API_VERSION=3 # 配置认证 API 版本

验证

env|grep OS

请添加图片描述

2.创建服务实体和身份认证服务:
openstack service create \--name keystone --description "OpenStack Identity" identity

请添加图片描述

3.创建认证服务的 API 端点:

OpenStack使用三个API端点变种代表每种服务:admin,internal和public

openstack endpoint create --region RegionOne \
identity public http://controller:5000/v3

请添加图片描述

openstack endpoint create --region RegionOne \
identity internal http://controller:5000/v3

请添加图片描述

openstack endpoint create --region RegionOne \
identity admin http://controller:35357/v3

请添加图片描述

八.创建域,项目(租户),用户,角色

1.创建域
openstack domain create --description "Default Domain" default

请添加图片描述

2.创建项目
openstack project create --domain default \
--description "Admin Project" admin

请添加图片描述

3.创建角色与关联用户
创建用户
openstack user create --domain default \
--password ADMIN_PASS admin# 将ADMIN_PASS替换成自己的密码

请添加图片描述

创建角色
openstack role create admin

请添加图片描述

关联角色与用户
openstack role add --project admin --user admin admin
在admin项目上给admin用户赋予admin角色
openstack project create --domain default \
 --description "Service Project" service

请添加图片描述

九.验证keystone服务

unset OS_TOKEN OS_URL		#使用unset删除环境变量
env|grep OS # 查看

请添加图片描述

1.验证默认admin用户的keystone服务
openstack --os-auth-url http://controller:35357/v3 \
  --os-project-domain-name default --os-user-domain-name default \
  --os-project-name admin --os-username admin --os-password 你的密码 token issue # 这里要改

请添加图片描述

2.查看admin的用户列表
openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name admin --os-username admin --os-password 你的密码 user list # 这里要改

请添加图片描述

十.创建客户端环境变量脚本

1.创建脚本(变量)

vi 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=你的密码 #这里要改
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
2.刷新变量

source admin-openrc

3.验证

env|grep OS

4.写入开机自启

vi .bashrc

添加如下内容

source admin-openrc

请添加图片描述

十一.验证keystone服务是否正常

openstack token issue

出现如下图信息就说明KeyStone配置完成!

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值