云计算基础架构构建与应用任务三Keystone的手工安装与配置课件_第1页
云计算基础架构构建与应用任务三Keystone的手工安装与配置课件_第2页
云计算基础架构构建与应用任务三Keystone的手工安装与配置课件_第3页
云计算基础架构构建与应用任务三Keystone的手工安装与配置课件_第4页
云计算基础架构构建与应用任务三Keystone的手工安装与配置课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、OPENSTACK配置与管理项目式实训任务三 Keystone的手工安装与配置二任务涉及节点:controller三任务目标:1.完成Keystone基本组件的安装;2.完成Keystone数据库的创建以及授权;3.完成Keystone主配置文件的修改;4.完成Keystone安全与认证配置;5.完成Keystone用户、租户、角色以及服务和端点的创建;6.完成Keystone环境变量脚本的创建。一任务前提环境:成功完成任务3中所有内容后开始本实验,或者从已完成任务的镜像开始,继续完成本任务内容。任务三 keystone的手工安装与配置四任务步骤及其详解:(此处有视频:6-1Keystone的

2、安装及其配置)步骤一:Keystone基本组件的安装在controller节点上执行yum源安装命令安装Keystone依赖包,命令如下。rootcontroller # yum -y install openstack-keystone python-keystoneclient执行上述安装命令成功后,我们可以看到成功标志,所有Keystone依赖包都安装完成,如图1所示。图1 Keystone依赖包安装完成反馈结果任务三 keystone的手工安装与配置步骤二:创建Keystone数据库并授权首先,登陆MySQL数据库,命令如下。rootcontroller # mysql -uroot

3、-p000000登陆后,我们首先创建Keystone数据库,命令如下。mysqlCREATE DATABASE keystone;看到提示Query OK, 1 row affected (0.00 sec),表明数据库创建成功。接着创建MySQL的Keystone用户,并赋予其Keystone数据库的操作权限,命令如下。mysql GRANT ALL PRIVILEGES ON keystone.* TO keystonelocalhost IDENTIFIED BY 000000; mysql GRANT ALL PRIVILEGES ON keystone.* TO keystone%

4、IDENTIFIED BY 000000;mysql exit任务三 keystone的手工安装与配置上述SQL语句中,第一个Keystone为表名,第二个Keystone为MySQL的用户名,“*”代表该库中所有表,“%”代表所有主机,localhost代表本机。通用的语法为:GRANT ALL PRIVILEGES ON 数据库名.表名TO 用户名主机 IDENTIFIED BY 密码;执行上述SQL语句后,我们可以尝试使用Keystone用户,密码为000000登陆MySQL数据库,登陆命令如下。rootcontroller # mysql -ukeystone -p000000本书中随

5、后的实训项目中,均以上述方式创建数据库并进行数据库的授权,故后续实训项目中不再赘述。任务三 keystone的手工安装与配置步骤三:修改配置Keystone文件rootcontroller # openstack-config -set /etc/keystone/keystone.conf database connection mysql:/keystone:000000controller/keystone上述命令的功能是在/etc/keystone/keystone.conf文件的database段落中添加“connection = mysql(数据库类型):/keystone(登陆数

6、据库的用户名):000000(用户密码)controller(数据库主机名)/keystone(数据库)”配置。我们通过vi命令直接修改/etc/keystone/keystone.conf文件,也可以达到相同效果。接着,我们需要同步数据库,为认证服务创建数据库表,命令如下。rootcontroller # su -s /bin/sh -c keystone-manage db_sync keystone任务三 keystone的手工安装与配置可以通过执行下面一条语句,查看是否同步并创建成功,命令如下,结果如图2所示。rootcontroller # mysql -u root -p00000

7、0 -euse keystone;show tables;图2 查看Keystone数据库同步情况接下来,我们通过openssl服务生成一个十位长度的十六进制随机数作为token值,命令如下。rootcontroller # ADMIN_TOKEN=$(openssl rand -hex 10)然后将此token值写入Keystone配置文件rootcontroller # openstack-config -set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN任务三 keystone的手工安装与配置上述命令的功能是在

