OpenStack云计算实战手册 第3版(txt+pdf+epub+mobi电子书下载)

作者:(英)凯文·杰克逊(Kevin Jackson)(美)科迪·邦奇(Cody Bunch)埃格尔·西格勒(Egle Sigler)

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

OpenStack云计算实战手册 第3版

OpenStack云计算实战手册 第3版试读:

前言

OpenStack是一个用于构建公有云和私有云的开源软件。它是一个全球性的成功软件,由全球数千名人员开发和支持,并得到当今云计算领域巨头的鼎力支持。本书设计的初衷在于帮助读者快速上手OpenStack,在理解的基础上将OpenStack更有信心地应用到自己的数据中心。本书涵盖了安装和配置私有云的各种内容:从使用Virtualbox安装OpenStack测试环境,到快速扩张生产环境的自动安装脚本。本书主要内容包括:● 如何安装和配置OpenStack的所有核心组件,并运行一个类似

Rackspace、HPHelion或其他云平台那样可管理和可运维的环境;● 如何掌握一个完整的私有云技术栈,从计算资源的扩容到管理高

冗余、高可用的对象存储服务;● 每一章均提供了各种服务的真实和实用的例子,使读者在应用到

自己的环境中时也能充满信心。

本书为成功安装和运行读者自己的私有云提供了一个清晰的按部就班的指导。它包含丰富而实用的脚本,使读者能使用和实践OpenStack的最新特性。本书涵盖的内容

第1章带领读者安装和配置Keystone,它支撑着其他OpenStack服务。

第2章介绍如何安装、配置和使用OpenStack环境中的镜像服务Glance。

第3章介绍如何安装、配置OpenStack网络服务,包括DVR等新特性。

第4章介绍如何配置和使用OpenStack Nova,并以Virtualbox环境运行OpenStack 计算服务为例进行说明。

第5章介绍如何配置和使用OpenStack对象存储,并以Virtualbox环境运行对象存储服务为例进行说明。

第6章介绍如何使用存储服务来存储、获取文件和对象。

第7章介绍如何在数据中心中使用可用于运行OpenStack存储服务的工具和技巧。

第8章介绍如何使用Cinder卷服务,安装和配置持久化块存储服务。

第9章介绍OpenStack Neutron中的LBaaS、FWaaS服务,以及Ceilometer和Heat等OpenStack特性。

第10章介绍如何使用Openstack Dashboard,安装和使用Web用户界面,执行如创建用户、修改安全组、启动实例等任务。

第11章介绍如何使用Ansible进行自动化安装,并说明提升OpenStack服务弹性和可用性的工具与技巧。阅读本书需要的准备

要使用本书,需要能够访问带有虚拟化能力的计算机或服务器。要建立一个小型的实验环境,需要一个控制主机、网络主机和计算主机。为了运行Swift服务,本书提供了创建多节点环境的具体步骤,环境由1个代理服务器和5个存储节点组成。

为了设置好实验环境,你需要安装和使用Oracle的Virtualbox和Vagrant。可访问http://bit.ly/OpenStackCoobookSandbox,了解如何在计算机上使用Virtualbox和Vagrant。

我们还提供了其他快速上手实验环境的说明,访问地址http://www.openstackcookbook.com。安装MariaDB/MySQL等支撑性软件时,请参考该网站的安装说明。更多信息,请访问http://bit.ly/OpenStackCookbookPreReqs。本书的目标读者

本书面向的是那些熟悉云计算平台,并正在从虚拟化环境过渡到云计算环境的系统管理员和技术架构师。读者需要有虚拟化和Linux管理的知识,如果具有OpenStack方面的知识和经验,对阅读本书是有帮助的,但不是必须的。书中的排版约定

读者会发现在本书中使用了一些文本格式用以区分不同类型的信息。这里介绍一下这些格式的一些例子和含义。

文中的代码、数据库表名、文件夹名称、文件名、文件的扩展名、路径和用户输入等都用等宽字体表示。

