上一篇:ubuntu 16.04 手动安装opentack Q版——环境篇
数据库配置
1、登录mariadb
mysql -uroot -p,密码为openstack。
2、创建keystone数据库
CREATE DATABASE keystone;
3、创建keystone用户,密码为openstack,并授权访问keystone数据库
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack';
4、退出
exit;
5、测试登录
mysql -h localhost -ukeystone -p
mysql -h controller -ukeystone -p
安装组件
1、安装keystone、apache2和libapache2-mod-wsgi
apt -y install keystone apache2 libapache2-mod-wsgi
2、vim /etc/keystone/keystone.conf
编辑配置:
# line 606: uncomment and specify Memcache Server
memcache_servers = controller:11211
# line 740: change ( MariaDB connection info )
connection = mysql+pymysql://keystone:openstack@controller/keystone
# line 2891: add
[token]
provider = fernet
3、生成keystone数据库的数据
su -s /bin/bash keystone -c "keystone-manage db_sync"
(非root用户执行sudo keystone-manage db_sync)
查看日志:tail /var/log/keystone/keystone-manage.log,看到done说明执行成功。
4、初始化Fernet密钥存储库
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
5、引导身份服务,管理密码为openstack
keystone-manage bootstrap --bootstrap-password openstack \
--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、vim /etc/apache2/apache2.conf
,添加:
# line 70: specify server name
ServerName controller
2、重启apache
service apache2 restart
3、新建环境变量配置keystonerc
export OS_USERNAME=admin
export OS_PASSWORD=openstack
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
4、使环境变量生效
source keystonerc
5、测试
echo $OS_USERNAME
创建域
Identity服务为每个OpenStack服务提供身份验证服务。身份验证服务使用域,项目,用户和角色的组合。
1、引导身份服务步骤中已存在“默认”域,但创建新域的正式方法是:
openstack domain create --description "An Example Domain" example
2、在default域下创建service项目:
openstack project create --domain default --description "Service Project" service
3、常规(非管理员)任务应使用非特权项目和用户。创建demo项目:
openstack project create --domain default --description "Demo Project" demo
4、创建demo用户:
openstack user create --domain default --password-prompt demo
按照提示设置密码为openstack。
5、创建user角色:
openstack role create user
6、将user角色添加到demo项目和demo用户
openstack role add --project demo --user demo user
7、查看域、项目、角色、用户
openstack domain list
openstack project list
openstack role list
openstack user list
验证操作
在安装其他服务之前验证Identity服务的操作。
1、取消设置临时OS_AUTH_URL和OS_PASSWORD环境变量:
unset OS_AUTH_URL OS_PASSWORD
2、作为admin用户,请求身份验证令牌:
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
按照提示输入密码openstack。
3、作为demo用户,请求身份验证令牌:
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name demo --os-username demo token issue
按照提示输入密码openstack。
创建OpenStack客户端环境脚本
前面几节使用了环境变量和命令选项的组合,通过openstack客户端与Identity服务进行交互。为了提高客户端操作的效率,OpenStack支持简单的客户端环境脚本,也称为OpenRC文件。这些脚本通常包含所有客户端的常用选项,但也支持独特的选项。
创建脚本
为admin和demo项目和用户创建客户端环境脚本。接下来引用这些脚本来加载客户端操作的适当凭据。这些脚本在控制节点和计算节点都适用。
1、创建并编辑admin-openrc文件并添加以下内容:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
2、创建并编辑demo-openrc文件并添加以下内容:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=openstack
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
使用脚本
要将客户端作为特定项目和用户运行,只需在运行它们之前加载关联的客户端环境脚本即可。例如:
1、加载admin-openrc文件以使用Identity服务的位置以及管理项目和用户凭据填充环境变量:
. admin-openrc或者source admin-openrc
2、请求身份验证令牌:
openstack token issue