8、/etc/keystone/keystone.conf文件的DEFAULT段落中添加“admin_token = $ADMIN_TOKEN”配置。将“ADMIN_TOKEN”变量的值传递给admin_token令牌。我们还可以通过命令echo $ADMIN_TOKEN查看token值。验证结果如下,83781a39b99cdba8596f(此数随机生成,每次各不相同不同)。任务三 keystone的手工安装与配置步骤四:Keystone安全与认证配置(此处有视频:6-2Keystone的安装及其配置)默认情况下,Keystone使用PKI令牌。创建签名密钥和证书,并且限制对生成的数据的访问,命

9、令如下。rootcontroller # keystone-manage pki_setup -keystone-user keystone -keystone-group keystone更改ssl目录及其下所有文件和目录的所属用户和所属组,命令如下。rootcontroller # chown -R keystone:keystone /etc/keystone/ssl上述命令中,-R参数可以实现迭代操作。去掉ssl目录及其下所有文件和目录的其他用户的所有权限,命令如下。rootcontroller # chmod -R o-rwx /etc/keystone/ssl任务三 keyston

10、e的手工安装与配置步骤五:启动认证服务并将其加入开机自启rootcontroller # service openstack-keystone start上述命令执行完之后,当看到OK的提示时,表示成功,如图3所示。图3 启动认证服务接着我们服务加入开机自启,命令如下。rootcontroller # chkconfig openstack-keystone on上述命令执行后,可以通过命令chkconfig可以查看,看到3、4、5为on即表示成功加入开机自启,结果如下。rootcontroller # chkconfig | grep openstack-keystoneopenstack-

11、keystone 0:off 1:off 2:on 3:on 4:on 5:on 6:off任务三 keystone的手工安装与配置步骤六:清除失效令牌默认情况下,认证服务无限期的在数据库中存储失效的令牌。尽管对生产环境中的审计有潜在价值时,但累积的得失效令牌将大幅增加数据库的大小,可能会降低服务质量,特别是在具备有限资源的测试环境下。我们建议使用cron配置一个周期性任务,来每小时清除失效的令牌。运行以下命令来每小时清除失效令牌,日志输出,命令如下。rootcontroller # (crontab -l -u keystone 2&1 | grep -q token_flush) |ech

12、o hourly/usr/bin/keystone-manage token_flush/var/log/keystone/keystone-tokenflush.log 2&1 /var/spool/cron/keystone任务三 keystone的手工安装与配置步骤七:创建用户、租户和角色在安装认证服务之后,我们需要设置用户、租户以及角色来进行认证。通常,我们需要指定一个用户名和密码通过认证服务进行身份验证。然而,在现在为止,我们还没有创建任何用户,所以我们必须使用在前面的步骤中创建的授权令牌。设置OS_SERVICE_TOKEN,以及OS_SERVICE_ENDPOINT环境变量来指定

13、何处身份服务正在运行。我们需要用授权令牌取代ADMIN_TOKEN。命令如下。rootcontroller# export OS_SERVICE_TOKEN=$ADMIN_TOKENrootcontroller# export OS_SERVICE_ENDPOINT=http:/controller:35357/v2.0我们可以通过env命令查看环境变量,来验证上述语句我们创建的环境变量是否生效,命令如下。rootcontroller # env任务三 keystone的手工安装与配置现在我们可以创建一个管理用户、角色、租户并授予用户访问权限。命令如下,结果如图4、5和6所示。rootcont

14、roller# keystone user-create -name=admin -pass=000000图4 创建用户的反馈结果任务三 keystone的手工安装与配置上述命令用于创建用户并为其设定密码,这里我们创建了一个admin用户。本书实训中我们所有的密码都为000000,实际生产环境中,我们应该按实际需要设定密码。rootcontroller# keystone role-create -name=admin图5 创建角色的反馈结果任务三 keystone的手工安装与配置上述命令用于创建角色,这里我们创建了一个admin角色。rootcontroller# keystone tena