代码块表示方式如下:account-server:bind_port=6000container-server:bind_port=6001object-server:bind_port=6002

对于代码块中希望重点关注的部分,会将相关内容加粗:[swift-hash]# Random unique string used on all nodesswift_hash_path_prefix=a4rUmUIgJYXpKhbhswift_hash_path_suffix=NESuuUEqc6OXwy6X

命令行输入和输出都是以如下样式书写的:sudo swift-init all startsudo swift-init all stopsudo swift-init all restart

新术语和重要词语用粗体表示。以页面、菜单和对话框中出现的词语为例,读者会看到这样的样式:“一个重要字段是Common Name字段。” 警告或重要注释会使用这样的段落。 提示和技巧会使用这样的段落。读者反馈

我们一直非常欢迎读者的反馈。请告诉我们你觉得这本书怎么样——喜欢哪些内容,不喜欢哪些内容。你的反馈对我们至关重要,能让我们写出使读者获益更多的书。

普通的反馈只需发送邮件到feedback@packtpub.com,并在邮件标题中注明相应的书名即可。

如果你是某个领域的专业人士,并且对写作和撰稿感兴趣,请参考我们的作者指南,相关网址:www.packtpub.com/authors。客户支持

现在你已经成为 Packt 图书的尊贵所有者,我们将极尽所能让你能从购买的本书中获得极大的价值。下载示例代码

读者可从https://github.com/OpenStackCookbook/OpenStackCookbook下载本书的示例代码文件。所有相关文件均可从此处下载。第1章Keystone——OpenStack身份认证服务

本章将讲述以下内容:● 安装OpenStack身份认证服务● 为SSL通信配置OpenStack身份认证● 在Keystone里创建租户● 在Keystone里配置角色● 往Keystone里添加用户● 定义服务端点● 创建服务对应的租户和用户● 为LDAP的集成配置Openstack身份认证1.1 简介

OpenStack身份认证服务(Identity Service),即Keystone,是为OpenStack云环境中用户的账户和角色信息提供认证和管理服务的。这是一个关键的服务,OpenStack云环境中所有服务之间的鉴权和认证都需要经过它,所以它也是OpenStack环境中第一个要安装的服务。OpenStack身份认证服务通过在所有OpenStack服务之间传输有效的鉴权密钥,来对用户和租户鉴权。这个密钥被用来为某个具体服务做鉴权和验证,接下来你就能使用那些服务,如OpenStack的存储和计算服务。因此,第一步就要配置OpenStack身份认证服务,包括为用户创建合适的角色,以及创建服务、租户、用户账户和服务API 端点,这些服务构成了我们的云基础设施。

在Keystone里,我们有如下概念:租户、角色和用户。租户就像一个项目,它有一些资源,比如用户、镜像和实例,并且其中有仅仅对该项目可知的网络。用户可隶属于一个或多个租户,并且可以在这些项目中切换,去获取相应资源。租户里的用户可以被指定为多种角色。在最基本的应用场景里,一个用户可以被指定为管理员角色,或者只是成员角色。当用户在租户中拥有管理员特权时,他们可以使用那些影响租户的功能(比如修改外部网络)。反之,一个普通用户被指定为成员角色,它通常被指定执行与用户相关的角色,比如旋转实例、创建卷和创建租户唯一网络。1.2 安装OpenStack身份认证服务

我们将会使用Ubuntu Cloud Archive安装和配置OpenStack身份认证服务,也就是Keystone项目。配置完成之后,连接到OpenStack云环境都需经过这里所安装的OpenStack身份认证服务。

OpenStack身份认证服务的默认后台数据库是MariaDB数据库。图1-1展示我们将要安装的环境。在本章里,我们会专注于Controller主机。图1-1准备工作

为保证运行的是Ubuntu Cloud Archive,必须先配置Ubuntu 14.04安装以使用该服务。更多信息,访问http://bit.ly/OpenStackCookbookCloudArchive。所有步骤都能在http://www.openstackcookbook.com/找到。

