OpenStack Keystore组件实验
前言
-
部署openstack组件时,需先行安装认证服务(keystone),而认证服务是使用Apache运行的,安装完成后才可以创建、管理账号,然后安装镜像服务(glance)、计算服务(nova)、网络服务(neutron)
-
接着OpenStack 手动部署环境配置,继续配置,为openstack安装keystone组件,以下操作全部在控制节点ct上操作
一.创建数据库实例和数据库用户
mysql -u root -p
create database keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
flush privileges;
exit
二.安装、配置keystone、数据库、Apache
yum -y install openstack-keystone httpd mod_wsgi
cp -a /etc/keystone/keystone.conf{,.bak}
grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@ct/keystone
openstack-config --set /etc/keystone/keystone.conf token provider fernet
三.初始化认证服务数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
四.初始化fernet 密钥存储库
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
五.配置bootstrap身份认证服务
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ #初始化openstack,会把openstack的admin用户的信息写入到mysql的user表中,以及url等其他信息写入到mysql的相关表中
--bootstrap-admin-url http://ct:5000/v3/ \ #admin-url是管理网(如公有云内部openstack管理网络),用于管理虚拟机的扩容或删除;如果共有网络和管理网是一个网络,则当业务量大时,会造成无法通过openstack的控制端扩容虚拟机,所以需要一个管理网
--bootstrap-internal-url http://ct:5000/v3/ \ #internal-url是内部网络,进行数据传输,如虚拟机访问存储和数据库、zookeeper等中间件,这个网络是不能被外网访问的,只能用于企业内部访问
--bootstrap-public-url http://ct:5000/v3/ \ #public-url是共有网络,可以给用户访问的(如公有云) #但是此环境没有这些网络,则公用同一个网络
--bootstrap-region-id RegionOne
六.配置Apache HTTP服务器
echo "ServerName controller" >> /etc/httpd/conf/httpd.conf #将指定的controller节点追加到apache配置文件中
七.创建配置文件
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ #创建软连接到apache配置目录下
systemctl enable httpd #设置开机自启动
systemctl start httpd #开启apache服务
八.配置管理员账户的环境变量
cat >> ~/.bashrc << EOF
export OS_USERNAME=admin #用户admin
export OS_PASSWORD=ADMIN_PASS #密码ADMIN_PASS
export OS_PROJECT_NAME=admin #项目名称admin
export OS_USER_DOMAIN_NAME=Default #默认用户名
export OS_PROJECT_DOMAIN_NAME=Default #默认项目名
export OS_AUTH_URL=http://ct:5000/v3 #身份认证
export OS_IDENTITY_API_VERSION=3 #身份认证api版本3
export OS_IMAGE_API_VERSION=2 #镜像api版本2
EOF
source ~/.bashrc #加载全局变量
openstack user list #显示所有用户
九.创建OpenStack 域、项目、用户和角色
openstack project create --domain default --description "Service Project" service
十.创建角色
openstack role create user #创建角色user
openstack role list #查看角色列表
openstack token issue #查看是否可以不指定密码就可以获取到token信息并验证认证服务