15、nt-create -name=admin -description=Admin Tenant图6 创建租户的反馈结果任务三 keystone的手工安装与配置上述命令用于创建租户,这里我们创建了一个admin租户,对租户的描述即“-description”选项可以省略。rootcontroller# keystone user-role-add -user=admin -tenant=admin -role=admin上述命令可以实现用户、角色和组合的连接,即将用户添加到组合中,并赋予租户相应角色即权限,这里我们将admin用户添加到admin租户中并为admin用户绑定admin角色。同时,

16、需要注意的是,执行绑定角色赋予权限的这条命令是没有任何输出的。rootcontroller# keystone user-role-add -user=admin -role=_member_ -tenant=admin上述命令中,我们除了给admin用户赋予admin权限之外,还赋予admin用户_member_权限。默认情况下,认证服务会创建一个特殊的_member_角色,OpenStack的Dashboard服务需要用户拥有_member_角色。所以我们赋予了admin用户_member_权限。任务三 keystone的手工安装与配置云用户里,除了管理员之外,还应该有非管理员即一般用户,

17、下面我们使用上面创建用户、租户和角色的命令来创建一个一般用户,命令如下。(此处有视频:6-3keystone的安装及其配置)rootcontroller# keystone user-create -name=demo -pass=000000rootcontroller# keystone tenant-create -name=demo -description=Demo Tenantrootcontroller# keystone user-role-add -user=demo -role=_member_ -tenant=demo上述命令中,我们创建了一个名为“demo”的租户,当我

18、们增加额外的普通用户时不需要再重新创建租户了,直接将新添的普通的租户加入到“demo”租户中即可。任务三 keystone的手工安装与配置在Openstack中,几乎所有的服务(包括Keystone服务)要想正常运行,都必须首先向Keystone服务器注册。每一个服务需要向Keystone注册以下两个方面的信息,即用户信息,服务(service)和端点(endpoint)信息。为方便管理,这里我们创建一个“service”租户,将本书所有的服务都创建在“service”租户下。命令如下,结果如图7所示。rootcontroller# keystone tenant-create -name=s

19、ervice -description =Service Tenant图7 创建service租户的反馈结果任务三 keystone的手工安装与配置步骤八:创建服务(service)和端点(endpoint)在OpenStack中我们需要在安装服务时将每一个在Keystone服务中进行注册登记,以便Keystone服务可以知道其他服务的安装位置同时定位它们的网络位置。所以现在我们必须先注册Keystone服务本身。与创建用户、租户和角色时一样,此时我们同样需要使用OS_SERVICE_TOKEN环境变量,进行身份验证。首先我们需要创建一个服务入口即服务(service),命令如下,结果如图8所

20、示。rootcontroller # keystone service-create -name=keystone -type=identity -description=Openstack Identity图8 创建Keystone服务的反馈结果任务三 keystone的手工安装与配置上面结果中的ID是随机生成的,每人每次实验产生的结果是不相同的。我们需要在创建端点(endpoint)之前创建服务(service),因为OpenStack需要使用返回的服务(service)ID来为OpenStack各服务指定一个API端点(endpoint)。当我们创建一个端点时,我们需要分别为public

21、 API, internal API, and admin API指定URL。我们可以使用IP地址也可以使用设定好的主机名即我们定义的controller。命令如下,结果如图9所示。rootcontroller # keystone endpoint-create -service-id=$(keystone service-list | awk / identity / print $2) -publicurl=http:/controller:5000/v2.0 -internalurl=http:/controller:5000/v2.0 -adminurl=http:/controll

22、er:35357/v2.0图9 创建endpoint的反馈结果任务三 keystone的手工安装与配置上述命令中,我们先来讲解下面这条命令keystone service-list | awk / identity / print $2的作用。“keystone service-list”命令的作用是列出所有已经创建的服务(service),命令awk / identity / print $2的作用是通过awk的筛选功能,匹配到“identity”所在行,“print $2”是指打印出第二个数值即输出第二个字段中的数值。两条命令中间的“|”为Linux中的管道符,作用是将前一个命令的输出结果