我们将配置Keystone,使用MariaDB作为数据库后端,因此,安装Keystone之前需要安装MariaDB。如果MariaDB还没有安装,访问http://bit.ly/OpenStackCook bookPreReqs。

请确保你有一台合适的服务器来安装OpenStack身份认证服务组件。如果你正在使用前言里描述过的Vagrant环境,它就是controller节点。

请确保已经登录到controller节点上,并且确保能访问因特网,允许我们在环境里安装运行Keystone必需的软件包。如果是通过Vagrant来创建这个节点,请执行以下命令。vagrant ssh controller

上述指令假设controller节点有两个IP地址。前端IP地址192.168.100.200和后端IP地址172.16.0.200(它也是MariaDB服务器的地址)。存在两个IP地址的原因是,内部数据通过后端IP地址进行通信(如数据库传输),同时任何Keystone的传输都是通过前端IP地址。操作步骤

执行如下指令,安装OpenStack身份认证服务。

1.安装OpenStack身份认证服务可通过指定安装Ubuntu资源库里的Keystone软件包来完成。只需执行如下命令。sudo apt-get updatesudo apt-get install ntp keystone python-keyring

2.安装好之后,需要配置后台数据库存储。首先需要在MariaDB里创建一个keystone数据库,按照如下步骤来执行(在本例中,假定MariaDB的用户名是root,对应的密码是openstack,该用户有创建数据库的权限)。MYSQL_ROOT_PASS=openstack mysql -uroot -p$MYSQL_ROOT_PASS -e "CREATE DATABASE \ keystone;"

3.一个最佳实践是在数据库中为OpenStack身份认证服务单独创建一个特定的用户。创建命令如下。MYSQL_KEYSTONE_PASS=openstackmysql -uroot -p$MYSQL_ROOT_PASS -e "GRANT ALL PRIVILEGES ON \keystone.* TO 'keystone'@'localhost' IDENTIFIED BY \'$MYSQL_KEYSTONE_PASS';"mysql -uroot -p$MYSQL_ROOT_PASS -e "GRANT ALL PRIVILEGES ON \keystone.* TO 'keystone'@'%' IDENTIFIED BY \'$MYSQL_KEYSTONE_PASS';"

4.接下来,配置OpenStack身份认证服务来使用该数据库。编辑配置文件/etc/ keystone/keystone.conf,如下所示。[DEFAULT]admin_token = ADMINlog_dir=/var/log/keystone[database]connection = mysql://keystone:openstack@172.16.0.200/keystone[extra_headers]Distribution = Ubuntuuse_syslog = Truesyslog_log_facility = LOG_LOCAL0

5.现在重启keystone服务来验证这些改动。sudo stop keystone sudo start keystone

6.keystone启动之后,用如下命令为keystone数据库填充必需的数据表。sudo keystone-manage db_sync恭喜!现在已经为OpenStack环境安装好了OpenStack身份认证服务。工作原理

通过使用Ubuntu的包,可以便捷地安装好OpenStack环境中的OpenStack身份认证服务。安装完成之后,在MariaDB数据库服务器中配置了keystone数据库,并且用相应值来设置keystone.conf配置文件。启动Keystone服务之后,运行keystone-manage db_sync命令来为keystone数据库填充合适的数据表,以方便向其中添加OpenStack环境中所必需的用户(user)、角色(role)和租户(tenant)。1.3 为SSL通信配置OpenStack身份认证

本书的诸多更新之一是一个更加全面的强化方法。为此,我们开始就默认为Keystone服务启用SSL通信。请务必注意,我们这里通过自签名的证书来演示如何配置这些服务。在生产中的部署,强烈建议去认证中心(Certificate Authority)获取合适的证书。准备工作

请确保已经登录controller节点,并且能访问因特网,允许我们在环境里安装运行Keystone必需的软件包。如果你是通过Vagrant来创建节点,请执行以下命令。vagrant ssh controller操作步骤

