照着官网来安装openstack pike之keystone安装
openstack基础环境安装完成后,现在开启安装keystone服务(在控制节点上执行下面所有操作)
1、为keystone创建数据库
1 2 3 4 | mysql -u root -p MariaDB [(none)]> CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone' @ 'localhost' IDENTIFIED BY 'keystone' ; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone' @ '%' IDENTIFIED BY 'keystone' ; |
2、配置keystone
1 | # yum install openstack-keystone httpd mod_wsgi |
修改配置文件/etc/keystone/keystone.conf,在[database]部分配置下面配置:
1 | connection = mysql+pymysql: //keystone :keystone@192.168.101.10 /keystone |
在[token]下面添加如下:
1 | provider = fernet |
进行验证:
1 2 | [root@node1 ~] # egrep "^provider" /etc/keystone/keystone.conf provider = fernet |
3、进行keystone同步数据:
1 | # su -s /bin/sh -c "keystone-manage db_sync" keystone 同步数据 |
可以在日志中进行查看:
1 | /var/log/keystone/keystone .log 记录着同步数据库 |
4、初始化fernet key仓库
1 2 | # keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone |
5、Bootstrap the Identity service:
1 | # keystone-manage bootstrap --bootstrap-password bootstrap --bootstrap-admin-url http://192.168.101.10:35357/v3/ --bootstrap-internal-url http://192.168.101.10:5000/v3/ --bootstrap-public-url http://192.168.101.10:5000/v3/ --bootstrap-region-id RegionOne |
这里设置的账号密码admin:bootstrap非常重要,后面要经常用到
然后将httpd服务与keystone进行结合:
1、修改配置文件/etc/httpd/conf/httpd.conf
1 | ServerName 192.168.101.10 |
2、创建链接
1 | # ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ |
3、开启httpd服务:
1 2 | # systemctl enable httpd.service # systemctl start httpd.service |
4、配置admin管理用户(权限管理),在当前session执行就行
1 2 3 4 5 6 7 | # export OS_USERNAME=admin # export OS_PASSWORD=bootstrap 这里的密码对应keystone-manage bootstrap # export OS_PROJECT_NAME=admin # export OS_USER_DOMAIN_NAME=Default # export OS_PROJECT_DOMAIN_NAME=Default # export OS_AUTH_URL=http://192.168.101.10:35357/v3 35357是管理端口 # export OS_IDENTITY_API_VERSION=3 |
5、创建一个项目,域,用户和角色
1 | # openstack project create --domain default --description "Service Project" service |
创建一个demo项目:
1 | # openstack project create --domain default --description "Demo Project" demo |
创建一个demo 用户:
1 | # openstack user create --domain default --password-prompt demo |
需要设定并输入密码:demo
创建一个user 角色:
1 | # openstack role create user |
将user这个角色添加到demo项目以及demo用户中:
1 | # openstack role add --project demo --user demo user |
note:service项目用来添加各个服务:glance、nova等等
校验上面的操作:
1、修改配置文件/etc/keystone/keystone-paste.ini
将admin_token_auth从配置文件中的sections:[pipeline:public_api]、[pipeline:admin_api]、[pipeline:api_v3]移除
由于没有,所以这步骤没有更改
2、取消变量OS_AUTH_URL OS_PASSWORD
1 | # unset OS_AUTH_URL OS_PASSWORD |
3、使用admin用户来请求一个认证token:
1 | # openstack --os-auth-url http://192.168.101.10:35357/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue |
这里需要输入密码:bootstrap
4、使用demo用户来请求认证token
1 | # openstack --os-auth-url http://192.168.101.10:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name demo --os-username demo token issue |
这里需要输入密码:demo
至此keystone服务安装完成
将上述admin、demo的项目和用户的信息写到一个脚本变量中,用到的时候source一下就可以,不必export一个个变量:
vim admin-openrc: 针对admin
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=bootstrap
export OS_AUTH_URL=http://192.168.101.10:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

vim demo-openrc: 针对demo
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=demo
export OS_AUTH_URL=http://192.168.101.10:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
demo的token同理上面的admin
keystone服务基本安装完成,其他操作继续参考官方文档
如果遇到下面错误:

请检查admin账号的密码是否正确
标签:
openstack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!