OpenStack学习笔记04-认证Keystone
OpenStack学习笔记04-认证Keystone
对着《云操作系统(OpenStack)》第四章做的。
一、Keystone基本概念
应该是只用在控制节点上安装,因为要用到数据库,而数据库只在控制节点上安装了。
二、keystone数据库操作
前面环境准备的时候给数据库设置的密码是abc123!
,但是书上的密码是000000
,为了保持统一,使用mysql_secure_installation
重新配置密码,设置为000000
。
a## 登录MySQL数据库
mysql -uroot -p000000
这个密码是在安装数据库的时候创建的。
1. 创建Keystone数据库
CREATE DATABASE keystone;
2. 设置授权用户和密码
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '000000';
exit
三、安装并配置Keystone
1. 安装Keystone所需软件包
yum install openstack-keystone httpd mod_wsgi -y
2. 编辑/etc/keystone/keystone.conf
文件
进行如下配置
2-1. 配置数据库连接
文件的582行左右
[database]
connection = mysql+pymysql://keystone:000000@controller/keystone
2-2. 配置provider
文件的2447行左右
[token]
provider = fernet
2-3. 同步数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
2-4. 进入Keystone数据库查看数据表
mysql -uroot -p000000;
use keystone;
show tables;
exit
看到有数据表,说明同步成功。
2-5. 初始化密钥
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
2-6. 引导开启身份服务
keystone-manage bootstrap --bootstrap-password 000000 --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服务
1. 编辑/etc/httpd/conf/httpd.conf
文件
1-1. 添加ServerName
在96行左右
ServerName controller
1-2. 创建/usr/share/keystone/wsgi-keystone.conf
文件链接
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
会在etc/httpd/confi.d/
下面创建一个wsgi-keystone.conf
的文件链接。
1-3. 启动Apache HTTP服务并设置开机自启动
systemctl enable httpd
systemctl start httpd
五、初次验证
1. 配置环境变量
以下配置的是临时变量
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=000000
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
2. 首次验证
openstack token issue
六、创建Domain、Project、User、Role
1. 创建新域(Domain)
openstack domain create --description "An Example Domain" example
2. 创建新项目(Project)
2-1. 创建Service项目
openstack project create --domain default --description "Service Project" service
2-2. 创建普通项目
openstack project create --domain default --description "Demo Project" myproject
3. 创建新用户(User)
执行以下命令,然后要给这个用户创建密码,我这里设置的密码是891107
。
openstack user create --domain default --password-prompt myuser
4. 创建新角色(Role)
openstack role create myrole
5. 进行关联
openstack role add --project myproject --user myuser myrole
七、验证keystone服务
1. 使用以下命令使指定的临时环境变量不生效
unset OS_TOKEN OS_URL
2. 使用admin用户来请求身份验证令牌
执行以下命令,然后需要输入两遍密码,就是上面配置环境变量时给admin
所设置的密码,我这里是`000000``。
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
3. 编写OpenStack客户端变量脚本
3-1. 创建/root/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=000000
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
3-2. 创建/root/demo-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=891107
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
4. 生效并验证
cd /root
source admin-openrc.sh
openstack token issue
第四章结束。