一、安装 OpenStack Identity Service
1. 约定: Keystone使用MySQL数据库存储相关数据,相关参数如下:
库名: keystone
账户: keystonedbadmin
密码: keystone4smtest
admin_token: SM_Token
2. 安装认证服务包
sudo apt-get install keystone -y
sudo vi /etc/keystone/keystone.conf
[database] # The SQLAlchemy connection string used to connect to the database connection = mysql://keystonedbadmin:[email protected]/keystone
sudo rm /var/lib/keystone/keystone.db
sudo mysql -uroot -p#db4smtest# -e 'CREATE DATABASE keystone;' sudo mysql -uroot -p#db4smtest# -e 'CREATE USER keystonedbadmin;' sudo mysql -uroot -p#db4smtest# -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystonedbadmin'@'localhost' IDENTIFIED BY 'keystone4smtest';" sudo mysql -uroot -p#db4smtest# -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystonedbadmin'@'%' IDENTIFIED BY 'keystone4smtest';" sudo mysql -uroot -p#db4smtest# -e "SET PASSWORD FOR 'keystonedbadmin'@'%' = PASSWORD('keystone4smtest');"
注意:Keystone的用户名和密码也会贯穿OpenStack的其他组件,写入相关配置文件。
6. 创建Identity Service表
sudo keystone-manage db_sync
sm@controller:~$ mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 Server version: 5.5.40-0ubuntu0.14.04 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | keystone | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.04 sec) mysql> use keystone; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +-----------------------+ | Tables_in_keystone | +-----------------------+ | assignment | | credential | | domain | | endpoint | | group | | migrate_version | | policy | | project | | region | | role | | service | | token | | trust | | trust_role | | user | | user_group_membership | +-----------------------+ 16 rows in set (0.00 sec)
sudo vi /etc/keystone/keystone.conf
[DEFAULT] # A "shared secret" between keystone and other openstack services admin_token =SM_Token
[DEFAULT] log_dir = /var/log/keystone
简单的方法是,使用VI打开配置文件,在非编辑状态下,直接输入“/”然后输入log_dir,系统会自动定位到log_dir下,然后对log_dir取消注释,添加Value即可。以下所有的组件都需要这种方式,不再赘述。
8. 重启服务
sudo service keystone restart
注意;如果重启服务有问题,大部分就是相关的配置文件没有输入正确,要么是格式有问题,要么是值有问题,我们需要认真检查,后面所有的组件都可以参考!
(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'
创建一个名字为admin的租户 keystone tenant-create --name=admin --description="Admin Tenant"
sm@controller:~$ keystone tenant-create --name=admin --description="Admin Tenant" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Admin Tenant | | enabled | True | | id | 05ec814379cd4935b50bad905b1fd203 | | name | admin | +-------------+----------------------------------+
sm@controller:~$ keystone user-create --name=admin --pass=admin4smtest [email protected] +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | [email protected] | | enabled | True | | id | 463c7566468f4cef88efec5312bac893 | | name | admin | | username | admin | +----------+----------------------------------+
sm@controller:~$ keystone role-create --name=admin +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | id | 9a010a3589e94f7ca861a73b449f9bb7 | | name | admin | +----------+----------------------------------+
创建一个service租户
keystone tenant-create --name=service --description="Service Tenant"
sm@controller:~$ keystone tenant-create --name=service --description="Service Tenant" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Service Tenant | | enabled | True | | id | 3e7237a5a47243b8b338e5b4bf2fef09 | | name | service | +-------------+----------------------------------+
keystone service-create --name=keystone --type=identity --description="OpenStack Identity Service"
sm@controller:~$ keystone service-create --name=keystone --type=identity --description="OpenStack Identity Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Identity Service | | enabled | True | | id | 294fdb24e0204abeb98dc0755cef543b | | name | keystone | | type | identity | +-------------+----------------------------------+
sm@controller:~$ keystone endpoint-create --service-id=$(keystone service-list | awk '/ identity / {print $2}') --publicurl=http://192.168.3.180:5000/v2.0 --internalurl=http://192.168.3.180:5000/v2.0 --adminurl=http://192.168.3.180:35357/v2.0 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://192.168.3.180:35357/v2.0 | | id | 56d18d9e9e3b4762bb0e861bf5fde196 | | internalurl | http://192.168.3.180:5000/v2.0 | | publicurl | http://192.168.3.180:5000/v2.0 | | region | regionOne | | service_id | 294fdb24e0204abeb98dc0755cef543b | +-------------+----------------------------------+
sm@controller:~$ keystone user-list +----------------------------------+-------+---------+------------+ | id | name | enabled | email | +----------------------------------+-------+---------+------------+ | 463c7566468f4cef88efec5312bac893 | admin | True | [email protected] | +----------------------------------+-------+---------+------------+
sm@controller:~$ keystone user-role-list --user admin --tenant admin +----------------------------------+-------+----------------------------------+----------------------------------+ | id | name | user_id | tenant_id | +----------------------------------+-------+----------------------------------+----------------------------------+ | 9a010a3589e94f7ca861a73b449f9bb7 | admin | 463c7566468f4cef88efec5312bac893 | 05ec814379cd4935b50bad905b1fd203 | +----------------------------------+-------+----------------------------------+----------------------------------+