执行如下指令,配置Keystone服务。

1.在配置Keystone使用SSL通信之前,我们需要生成所需的OpenSSL证书。为此,登录正在运行Keystone的服务器,执行如下命令。sudo apt-get install python-keystoneclientkeystone-manage ssl_setup --keystone-user keystone \ --keystone-group keystone生产中,不需要使用keystone-manage ssl_setup命令。这是一个Keystone创建自签名证书的便利工具。

2.证书生成之后,我们就能用来与Keystone服务通信。我们把证书放置在一个可访问的地方,方便在其他服务里引用已生成的CA文件。执行以下命令。sudo cp /etc/keystone/ssl/certs/ca.pem /etc/ssl/certs/ca.pemsudo c_rehash /etc/ssl/certs/ca.pem

3.我们在客户端也使用同样的CA和CA Key文件,所以把它们复制到将会运行相关python-*client工具的地方。在Vagrant环境里,我们把它们复制到主机里,如下所示。sudo cp /etc/keystone/ssl/certs/ca.pem /vagrant/ca.pemsudo cp /etc/keystone/ssl/certs/cakey.pem /vagrant/cakey.pem

4.然后,编辑Keystone配置文件/etc/keystone/keystone.conf,增加如下内容。[ssl]enable = Truecertfile = /etc/keystone/ssl/certs/keystone.pemkeyfile = /etc/keystone/ssl/private/keystonekey.pemca_certs = /etc/keystone/ssl/certs/ca.pemcert_subject=/C=US/ST=Unset/L=Unset/O=Unset/CN=192.168.100.200ca_key = /etc/keystone/ssl/certs/cakey.pem

5.最后,重启Keystone服务。sudo stop keystonesudo start keystone工作原理

Openstack服务一般通过标准HTTP请求来完成互通。这提供了很大程度的灵活性,但这是以所有的通信都是基于明文为代价的。通过增加SSL认证,并且修改Keystone的配置,所有Keystone的通信都将通过HTTPS加密。1.4 在Keystone里创建租户

一个租户(tenant)在OpenStack里就是一个项目,这两个术语通常互换使用。在创建一个用户时必须首先为该用户分配一个租户,否则将无法创建此用户,所以首先要创建租户。在这一节中,将为用户创建一个名为cookbook的租户。准备工作

我们将会使用keystone客户端来操作Keystone。如果工具python-keystoneclient不可用,请按照如下所描述的步骤操作:http://bit.ly/OpenStackCookbookClientInstall。

为了能以管理者权限访问OpenStack环境,请确保已经正确设置环境。export OS_TENANT_NAME=cookbookexport OS_USERNAME=adminexport OS_PASSWORD=openstackexport OS_AUTH_URL=https://192.168.100.200:5000/v2.0/export OS_NO_CACHE=1export OS_KEY=/vagrant/cakey.pemexport OS_CACERT=/vagrant/ca.pem如果网络中没有其他可用的机器,可以使用controller节点,因为它有python-keystoneclient,并且可以访问OpenStack环境。如果使用Vagrant环境,请执行以下命令来访问Controller:vagrant ssh controller操作步骤

执行如下步骤,在OpenStack环境中创建一个租户。

1.我们从创建一个名为cookbook的租户开始。keystone tenant-create\ --name cookbook\ --description "Default Cookbook Tenant"\ --enabled true

输出如图1-2所示。图1-2

2.同样需要一个admin租户,该租户下的用户能够访问整个环境。因此,使用同样的方式。keystone tenant-create\ --name admin \ --description "Admin Tenant" \ --enabled true工作原理

通过keystone客户端很容易创建租户,只需要指定tenant-create相关选项,语法如下所示。keystone tenant-create \ --name tenant_name \ --description "A description" \ --enabled true

tenant_name是一个不包含空格的任意字符串。创建租户时,keystone会返回一个与租户相对应的ID,可以通过这个ID来将用户添加到这个租户里。如果想查看环境中所有租户和它们所对应ID的列表,可以执行如下命令。keystone tenant-list1.5 在Keystone里配置角色