23、,传递给后一个命令并作为第二个命令的条件使用。注意,Keystone服务为admin API使用了一个不同的端口35357。任务三 keystone的手工安装与配置步骤九:验证认证服务Keystone的安装为验证Keystone服务的正确安装和配置,清除OS_SERVICE_TOKEN,以及OS_SERVICE_ENDPOINT环境变量中的值,命令如下。rootcontroller # unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT接着,用管理凭证和管理终端建立了一个admin-openrc.sh文件,命令如下。rootcontroller # vi ad

24、min-openrc.sh在admin-openrc.sh文件中写入以下内容。export OS_USERNAME=adminexport OS_PASSWORD=000000export OS_TENANT_NAME=adminexport OS_AUTH_URL=http:/controller:35357/v2.0然后,在环境变量中导入这个文件来读取,使环境变量生效,命令如下。rootcontroller # source admin-openrc.sh任务三 keystone的手工安装与配置我们可以通过Keystone命令来验证我们的admin-openrc.sh文件被正确配置,命令如

25、下。rootcontroller # keystone token-get上述命令会返回一个令牌和指定租户的ID,这能验证我们已经正确配置了我们的环境变量。接下来我们需要验证我们的管理员账户已经被授权执行管理命令的权限。我们可以通过 查看keystone user-list命令输出中的id是否匹配keystone user-role-list命令中的user_id,以及管理角色是否对用户和相关组合罗列出来,这能验证我们的用户账户是否拥有绑定角色相匹配的admin权限。命令如下,结果如图10和图11所示。rootcontroller # keystone user-list图10 查看用户列表的

26、反馈结果任务三 keystone的手工安装与配置rootcontroller # keystone user-role-list -user admin -tenant admin图11 查看权限的反馈结果上述命令中,只要我们通过命令或环境变量定义我们的认证信息和认证服务端点,我们就可以从任意一台机器上运行所有的OpenStack命令。任务三 keystone的手工安装与配置步骤十:常见错误及调试排错错误1:环境变量我们在执行Keystone相关命令时,经常提示认证错误信息,例如,查看用户列表命令如下。rootcontroller # keystone user-list执行命令后出现了如下的

27、提示错误提示。The request you have made requires authentication. (HTTP 401)一般出现这样的情况都是环境变量导入错误,在与Keystone进行认证时没有通过。我们首先查看环境变量文件,命令如下。rootcontroller # vi /admin-openrc.sh任务三 keystone的手工安装与配置发现文件中的环境变量如下,其中第二行的用户密码不是创建用户时所对应的密码。export OS_USERNAME=adminexport OS_PASSWORD=123456export OS_TENANT_NAME=adminexpor

28、t OS_AUTH_URL=http:/controller:35357/v2.0我们将其改为export OS_PASSWORD=000000保存后重新导入该环境变量文件,命令如下。rootcontroller # source /admin-openrc.sh重新查看用户列表,如图12发现用户显示正常。图12 更正环境变量文件后keystone命令正常执行任务三 keystone的手工安装与配置错误2:端点创建错误 我们在创建Keystone服务端点的时候,难免对发生一些小错误,端口配置错误会导致Keystone找不到该服务,例如,我们在创建Keystone服务端点时,将admin的端口写

29、成了5000,在导入admin的环境变量后,我们查看用户列表命令如下。rootcontroller # source /admin-openrc.sh rootcontroller # keystone user-list提示以下报错:The resource could not be found. (HTTP 404)我们查看已经创建的服务端点命令如下。rootcontroller # keystone endpoint-list发现还是提示The resource could not be found. (HTTP 404)。任务三 keystone的手工安装与配置这是因为当前系统的adm

30、in用户已经不具备访问Keystone服务的令牌了,我们需要手动为系统指定令牌,我们首先查看Keystone的配置文件。rootcontroller # vi /etc/keystone/keystone.conf查看Keystone的admin令牌的令牌值(admin_token),这里为了方便演示,使用000000作为admin的令牌值。查找到admin令牌的令牌值后,我们导入令牌以及Keystone服务的admin端点。rootcontroller # export OS_SERVICE_TOKEN=000000rootcontroller # export OS_SERVICE_ENDPOINT=http:/co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论