3.安装OpenStack-keystone

 

安装keystone(控制器上安装)

使用root用户访问数据库

mysql -uroot -ptoyo123
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
  IDENTIFIED BY 'toyo123';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
  IDENTIFIED BY 'toyo123';
exit

生成令牌 后面会用到的需要记住

openssl rand -hex 10

4f0f715c2cdcce1bb59e

 

安装keystone程序包

       

yum install –y openstack-keystone python-keystoneclient

 

启动memcached服务并将其配置为开机自启动

    

systemctl enable memcached.service
systemctl start memcached.service

 

编辑/etc/keystone/keystone.conf文件

       

mv /etc/keystone/keystone.conf /etc/keystone/keystone.conf_bak
vim /etc/keystone/keystone.conf
   
[DEFAULT]
   
admin_token     = 4f0f715c2cdcce1bb59e
   
log_dir = /var/log/keystone
   
verbose = True
   
 
   
[database]
   
connection = mysql://keystone:toyo123@controller/keystone
   
 
   
[memcache]
   
servers = localhost:11211
   
 
   
[token]
   
provider = keystone.token.providers.uuid.Provider
   
driver =     keystone.token.persistence.backends.sql.Token
    
   
[revoke]
   
driver = keystone.contrib.revoke.backends.sql.Revoke

 

创建通用的证书和密钥,并限制访问相关的文件与填充身份服务数据库

keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
chown -R keystone:keystone /var/log/keystone
chown -R keystone:keystone /etc/keystone/ssl
chmod -R o-rwx /etc/keystone/ssl
su -s /bin/sh -c "keystone-manage db_sync" keystone

 

启动身份服务并将其配置为开机自启动      

systemctl enable openstack-keystone.service
systemctl start openstack-keystone.service

 

我建议您使用 cron配置周期性任务是清除过期令牌小时: 

(crontab -l -u keystone 2>&1 | grep -q token_flush) || \
  echo '@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log 2>&1' \
  >> /var/spool/cron/keystone

 

配置系统环境

export OS_SERVICE_TOKEN=4f0f715c2cdcce1bb59e
export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0

 

创建租户,用户和角色

keystone tenant-create --name admin --description "Admin Tenant"
keystone user-create --name admin --pass Abcd1234 --email test@test.com
keystone role-create --name admin
keystone user-role-add --user admin --tenant admin --role admin

 

创建演示租户和用户环境与服务租户

keystone tenant-create --name demo --description "Demo Tenant"
keystone user-create --name demo --tenant demo --pass Abcd1234 --email test@test.com
keystone user-role-add --user demo -—tenant demo --role demo
keystone tenant-create --name service --description "Service Tenant"

 

创建服务实体和API端点

keystone service-create --name keystone --type identity \
  --description "OpenStack Identity"
keystone endpoint-create \
  --service-id $(keystone service-list | awk '/ identity / {print $2}') \
  --publicurl http://controller:5000/v2.0 \
  --internalurl http://controller:5000/v2.0 \
  --adminurl http://controller:35357/v2.0 \
  --region regionOne

 

取消设置临时的临时OS_SERVICE_TOKEN和 OS_SERVICE_ENDPOINT环境变量:

不要取消环境变量可能会造成一些问题,这里只是告诉大家怎么取消

unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT

 

验证keystone:

           

keystone --os-tenant-name admin --os-username admin --os-password Abcd1234 \
  --os-auth-url http://controller:35357/v2.0 token-get
keystone --os-tenant-name admin --os-username admin --os-password Abcd1234 \
  --os-auth-url http://controller:35357/v2.0 tenant-list
keystone --os-tenant-name admin --os-username admin --os-password Abcd1234 \
  --os-auth-url http://controller:35357/v2.0 user-list
keystone --os-tenant-name admin --os-username admin --os-password Abcd1234 \
  --os-auth-url http://controller:35357/v2.0 role-list
keystone --os-tenant-name demo --os-username demo --os-password Abcd1234 \
  --os-auth-url http://controller:35357/v2.0 token-get
keystone --os-tenant-name demo --os-username demo --os-password Abcd1234 \
  --os-auth-url http://controller:35357/v2.0 user-list

 

 

转载于:https://www.cnblogs.com/cainiaoit/p/6533176.html

### OpenStack Keystone 服务单元文件缺失解决方案 当遇到 OpenStack Keystone 的服务单元文件丢失问题时,可以按照以下方法排查并解决问题。 #### 1. 验证服务状态 首先确认 `keystone` 服务的状态是否存在异常。可以通过以下命令检查服务是否正常运行: ```bash systemctl status openstack-keystone.service ``` 如果返回提示找不到该服务,则说明可能缺少相应的服务单元文件[^1]。 --- #### 2. 安装或重新安装 Keystone 软件包 Keystone 的服务单元文件通常由其软件包提供。如果发现服务单元文件确实不存在,尝试重新安装 Keystone 软件包来恢复必要的配置文件。 对于基于 Debian/Ubuntu 的系统,执行以下命令: ```bash apt-get install --reinstall openstack-keystone ``` 而对于 CentOS/RHEL 系统,可使用以下命令: ```bash yum reinstall openstack-keystone ``` 这一步会确保所有必需的服务单元文件被正确部署到 `/usr/lib/systemd/system/openstack-keystone.service` 或其他默认路径下[^2]。 --- #### 3. 手动创建服务单元文件 如果上述方法未能修复问题,或者由于某些原因无法通过重装解决,可以选择手动创建服务单元文件。以下是标准的 `openstack-keystone.service` 文件内容: ```ini [Unit] Description=OpenStack Identity Service (keystone) After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=simple User=root ExecStart=/usr/bin/keystone-all --config-file /etc/keystone/keystone.conf Restart=on-abort [Install] WantedBy=multi-user.target ``` 将此内容保存至 `/etc/systemd/system/openstack-keystone.service` 后刷新 systemd 并启动服务: ```bash systemctl daemon-reload systemctl start openstack-keystone.service systemctl enable openstack-keystone.service ``` --- #### 4. 检查日志以定位潜在错误 即使解决了服务单元文件的问题,仍需验证 Keystone 是否能成功初始化。查看相关日志可以帮助进一步诊断问题所在: ```bash journalctl -u openstack-keystone.service cat /var/log/keystone/keystone.log ``` 这些日志记录可能会揭示更深层次的原因,例如数据库连接失败或其他依赖项未满足的情况[^3]。 --- #### 5. 数据库同步与环境变量设置 有时 Keystone 可能因数据库表结构不一致而报错。此时应先完成数据库迁移操作后再重启服务: ```bash su -s /bin/sh -c "keystone-manage db_sync" keystone ``` 另外注意检查环境变量是否已正确定义,特别是涉及身份认证所需的参数如 `OS_TOKEN`, `OS_URL` 和 `ADMIN_PASSWORD` 等[^4]。 --- ### 总结 以上方案涵盖了从基础层面检测到高级调试技巧的一系列措施,能够有效应对大多数情况下发生的 Keystone 服务不可用状况。若仍有疑问,请提供更多上下文信息以便深入分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值