角色是分配给一个租户中用户的权限。在这里配置两个角色,一个用于管理云环境的admin角色和另一个用于分配给使用云环境的普通用户的member角色。准备工作

我们将会使用keystone客户端来操作Keystone。如果工具python-keystoneclient不可用,请按照如下所描述的步骤操作:http://bit.ly/OpenStackCookbookClientInstall。

为了能以管理者权限访问OpenStack环境,请确保已经正确设置环境。export OS_TENANT_NAME=cookbookexport OS_USERNAME=adminexport OS_PASSWORD=openstackexport OS_AUTH_URL=https://192.168.100.200:5000/v2.0/export OS_NO_CACHE=1export OS_KEY=/vagrant/cakey.pemexport OS_CACERT=/vagrant/ca.pem如果网络中没有其他可用的机器,可以使用controller节点,因为它有python-keystoneclient,并且可以访问OpenStack环境。如果使用Vagrant环境,执行以下命令来访问Controller:vagrant ssh controller操作步骤

执行如下步骤,在我们的OpenStack环境中创建必需的角色。

1.创建admin角色。# admin role keystone role-create --name admin

输出如图1-3所示。图1-3

2.用同样的命令来创建Member role,只是把name选项指定为Member。# Member rolekeystone role-create --name Member工作原理

通过keystone客户端创建一个角色很容易实现,只需要在运行keystone时指定role-create选项,语法如下所示。keystone role-create --name role_name

对admin和Member role来说,role_name的属性值不是任意的。admin角色已经在/etc/keystone/policy.json配置文件中被设置为具有管理员权限。{     "admin_required": [["role:admin"], ["is_admin:1"]]}

通过Web接口创建的非管理员用户,会在OpenStack Dashboard(即Horizon)中默认配置成Memberrole。

创建角色时,keystone会返回一个与角色相对应的ID,可以通过这个ID来把角色关联到某个用户。如果想查看环境中所有角色和它们所对应ID的列表,可以执行如下命令。keystone role-list1.6 往Keystone里添加用户

在OpenStack身份认证服务中添加用户时,必须要有一个能容纳该用户的租户,还需要定义一个能分配给该用户的角色。在本节中,将创建两个用户。第一个用户名为admin,它在cookbook租户中被分配为admin角色。第二个用户名为demo,同样在cookbook租户中,它被分配为Member角色。准备工作

我们将会使用keystone客户端来操作Keystone。如果工具python-keystoneclient不可用,请按照如下所描述的步骤操作:http://bit.ly/OpenStackCookbookClientInstall。

为了能以管理者权限访问OpenStack环境,请确保已经正确设置环境。export OS_TENANT_NAME=cookbookexport OS_USERNAME=adminexport OS_PASSWORD=openstackexport OS_AUTH_URL=https://192.168.100.200:5000/v2.0/export OS_NO_CACHE=1export OS_KEY=/vagrant/cakey.pemexport OS_CACERT=/vagrant/ca.pem如果网络中没有其他可用的机器,可以使用controller节点,因为它有python-keystoneclient,并且可以访问OpenStack环境。如果使用Vagrant环境,执行以下命令来访问Controller:vagrant ssh controller操作步骤

执行如下步骤,在OpenStack环境中创建用户。

1.如果要在cookbook租户中创建一个用户,首先要获得cookbook租户的ID。通过keystone命令,指定tenant-list选项,就可以得到该ID,然后将其存储在TENANT_ID变量中,命令如下所示。TENANT_ID=$(keystone tenant-list \ | awk '/\ cookbook\ / {print $2}')

2.现在已经得到了租户的ID,在cookbook租户中创建admin用户,注意要使用user-create选项,还需要为该用户设置密码。PASSWORD=openstack keystone user-create \ --name admin \ --tenant_id $TENANT_ID \ --pass $PASSWORD \ --email root@localhost \ --enabled true

