这是搭建Openstack云平台的第三堂课,主要讲解认证服务Keystone的配置过程。Keystone负责Openstack各个环节的认证服务,是极其重要的,只有先配置好Keystone后,才能继续以后的工作。
创建数据库用户
mysql -uroot -pMariadb123
create database keystone; grant all privileges on keystone.* to 'keystone'@'localhost' identified by 'Keystone123'; grant all privileges on keystone.* to 'keystone'@'%' identified by 'Keystone123'; flush privileges; exit
配置keystone
安装keystone
yum -y install openstack-keystone
配置keystone
修改配置/etc/keystone/keystone.conf:
[cache] backend = oslo_cache.memcache_pool enabled = true memcache_servers = controller:11211 [database] connection = mysql+pymysql://keystone:Keystone123@controller/keystone [token] provider = fernet
同步keystone数据
su -s /bin/sh -c "keystone-manage db_sync" keystone # mysql -ukeystone -pKeystone123 -e "use keystone;show tables;"
初始化fernet-keys
keystone-manage fernet_setup \ --keystone-user keystone \ --keystone-group keystone keystone-manage credential_setup \ --keystone-user keystone \ --keystone-group keystone
引导身份认证服务(提前配置并重启httpd)
修改http服务配置/etc/httpd/conf/httpd.conf:
Listen 10.10.100.150:80 ServerName controller
启动httpd服务:
systemctl enable httpd systemctl start httpd
配置keystone服务:
keystone-manage bootstrap \ --bootstrap-password Admin123 \ --bootstrap-admin-url http://controller:35357/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne
输出环境变量
export OS_USERNAME=admin export OS_PASSWORD=Admin123 export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=default export OS_PROJECT_DOMAIN_NAME=default export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3
修改配置/usr/share/keystone/wsgi-keystone.conf:
Listen 10.10.100.150:5000 Listen 10.10.100.150:35357 ... <VirtualHost 10.10.100.150:5000> ... <VirtualHost 10.10.100.150:35357> ...
创建keystone配置文件软链接:
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
重启httpd:
systemctl restart httpd
创建默认项目
Openstack中的nova、glance等各项服务默认使用公用项目service、角色admin,因此,为了方便后续操作,我们先创建其统一项目“service”。
在生产环境中,无需配置Demo环境。
查看Domain列表
openstack domain list
在本文后面有创建新Domain的方法,此处略。
创建默认project
openstack project create \ --domain default \ --description "Service Project" service
创建默认user
openstack user create \ --domain default \ --password-prompt demo
输入密码(Demo123)后继续创建默认role(可将以上命令最后一行改为“--password=Demo123 demo”)
openstack role create user
关联项目、用户和角色
openstack role add \ --project service \ --user demo user
其他相关命令:
openstack user list openstack role list openstack role assignment list
用户变量脚本
admin
# /opt/scripts/admin # 登录控制面板前先执行:source /opt/scripts/admin export OS_USERNAME=admin export OS_PASSWORD=Admin123 export OS_PROJECT_NAME=admin export OS_PROJECT_DOMAIN_NAME=default export OS_USER_DOMAIN_NAME=default export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
demo(生产环境不需要)
# /opt/scripts/demo # 登录控制面板前先执行:source /opt/scripts/demo export OS_USERNAME=demo export OS_PASSWORD=Demo123 export OS_PROJECT_NAME=demo export OS_PROJECT_DOMAIN_NAME=default export OS_USER_DOMAIN_NAME=default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
至此,openstack的认证服务keystone已经配置完成。
验证操作
取消临时环境变量
unset OS_AUTH_URL OS_PASSWORD
admin请求认证令牌
openstack --os-auth-url http://controller:35357/v3 \ --os-project-domain-name default --os-user-domain-name default \ --os-project-name admin --os-username admin token issue
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 token issue
其他配置说明
每个项目的创建流程都是域、项目、用户、角色,最后关联,也可以直接登录Dashboard创建,具体流程可参考“创建测试项目”,因在以后各项服务中均涉及到该流程,故以此不多讲述。
创建新域
一般情况下,使用默认域即可,如果需要使用新域,则执行如下命令:
openstack domain create --description "New Domain" NewDomainName
查看配置信息
openstack [ assignment | catalog | endpoint | service | domain | project ] list
创建测试项目
测试项目非必要,尤其是生产环境中更没必要创建,这里只是举例。
openstack domain create \ --description "Test Domain" TestDomain openstack project create \ --domain TestDomain \ --description "Demo Project" TestProject openstack user create \ --domain TestDomain \ --password-prompt TestUser
输入密码(Test123)后继续:
openstack role create TestRole openstack role add \ --project TestProject \ --user TestUser TestRole
原创文章禁止转载:技术学堂 » Openstack云平台搭建课程三·认证服务Keystone