独立部署指南
创建用于测试和概念验证环境的一体化 OpenStack 云
摘要
第 1 章 体式 Red Hat OpenStack Platform 安装 复制链接链接已复制到粘贴板!
all-in-one 安装方法使用 TripleO 通过简单的单节点环境部署 Red Hat OpenStack Platform 和相关服务。使用此安装在具有有限或无后续操作的单一节点上启用概念验证、开发和测试部署。
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
1.1. 先决条件 复制链接链接已复制到粘贴板!
- 您的系统必须安装有 Red Hat Enterprise Linux 9.0 基础操作系统。
- 您的系统必须有两个网络接口,以便在 TripleO 配置第二个接口时不会破坏互联网连接。
- 您的系统必须具有 4 个 CPU、8GB RAM 和 30GB 磁盘空间。
网络配置示例
-
分配给默认网络 192.168.122.0/24
的接口eth0。使用此接口进行常规连接。这个接口必须可以访问互联网。 -
分配给
management网络 192.168.25.0/24 的接口eth1。tripleo 将此接口用于 OpenStack 服务。
第 2 章 站式 Red Hat OpenStack Platform 环境概述 复制链接链接已复制到粘贴板!
本节包含有关安装、配置和部署简单单节点 Red Hat OpenStack Platform 环境的信息。在这种情况下,没有预先存在的 undercloud 依赖项。相反,安装程序会运行一个内联 heat-all 实例来引导部署过程,并将所选 heat 模板转换为您可以在本地机器上执行的 Ansible playbook。
使用 all-in-one 安装进行基本测试和开发。体式安装是 Red Hat OpenStack Platform 的良好起点和测试环境,但如果要执行复杂的操作,则必须部署生产级扩展云。
工作流
要安装、配置和部署简单单节点 Red Hat OpenStack Platform 环境,请完成以下基本工作流中的任务:
- 准备您的环境。
- 为 all-in-one 环境安装软件包。
- 配置一体化环境。
- 部署一体化环境。
all-in-one 安装的好处
- 可组合的服务。
- 预定义的角色。
- 精简的单节点环境。
- 您可以使用 playbook 在容器中运行小空间安装程序并生成 Ansible playbook。
配置
如果要试验配置角色和服务,请参阅 第 8 章 使用自定义角色和服务 和 第 7.1 节 “核心 heat 模板”。
可组合角色
您可以创建自定义可组合角色,并为每个角色部署特定的服务。
Ansible
此安装通过部署命令自动应用 Ansible playbook。您还可以指示部署命令输出您可以在其他环境中使用的 Ansible playbook。例如,您可以在 all-in-one 安装中完成测试,然后将验证的 Ansible playbook 应用到其他环境。
第 3 章 安装一体化 Red Hat OpenStack Platform 环境 复制链接链接已复制到粘贴板!
在开始配置、部署和测试一体化环境前,您必须配置非 root 用户并安装必要的软件包和依赖项:
在 all-in-one 主机上创建一个非 root 用户:
useradd stack
[root@all-in-one]# useradd stackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
stack用户的密码:passwd stack
[root@all-in-one]# passwd stackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
sudo用作stack用户时禁用密码要求:echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack chmod 0440 /etc/sudoers.d/stack
[root@all-in-one]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack [root@all-in-one]# chmod 0440 /etc/sudoers.d/stackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以非 root 用户身份登录 all-in-one 主机:
ssh stack@<all-in-one>
$ ssh stack@<all-in-one>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Red Hat Subscription Manager 注册机器。在提示符处输入您的红帽订阅凭证:
sudo subscription-manager register
[stack@all-in-one]$ sudo subscription-manager registerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将您的红帽订阅附加到授权服务器:
sudo subscription-manager attach --auto
[stack@all-in-one]$ sudo subscription-manager attach --autoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意--auto选项可能无法订阅正确的订阅池。确保您订阅了正确的池,否则您可能无法启用此安装所需的所有软件仓库。使用subscription-manager list --all --available命令来识别正确的池 ID。将 undercloud 锁定到 Red Hat Enterprise Linux 9.0:
sudo subscription-manager release --set=9.0
$ sudo subscription-manager release --set=9.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来安装
dnf-utils,禁用所有默认软件仓库,然后启用所需的软件仓库:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意all-in-one 环境是 Red Hat OpenStack Platform 17.0 中的技术预览功能。
更新基础操作系统并重启系统:
sudo dnf update sudo reboot
[stack@all-in-one]$ sudo dnf update [stack@all-in-one]$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 重新引导后重新登录主机。
安装 TripleO 命令行界面(CLI):
sudo dnf install -y python3-tripleoclient
[stack@all-in-one]$ sudo dnf install -y python3-tripleoclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 配置一体化 Red Hat OpenStack Platform 环境 复制链接链接已复制到粘贴板!
要创建一体化 Red Hat OpenStack Platform 环境,请使用 openstack tripleo deploy 命令包括四个环境文件。您必须创建两个配置文件,如下所示:
- $HOME/containers-prepare-parameters.yaml
- $HOME/standalone_parameters.yaml
更多信息请参阅 第 4.1 节 “为 all-in-one Red Hat OpenStack Platform (RHOSP)环境生成 YAML 文件”。
在 /usr/share/openstack-tripleo-heat-templates/ 目录中为您提供了两个环境文件:
- /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml
- /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml
您可以自定义用于开发或测试的一体化环境。在主目录中新创建的 yaml 文件中的 standalone-tripleo.yaml 或 Standalone.yaml 配置文件中包括参数的修改值。将此文件包含在 openstack tripleo deploy 命令中。
要生成 containers-prepare-parameters.yaml 和 standalone_parameters.yaml 文件,请完成以下步骤:
生成包含默认
ContainerImagePrepare参数的containers-prepare-parameters.yaml文件:openstack tripleo container image prepare default --output-env-file $HOME/containers-prepare-parameters.yaml
[stack@all-in-one]$ openstack tripleo container image prepare default --output-env-file $HOME/containers-prepare-parameters.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
containers-prepare-parameters.yaml文件,在ContainerImageRegistryCredentials参数中包含您的红帽凭证,以便部署过程可以通过 registry.redhat.io 进行身份验证,并成功拉取容器镜像:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意为了避免以纯文本形式输入密码,请创建一个 Red Hat Service Account。如需更多信息,请参阅 Red Hat Container Registry 身份验证 :
在
containers-prepare-parameters.yaml中将ContainerImageRegistryLogin参数设置为true:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要使用 all-in-one 主机作为容器 registry,请在
openstack tripleo container image prepare命令中省略此参数和 include--local-push-destination。如需更多信息,请参阅 准备容器镜像。创建
$HOME/standalone_parameters.yaml文件,并为 all-in-one RHOSP 环境配置基本参数,包括网络配置和一些部署选项。在本例中,网络接口eth1是用于部署 RHOSP 的管理网络上的接口。eth1具有 IP 地址 192.168.25.2:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果只使用一个网络接口,则必须定义默认路由:
ControlPlaneStaticRoutes: - ip_netmask: 0.0.0.0/0 next_hop: $GATEWAY default: trueControlPlaneStaticRoutes: - ip_netmask: 0.0.0.0/0 next_hop: $GATEWAY default: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您有内部时间源,或者您的环境阻止访问外部时间源,请使用
NtpServer参数定义您要使用的时间源:parameter_defaults: NtpServer: - clock.example.comparameter_defaults: NtpServer: - clock.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要在虚拟环境中使用 all-in-one RHOSP 安装,则必须使用
NovaComputeLibvirtType参数定义虚拟化类型:parameter_defaults: NovaComputeLibvirtType: qemu
parameter_defaults: NovaComputeLibvirtType: qemuCopy to Clipboard Copied! Toggle word wrap Toggle overflow 负载均衡服务(octavia)不需要配置 SSH。但是,如果您想要 SSH 访问负载均衡实例(amphorae),请添加
OctaviaAmphoraSshKeyFile参数,其中包含到 stack 用户的公钥文件的绝对路径:OctaviaAmphoraSshKeyFile: "/home/stack/.ssh/id_rsa.pub"
第 5 章 部署一体化 Red Hat OpenStack Platform 环境 复制链接链接已复制到粘贴板!
要部署您的 all-in-one 环境,请完成以下步骤:
使用您的红帽凭证登录到 registry.redhat.io:
sudo podman login registry.redhat.io
[stack@all-in-one]$ sudo podman login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 导出部署命令使用的环境变量。在本例中,使用具有 IP 地址 192.168.25.2 和 192.168.25.3 的
eth1接口部署 all-in-one 环境:export IP=192.168.25.2 export VIP=192.168.25.3 export NETMASK=24 export INTERFACE=eth1
[stack@all-in-one]$ export IP=192.168.25.2 [stack@all-in-one]$ export VIP=192.168.25.3 [stack@all-in-one]$ export NETMASK=24 [stack@all-in-one]$ export INTERFACE=eth1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置主机名。如果节点使用 localhost.localdomain,部署将失败。
hostnamectl set-hostname all-in-one.example.net hostnamectl set-hostname all-in-one.example.net --transient
[stack@all-in-one]$ hostnamectl set-hostname all-in-one.example.net [stack@all-in-one]$ hostnamectl set-hostname all-in-one.example.net --transientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行部署命令。确保包含与您的环境相关的所有
.yaml文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
部署成功后,您可以使用 /home/$USER/.config/openstack 目录中的 clouds.yaml 配置文件来查询并验证 OpenStack 服务:
export OS_CLOUD=standalone openstack endpoint list
[stack@all-in-one]$ export OS_CLOUD=standalone
[stack@all-in-one]$ openstack endpoint list
要访问仪表板,请访问 http://192.168.25.2/dashboard,并使用 $HOME/config/openstack/clouds.yaml 文件中的默认用户名 admin 和密码 :
cat $HOME/.config/openstack/clouds.yaml | grep password:
[stack@all-in-one]$ cat $HOME/.config/openstack/clouds.yaml | grep password:
部署命令会自动将 Ansible playbook 应用到环境。但是,您可以修改部署命令来生成 Ansible playbook,而不将它们应用到部署,稍后运行 playbook。
在 deploy 命令中包含 --output-only 选项,以生成 standalone-ansible-XXXXX 目录。此目录包含一组可以在其他主机上运行的 Ansible playbook。
要生成 Ansible playbook 目录,请使用仅 option
-output-only来运行 deploy 命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要运行 Ansible playbook,请运行
ansible-playbook命令,并包含inventory.yaml文件和deploy_steps_playbook.yaml文件:cd standalone-ansible-XXXXX sudo ansible-playbook -i inventory.yaml deploy_steps_playbook.yaml
[stack@all-in-one]$ cd standalone-ansible-XXXXX [stack@all-in-one]$ sudo ansible-playbook -i inventory.yaml deploy_steps_playbook.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 7 章 使用 heat 模板 复制链接链接已复制到粘贴板!
本指南中的自定义配置使用 heat 模板和环境文件来定义 overcloud 的某些方面。本章包含 Red Hat OpenStack Platform 中 heat 模板的结构的基本介绍。模板的目的是定义和创建堆栈,这是 heat 创建的资源的集合,以及资源的配置。资源是 OpenStack 中的对象,可以包含计算资源、网络配置、安全组、扩展规则和自定义资源。
heat 模板的结构有三个主要部分:
参数
参数是传递给 heat 的设置。使用这些参数定义和自定义 default 和 non-default 值。在模板的 parameters 部分中定义这些参数。
Resources
资源是您要创建和配置的特定对象,作为堆栈的一部分。OpenStack 包含一组跨越所有组件的核心资源。在模板的 resources 部分中定义资源。
输出
这些是在堆栈创建后从 heat 传递的值。您可以通过 heat API 或客户端工具访问这些值。在模板的 output 部分中定义这些值。
当 heat 处理模板时,它会为模板创建一个堆栈,并为资源模板创建一组子堆栈。这种堆栈层次结构与您与模板定义的主堆栈分离。您可以使用以下命令查看堆栈层次结构:
heat stack-list --show-nested
$ heat stack-list --show-nested
7.1. 核心 heat 模板 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform 包含 overcloud 的核心 heat 模板集合。您可以在 /usr/share/openstack-tripleo-heat-templates 目录中找到此集合。
此集合中有许多 heat 模板和环境文件。本节包含有关可用于自定义部署的主文件和目录的信息。
overcloud.j2.yaml
此文件是用于创建 overcloud 环境的主要模板文件。此文件使用 Jinja2 语法,并迭代模板中的某些部分来创建自定义角色。Jinja2 格式在 overcloud 部署过程中呈现为 YAML。
overcloud-resource-registry-puppet.j2.yaml
此文件是用于创建 overcloud 环境的主要环境文件。此文件包含 overcloud 镜像上 Puppet 模块的一组配置。在 director 将 overcloud 镜像写入每个节点后,heat 会使用此环境文件中注册的资源启动每个节点的 Puppet 配置。此文件使用 Jinja2 语法,并迭代模板中的某些部分来创建自定义角色。Jinja2 格式在 overcloud 部署过程中呈现为 YAML。
roles_data.yaml
此文件包含 overcloud 中角色的定义,并将服务映射到每个角色。
network_data.yaml
此文件包含 overcloud 中网络的定义及其属性,包括子网、分配池和 VIP 状态。默认 network_data.yaml 文件只包含默认网络: External, Internal Api, Storage, Storage Management, Tenant, 和 Management。您可以创建自定义 network_data.yaml 文件,并使用 -n 选项将其包含在 openstack overcloud deploy 命令中。
plan-environment.yaml
此文件包含 overcloud 计划的元数据的定义,包括计划名称、您要使用的主模板以及您要应用到 overcloud 的环境文件。
capabilities-map.yaml
此文件包含 overcloud 计划的环境文件映射。使用此文件来描述和启用 director Web UI 中的环境文件。如果您在 environment 目录中包含自定义环境文件,但没有在 capabilities-map.yaml 文件中定义这些文件,您可以在 web UI 的 Overall Settings 页面的 Other 子选项卡中找到这些环境文件。
environments
此目录包含可用于创建 overcloud 的额外 heat 环境文件。这些环境文件可为 Red Hat OpenStack Platform 环境启用额外的功能。例如,您可以使用 cinder-netapp-config.yaml 环境文件为块存储服务(cinder)启用 NetApp 后端存储。如果您在 environment 目录中包含自定义环境文件,但没有在 capabilities-map.yaml 文件中定义这些文件,您可以在 web UI 的 Overall Settings 页面的 Other 子选项卡中找到这些环境文件。
network
此目录包含一组可用于创建隔离的网络和端口的 heat 模板。
puppet
此目录包含 puppet 模板。overcloud-resource-registry-puppet.j2.yaml 环境文件使用 puppet 目录中的文件来驱动各个节点上 Puppet 配置的应用程序。
puppet/services
此目录包含可组合服务架构中所有服务的 heat 模板。
extraconfig
此目录包含可用于启用额外功能的模板。例如,您可以使用 extraconfig/pre_deploy/rhel-registration 目录将节点注册到 Red Hat Content Delivery 网络,或使用自己的 Red Hat Satellite 服务器注册节点。
第 8 章 使用自定义角色和服务 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform 通常由预定义角色中的节点组成,如 Controller 角色、Compute 角色和不同的存储角色类型的节点。这些默认角色各自包含一组您在核心 heat 模板集合中定义的服务。但是,一个一体化的 Red Hat OpenStack Platform 安装在一个包含所有 OpenStack 服务的单个节点上运行。/usr/share/openstack-tripleo-heat-templates/roles 目录中的 Standalone.yaml 角色文件是包含 all-in-one 安装中的所有服务的配置文件。您可以复制并修改 Standalone.yaml 角色文件,以启用和禁用安装中的服务。
Standalone.yaml 文件包含角色 Standalone 中的服务列表。使用以下示例了解此文件的语法:
在部署命令中包含此角色文件,以使用 Standalone 角色配置堆栈,其中包含您在角色文件的 ServicesDefault: 部分中包含的服务:
sudo openstack tripleo deploy --templates -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml
[stack@all-in-one]$ sudo openstack tripleo deploy --templates -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml
但是,在生产环境的多节点 Red Hat OpenStack Platform 环境中,您可以使用一个角色来分配包含 OpenStack 服务的一部分的角色,而不是在单个节点上包括所有服务。例如,默认的 Controller 角色包括管理、网络和高可用性服务,默认的 Compute 角色则包括计算服务。多节点环境中的默认角色文件是 /usr/share/openstack-tripleo-heat-templates/roles_data.yaml 文件。此文件定义以下角色类型:
- Controller
- Compute
- BlockStorage
- ObjectStorage
- CephStorage
使用以下示例了解多节点环境中的角色语法:
每次运行部署命令时,都必须包含角色文件。您可以使用部署命令中的 -r 参数覆盖此文件并使用自定义角色文件:
sudo openstack tripleo deploy --templates -r ~/templates/roles_data-custom.yaml
[stack@all-in-one]$ sudo openstack tripleo deploy --templates -r ~/templates/roles_data-custom.yaml
8.1. 在一体化 Red Hat OpenStack Platform 环境中启用和禁用服务 复制链接链接已复制到粘贴板!
/usr/share/openstack-tripleo-heat-templates/roles 目录中的 Standalone.yaml 角色文件是包含 all-in-one 安装中的所有服务的配置文件。您可以启用或禁用单个服务。
流程
要禁用服务,请创建新环境文件,并为您要禁用的服务包含值
OS::Heat::None:- OS::TripleO::Services::<SERVICE>: OS::Heat::None
- OS::TripleO::Services::<SERVICE>: OS::Heat::NoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在部署命令中包含此环境文件。
要启用服务,请创建新环境文件并从您要启用的服务中删除值
OS::Heat::None:- OS::TripleO::Services::<SERVICE>:
- OS::TripleO::Services::<SERVICE>:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在部署命令中包含此环境文件。
第 9 章 例子 复制链接链接已复制到粘贴板!
使用以下示例了解如何在部署后启动具有各种网络配置的计算实例。
9.1. 示例 1:在项目和提供商网络上使用一个 NIC 启动实例 复制链接链接已复制到粘贴板!
在部署一体 Red Hat OpenStack Platform 环境后,了解如何使用私有项目网络和提供商网络启动实例。这个示例基于单个 NIC 配置,且至少需要三个 IP 地址。
先决条件
要成功完成此示例,您必须在您的环境中提供以下 IP 地址:
- OpenStack 服务的一个 IP 地址。
- 虚拟路由器一个 IP 地址,用于提供与项目网络的连接。本例中会自动分配此 IP 地址。
- 提供商网络上至少有一个浮动 IP 地址。
流程
创建配置帮助程序变量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建基本类别:
openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
$ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tinyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 下载 CirrOS 并创建 OpenStack 镜像:
wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
$ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.imgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 SSH:
ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub default
$ ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem $ openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建简单的网络安全组:
openstack security group create basic
$ openstack security group create basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置新网络安全组:
启用 SSH:
openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
$ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 ping:
openstack security group rule create --protocol icmp basic
$ openstack security group rule create --protocol icmp basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 DNS:
openstack security group rule create --protocol udp --dst-port 53:53 basic
$ openstack security group rule create --protocol udp --dst-port 53:53 basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建 Neutron 网络:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建虚拟路由器:
NOTE: In this case an IP will be automatically assigned from the allocation pool for the subnet. openstack router create vrouter openstack router set vrouter --external-gateway public openstack router add subnet vrouter private-net
# NOTE: In this case an IP will be automatically assigned # from the allocation pool for the subnet. $ openstack router create vrouter $ openstack router set vrouter --external-gateway public $ openstack router add subnet vrouter private-netCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个浮动 IP:
openstack floating ip create public
$ openstack floating ip create publicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动实例:
openstack server create --flavor tiny --image cirros --key-name default --network private --security-group basic myserver
$ openstack server create --flavor tiny --image cirros --key-name default --network private --security-group basic myserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 分配浮动 IP:
openstack server add floating ip myserver <FLOATING_IP>
$ openstack server add floating ip myserver <FLOATING_IP>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
FLOATING_IP替换为您在上一步中创建的浮动 IP 地址。测试 SSH:
ssh cirros@<FLOATING_IP>
ssh cirros@<FLOATING_IP>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
FLOATING_IP替换为您在上一步中创建的浮动 IP 地址。
网络架构
9.2. 示例 2:在提供商网络中使用一个 NIC 启动实例 复制链接链接已复制到粘贴板!
在部署 all-in-one Red Hat OpenStack Platform 环境后,使用本示例了解如何与提供商网络启动实例。这个示例基于单个 NIC 配置,且至少需要 4 个 IP 地址。
先决条件
要成功完成此示例,您必须在您的环境中提供以下 IP 地址:
- OpenStack 服务的一个 IP 地址。
- 虚拟路由器一个 IP 地址,用于提供与项目网络的连接。本例中会自动分配此 IP 地址。
- 提供商网络中的一个 DHCP IP 地址。
- 提供商网络上至少有一个浮动 IP 地址。
流程
创建配置帮助程序变量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建基本类别:
openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
$ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tinyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 下载 CirrOS 并创建 OpenStack 镜像:
wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
$ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.imgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 SSH:
ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub default
$ ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem $ openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建简单的网络安全组:
openstack security group create basic
$ openstack security group create basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置新网络安全组:
启用 SSH:
openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
$ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 ping:
openstack security group rule create --protocol icmp basic
$ openstack security group rule create --protocol icmp basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建 Neutron 网络:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动实例:
openstack server create --flavor tiny --image cirros --key-name default --network public --security-group basic myserver
$ openstack server create --flavor tiny --image cirros --key-name default --network public --security-group basic myserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 测试 SSH:
ssh cirros@<VM_IP>
ssh cirros@<VM_IP>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
VM_IP替换为您在上一步中创建的虚拟机地址。
网络架构
9.3. 示例 3:在项目和提供商网络上启动有两个 NIC 的实例 复制链接链接已复制到粘贴板!
在部署一体 Red Hat OpenStack Platform 环境后,了解如何使用私有项目网络和提供商网络启动实例。这个示例基于双 NIC 配置,且在提供商网络中至少需要 4 个 IP 地址。
先决条件
- 提供商网络中的一个网关 IP 地址。
- OpenStack 端点的一个 IP 地址。
- 虚拟路由器一个 IP 地址,用于提供与项目网络的连接。本例中会自动分配此 IP 地址。
- 提供商网络上至少有一个浮动 IP 地址。
流程
创建配置帮助程序变量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建基本类别:
openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
$ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tinyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 下载 CirrOS 并创建 OpenStack 镜像:
wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
$ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.imgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 SSH:
ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub default
$ ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem $ openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建简单的网络安全组:
openstack security group create basic
$ openstack security group create basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置新网络安全组:
启用 SSH:
openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
$ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 ping:
openstack security group rule create --protocol icmp basic
$ openstack security group rule create --protocol icmp basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 DNS:
openstack security group rule create --protocol udp --dst-port 53:53 basic
$ openstack security group rule create --protocol udp --dst-port 53:53 basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建 Neutron 网络:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建虚拟路由器:
NOTE: In this case an IP will be automatically assigned from the allocation pool for the subnet. openstack router create vrouter openstack router set vrouter --external-gateway public openstack router add subnet vrouter private-net
# NOTE: In this case an IP will be automatically assigned # from the allocation pool for the subnet. $ openstack router create vrouter $ openstack router set vrouter --external-gateway public $ openstack router add subnet vrouter private-netCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个浮动 IP:
openstack floating ip create public
$ openstack floating ip create publicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动实例:
openstack server create --flavor tiny --image cirros --key-name default --network private --security-group basic myserver
$ openstack server create --flavor tiny --image cirros --key-name default --network private --security-group basic myserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 分配浮动 IP:
openstack server add floating ip myserver <FLOATING_IP>
$ openstack server add floating ip myserver <FLOATING_IP>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
FLOATING_IP替换为您在上一步中创建的浮动 IP 地址。测试 SSH:
ssh cirros@<FLOATING_IP>
ssh cirros@<FLOATING_IP>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
FLOATING_IP替换为您在上一步中创建的浮动 IP 地址。
网络架构