输出如图1-4所示。图1-4

3.在创建admin用户时,为了赋予它admin角色,需要先获得admin角色的ID。用role-list选项取出admin角色的ID,然后将其存储在一个变量里。ROLE_ID=$(keystone role-list \ | awk '/\ admin\ / {print $2}')

4.为了向角色赋予admin用户,需要用到创建admin用户时返回的用户ID。执行如下的keystone命令,通过user-list选项列出所有的用户,从而得到admin用户的ID。USER_ID=$(keystone user-list \ | awk '/\ admin\ / {print $2}')

5.根据租户ID、用户ID以及对应的角色ID,通过user-role-add选项把角色赋予对应的用户。keystone user-role-add \ --user $USER_ID \ --role $ROLE_ID \ --tenant_id $TENANT_ID注意,成功执行该命令之后是没有输出的。

6.为了管理整个环境,admin用户也需要在admin租户中。为此,需要获得admin租户的ID并使用新租户的ID重复前面的步骤。ADMIN_TENANT_ID=$(keystone tenant-list \ | awk '/\ admin\ / {print $2}') keystone user-role-add \ --user $USER_ID \ --role $ROLE_ID \ --tenant_id $ADMIN_TENANT_ID

7.接下来要在cookbook租户里创建一个demo用户,并赋予其Member角色,操作类似前5步,命令如下所示。# Get the cookbook tenant IDTENANT_ID=$(keystone tenant-list \ | awk '/\ cookbook\ / {print $2}') # Creat the userPASSWORD=openstack keystone user-create \ --name demo \ --tenant_id $TENANT_ID \ --pass $PASSWORD \ --email demo@localhost \ --enabled true # Get the Member role IDROLE_ID=$(keystone role-list \ | awk '/\ Member\ / {print $2}') # Get the demo user IDUSER_ID=$(keystone user-list \ | awk '/\ demo\ / {print $2}') # Assign the Member role to the demo user in cookbookkeystone user-role-add \ --user $USER_ID \ --role $ROLE_ID \ --tenant_id $TENANT_ID工作原理

向OpenStack身份认证服务里添加用户涉及多个步骤和依赖关系。首先,需要有租户,才能容纳用户。只要租户存在,就可以增加用户。这时,用户还没有关联的角色,所以最后一步就是给用户指定角色,比如Member或admin。

通过user-create选项,使用如下语法创建用户。keystone user-create \ --name user_name \ --tenant_id TENANT_ID \ --pass PASSWORD \ --email email_address \ --enabled true

user_name属性可以是任意名称,但不能包含空格。password属性是必需的,在之前的例子里,它们都被设为openstack。email_address属性也是必需的。

赋予一个用户某个角色的命令选项是user-role-add,语法如下所示。keystone user-role-add \ --user USER_ID \ --role ROLE_ID \ --tenant_id TENANT_ID

这表示在赋予角色之前,必须先取得用户的ID、角色的ID及租户的ID。这些ID可以通过如下命令得到。keystone tenant-list keystone user-listkeystone role-list 1.7 定义服务端点

云环境中的每一个服务都运行在一个特定的URL和端口上,也就是这些服务的端点地址。当一个客户端程序连到OpenStack环境时,Keystone身份认证服务负责向其返回云环境中的各个服务的端点地址,以便客户端程序使用这些服务。为启用该功能,必须先定义这些端点。在云环境中,可以定义多个区域,可以把不同的区域理解为不同的数据中心,它们各自有不同的URL或IP地址。在OpenStack身份认证服务里,还可以在每一个区域里分别定义URL端点。在这里,由于只有一个区域,将其标识为RegionOne。准备工作

我们将会使用keystone客户端来操作Keystone。如果工具python-keystoneclient不可用,请按照如下所描述的步骤操作:http://bit.ly/OpenStackCookbookClientInstall。

