Keystone手动搭建
·
一、Prerequisites先决条件
1、环境内的脚本刷新
#刷新基础脚本 [root@controller ~]# iaas-pre-host.sh [root@compute ~]# iaas-pre-host.sh [root@controller ~]# iaas-install-mysql.sh
2、使用数据库访问客户端以 root 用户身份连接到数据库服务器
# mysql -u root -p
3、创建 keystone 数据库
$MariaDB [(none)]> CREATE DATABASE keystone;
4、授予对 keystone 数据库的正确访问权限
#KEYSTONE_DBPASS改为admin的密码 $MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; $MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
二、安装和配置组件
1、运行以下命令安装包
# 需要用到epel的repo [root@controller ~]# yum install openstack-keystone httpd mod_wsgi
2、编辑 /etc/keystone/keystone.conf 文件并完成以下操作
#在 [database] 部分,配置数据库访问 #将KEYSTONE_DBPASS改为数据库的密码 [database] # ... connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone #在 [token] 部分中,配置 Fernet 令牌提供程序 [token] # ... provider = fernet #填充 Identity 服务数据库 $su -s /bin/sh -c "keystone-manage db_sync" keystone
3、初始化Fernet密钥存储库
$ keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone $ keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
4、引导身份服务
#将ADMIN_PASS替换为适合管理用户的密码 $ keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --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
5、编辑 /etc/httpd/conf/httpd.conf 文件并配置 ServerName 选项来引用控制器节点
# ServerNAME controller
6、创建指向该 /usr/share/keystone/wsgi-keystone.conf 文件的链接
$ ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
三、完成安装
1、启动 Apache HTTP 服务并将其配置为在系统启动时启动
$ systemctl enable httpd.service $ systemctl start httpd.service
2、通过设置适当的环境变量来配置管理帐户
# 将ADMIN_PASS改为admin的密码 $ export OS_USERNAME=admin $ export OS_PASSWORD=ADMIN_PASS $ export OS_PROJECT_NAME=admin $ export OS_USER_DOMAIN_NAME=Default $ export OS_PROJECT_DOMAIN_NAME=Default $ export OS_AUTH_URL=http://controller:5000/v3 $ export OS_IDENTITY_API_VERSION=3 # 也可编写成cf文件source使用它
四、创建域、项目、用户和角色
1、尽管本指南中的 keystone-manage 引导步骤中已经存在“默认”域,但创建新域的正式方法是
$ openstack domain create --description "An Example Domain" example +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | An Example Domain | | enabled | True | | id | 2f4f80574fd84fe6ba9067228ae0a50c | | name | example | | tags | [] | +-------------+----------------------------------+
2、本指南使用一个服务项目,该项目包含添加到环境中的每个服务的唯一用户。创建服务 项目
$ openstack project create --domain default --description "Service Project" service +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Service Project | | domain_id | default | | enabled | True | | id | 24ac7f19cd944f4cba1d77469b2a73ed | | is_domain | False | | name | service | | parent_id | default | | tags | [] | +-------------+----------------------------------+
3、常规(非管理员)任务应使用非特权项目和用户。例如,本指南创建 myproject 项目和 myuser 用户
# 创建 myproject 项目
$ openstack project create --domain default --description "Demo Project" myproject
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Demo Project |
| domain_id | default |
| enabled | True |
| id | 231ad6e7ebba47d6a1e57e1cc07ae446 |
| is_domain | False |
| name | myproject |
| parent_id | default |
| tags | [] |
+-------------+----------------------------------+
#创建 myuser 用户
$ openstack user create --domain default --password-prompt myuser
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | aeda23aa78f44e859900e22c24817832 |
| name | myuser |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
#创建 myrole 角色
$ openstack role create myrole
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | None |
| id | 997ce8d05fc143ac97d83fdfb5998552 |
| name | myrole |
+-----------+----------------------------------+
#将 myrole 角色添加到 myproject 项目和 myuser 用户
$ openstack role add --project myproject --user myuser myrole
五、验证操作
1、取消设置临时 OS_AUTH_URL 和 OS_PASSWORD 环境变量
$ unset OS_AUTH_URL OS_PASSWORD
2、作为管理员用户,请求身份验证令牌:
$ 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 Password: +------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:14:07.056119Z | | id | gAAAAABWvi7_B8kKQD9wdXac8MoZiQldmjEO643d-e_j-XXq9AmIegIbA7UHGPv | | | atnN21qtOMjCFWX7BReJEQnVOAj3nclRQgAYRsfSU_MrsuWb4EDtnjU7HEpoBb4 | | | o6ozsA_NmFWEpLeKy0uNn_WeKbAhYygrsmQGA49dclHVnz-OMVLiyM9ws | | project_id | 343d245e850143a096806dfaefa9afdc | | user_id | ac3377633149401296f6c0d92d79dc16 | +------------+-----------------------------------------------------------------+
3、作为上一节中创建的 myuser 用户,请求身份验证令牌
$ openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name myproject --os-username myuser token issue Password: +------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:15:39.014479Z | | id | gAAAAABWvi9bsh7vkiby5BpCCnc-JkbGhm9wH3fabS_cY7uabOubesi-Me6IGWW | | | yQqNegDDZ5jw7grI26vvgy1J5nCVwZ_zFRqPiz_qhbq29mgbQLglbkq6FQvzBRQ | | | JcOzq3uwhzNxszJWmzGC7rJE_H0A_a3UFhqv8M4zMRYSbS2YF0MyFmp_U | | project_id | ed0b60bf607743088218b0a533d5943f | | user_id | 58126687cbcc4888bfa9ab73a2256f27 | +------------+-----------------------------------------------------------------+
六、创建脚本
1、创建和编辑 admin-openrc 文件并添加以下内容
# 将 ADMIN_PASS 替换为您在身份服务中为管理员用户选择的密码 $ export OS_PROJECT_DOMAIN_NAME=Default $ export OS_USER_DOMAIN_NAME=Default $ export OS_PROJECT_NAME=admin $ export OS_USERNAME=admin $ export OS_PASSWORD=ADMIN_PASS $ export OS_AUTH_URL=http://controller:5000/v3 $ export OS_IDENTITY_API_VERSION=3 $ export OS_IMAGE_API_VERSION=2
2、创建和编辑 demo-openrc 文件并添加以下内容
# 将 DEMO_PASS 替换为您在 Identity 服务中为演示用户选择的密码 $ export OS_PROJECT_DOMAIN_NAME=Default $ export OS_USER_DOMAIN_NAME=Default $ export OS_PROJECT_NAME=myproject $ export OS_USERNAME=myuser $ export OS_PASSWORD=DEMO_PASS $ export OS_AUTH_URL=http://controller:5000/v3 $ export OS_IDENTITY_API_VERSION=3 $ export OS_IMAGE_API_VERSION=2
3、使用脚本
$ . admin-openrc
4、请求身份验证令牌
$ openstack token issue +------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:44:35.659723Z | | id | gAAAAABWvjYj-Zjfg8WXFaQnUd1DMYTBVrKw4h3fIagi5NoEmh21U72SrRv2trl | | | JWFYhLi2_uPR31Igf6A8mH2Rw9kv_bxNo1jbLNPLGzW_u5FC7InFqx0yYtTwa1e | | | eq2b0f6-18KZyQhs7F3teAta143kJEWuNEYET-y7u29y0be1_64KYkM7E | | project_id | 343d245e850143a096806dfaefa9afdc | | user_id | ac3377633149401296f6c0d92d79dc16 | +------------+-----------------------------------------------------------------+
更多推荐



所有评论(0)