为了能以管理者权限访问OpenStack环境,请确保已经正确设置环境。export OS_TENANT_NAME=cookbookexport OS_USERNAME=adminexport OS_PASSWORD=openstackexport OS_AUTH_URL=https://192.168.100.200:5000/v2.0/export OS_NO_CACHE=1export OS_KEY=/vagrant/cakey.pemexport OS_CACERT=/vagrant/ca.pem如果网络中没有其他可用的机器,可以使用controller节点,因为它有python-keystoneclient,并且可以访问OpenStack环境。如果使用Vagrant环境,请执行以下命令来访问Controller:vagrant ssh controller操作步骤

通过运行keystone客户端命令,可在OpenStack身份认证服务中定义各个服务和服务端点。即使某些服务现在还没有在云环境中运行起来,也可以先在OpenStack身份认证服务中配置好,以便将来使用。通过如下步骤,在OpenStack环境中为各个服务定义端点。

1.现在来定义一些云环境中OpenStack身份认证服务需要知道的服务。# OpenStack Compute Nova API Endpoint keystone service-create \ --name nova \ --type compute \ --description 'OpenStack Compute Service' # OpenStack Compute EC2 API Endpoint keystone service-create \ --name ec2 \ --type ec2 \ --description 'EC2 Service' # Glance Image Service Endpoint keystone service-create \ --name glance \ --type image \ --description 'OpenStack Image Service' # Keystone Identity Service Endpoint keystone service-create \ --name keystone \ --type identity \ --description 'OpenStack Identity Service' # Neutron Networking Service Endpointkeystone service-create \ --name network \ --type network \ --description 'OpenStack Network Service'# Cinder Block Storage Endpoint keystone service-create \ --name volume \ --type volume \ --description 'Volume Service'

2.上述操作完成之后,可以在服务里增加这些服务运行的端点URL。添加服务端点URL时需要用到各个服务的ID,这些ID在上一步命令操作之后会分别被返回输出。它们是配置服务端口URL的命令中的参数。OpenStack身份认证服务可以被配置成在三个URL上接受服务请求:一个面向公众的URL(被终端用户使用),一个面向管理员的URL(被以管理员权限登录的用户使用,可以是一个不同的URL),以及一个面向内部的URL(当这些服务是在公有的URL的防火墙内提供服务时)。

3.对于如下服务,我们将会配置独立的公有、管理员和内部服务URL,为我们的环境提供适当的隔离。实验室环境里的公有端点,将会被指定公共IP,192.168.100.200。内部端点是172.16.0.200。管理员端点也是一个公共IP,192.168.100.200。通过如下命令来完成。# OpenStack Compute Nova APINOVA_SERVICE_ID=$(keystone service-list \ | awk '/\ nova\ / {print $2}')PUBLIC_ENDPOINT=192.168.100.200ADMIN_ENDPOINT=192.168.100.200INT_ENDPOINT=172.16.0.200PUBLIC="http://$PUBLIC_ENDPOINT:8774/v2/\$(tenant_id)s"ADMIN="http://$ADMIN_ENDPOINT:8774/v2/\$(tenant_id)s"INTERNAL="http://$INT_ENDPOINT:8774/v2/\$(tenant_id)s"keystone endpoint-create \ --region RegionOne \ --service_id $NOVA_SERVICE_ID \ --publicurl $PUBLIC \ --adminurl $ADMIN \ --internalurl $INTERNAL

输出如图1-5所示。图1-5

4.继续定义其他服务端点,具体步骤如下。# OpenStack Compute EC2 API EC2_SERVICE_ID=$(keystone service-list \ | awk '/\ ec2\ / {print $2}') PUBLIC="http://$PUBLIC_ENDPOINT:8773/services/Cloud" ADMIN="http://$ADMIN_ENDPOINT:8773/services/Admin"

试读结束[说明:试读内容隐藏了图片]

下载完整电子书

若在网站上没有找合适的书籍,可联系网站客服获取,各类电子版图书资料皆有。

客服微信:xzh432

登入/注册
卧槽~你还有脸回来
没有账号? 忘记密码?