在 OpenStack 环境中使用 Cloud-Init 自动初始化 vSRX 虚拟防火墙实例

从 Junos OS 15.1X49-D100 版和 Junos OS 17.4R1 版开始,云 init 软件包(版本 0.7x)已预安装在 vSRX 虚拟防火墙映像中,以帮助根据指定的用户数据文件简化在 OpenStack 环境中操作的新 vSRX 虚拟防火墙实例的配置。Cloud-init 在 vSRX 虚拟防火墙实例首次启动时执行。

Cloud-init 是一个 OpenStack 软件包,用于在启动时自动初始化云实例。它在 Ubuntu 以及大多数主流 Linux 和 FreeBSD 操作系统中可用。Cloud-init 旨在支持多个不同的云提供商,因此同一虚拟机 (VM) 映像可以直接用于多个虚拟机管理程序和云实例,无需任何修改。VM 实例中的 Cloud-init 支持在启动时(首次启动)运行,并根据指定的用户数据文件初始化 VM 实例。

用户数据文件是元数据服务中的一个特殊密钥,其中包含一个文件,VM 实例中的云感知应用程序可以在首次启动时访问该文件。在这种情况下,您要将经过验证的 Junos OS 配置文件作为活动配置上传到 vSRX 虚拟防火墙实例。此文件使用标准 Junos OS 命令语法来定义配置详细信息,例如 root 密码、管理 IP 地址、默认网关和其他配置语句。

创建 vSRX 虚拟防火墙实例时,您可以将 cloud-init 与经过验证的 Junos OS 配置文件 (juniper.conf) 配合使用,以自动初始化新的 vSRX 虚拟防火墙实例。用户数据文件使用标准 Junos OS 语法定义 vSRX 虚拟防火墙实例的所有配置详细信息。默认 Junos OS 配置将在 vSRX 虚拟防火墙实例启动期间替换为您以用户数据文件的形式提供经过验证的 Junos OS 配置。

注意:

如果使用的版本 早 于 Junos OS 15.1X49-D130 和 Junos OS 18.4R1 版,则用户数据配置文件不能超过 16 KB。如果用户数据文件超过此限制,则必须使用 gzip 压缩文件并使用压缩文件。例如,gzip junos.conf 命令将产生 junos.conf.gz 文件。

从 Junos OS 15.1X49-D130 版和 Junos OS 18.4R1 版开始,如果在 OpenStack 环境中使用配置驱动器数据源,则用户数据配置文件的大小最高可达 64 MB。

配置必须经过验证,并包括 fxp0 接口、登录和身份验证的详细信息。它还必须为 fxp0 上的流量提供默认路由。如果其中任何一个信息丢失或不正确,则实例无法访问,您必须启动新实例。

警告:

确保用户数据配置文件未配置为使用动态主机配置协议 (DHCP) 对接口执行自动安装,以便为 vSRX 虚拟防火墙分配 IP 地址。使用 DHCP 自动安装将导致用户数据配置文件出现“提交失败”。

从 Junos OS 15.1X49-D130 版和 Junos OS 18.4R1 版开始,vSRX 虚拟防火墙中的云 init 功能已得到扩展,支持在 OpenStack 环境中使用配置驱动数据源。配置驱动器使用用户数据属性将经过验证的 Junos OS 配置文件传递到 vSRX 虚拟防火墙实例。用户数据可以是纯文本或 MIME 文件类型 text/纯。配置驱动器通常与计算服务一起使用,并作为标记为 config-2的磁盘分区呈现给实例。配置驱动器的最大大小为 64 MB,必须使用 vfat 或 ISO 9660 文件系统进行格式化。

配置驱动数据源还可以灵活地添加可用于配置的多个文件。典型的用例是添加 Day0 配置文件和许可证文件。在这种情况下,可以使用两种方法将配置驱动数据源与 vSRX 虚拟防火墙实例配合使用:

  • 仅用户数据(Junos OS 配置文件) — 此方法使用用户数据属性将 Junos OS 配置文件传递到每个 vSRX 虚拟防火墙实例。用户数据可以是纯文本或 MIME 文件类型 text/纯。

  • Junos OS 配置文件和许可证文件 — 此方法使用配置驱动器数据源将 Junos OS 配置和许可证文件发送到每个 vSRX 虚拟防火墙实例。

    注意:

    如果要在 vSRX 虚拟防火墙中配置许可证文件,则建议使用 –file 选项(而非 user-data 使用选项)来灵活地配置文件不超过 16 KB 用户数据。

要使用配置驱动器数据源将 Junos OS 配置和许可证文件发送到 vSRX 虚拟防火墙实例,需要以特定的文件夹结构发送这些文件。在此应用程序中,vSRX 虚拟防火墙中配置驱动数据源文件夹结构如下所示:

//OpenStack//latest/junos-config/configuration.txt

//OpenStack//latest/junos-license/license.lic

开始之前:

  • 创建具有 Junos OS 命令语法的配置文件并保存。配置文件可以是纯文本或 MIME 文件类型 text/纯。字符串 #junos-config 必须是 Junos OS 配置之前用户数据配置文件的第一行。

    注意:

    字符串 #junos-config 在用户数据配置文件中为必填项;如果未包含该字符串,则配置不会作为活动配置应用于 vSRX 虚拟防火墙实例。

  • 确定要使用经过验证的 Junos OS 配置文件初始化的 vSRX 虚拟防火墙实例的名称。

  • 确定 vSRX 虚拟防火墙实例的特色,该实例定义了 vSRX 虚拟防火墙实例的计算、内存和存储容量。

  • 从 Junos OS 15.1X49-D130 版和 Junos OS 18.4R1 版开始,如果使用配置驱动器,请确保满足以下条件,以便为 OpenStack 中的配置驱动器启用 Cloud-init 支持:

    • 配置驱动器必须使用或iso9660文件系统格式化vfat。

      注意:

      配置驱动器的默认格式为 ISO 9660 文件系统。要显式指定 ISO 9660/vfat 格式,请将该 config_drive_format=iso9660/vfat 行添加到文件中 nova.conf 。

    • 配置驱动器的文件系统标签 config-2必须为。

    • 文件夹大小不能超过 64 MB。

根据您的 OpenStack 环境,您可以使用 OpenStack 命令行界面(如 nova boot 或 openstack server create)或 OpenStack 仪表板(“Horizon”)启动和初始化 vSRX 虚拟防火墙实例。

使用 OpenStack 命令行界面执行 vSRX 虚拟防火墙实例的自动设置

您可以使用或openstack server create命令启动和管理 vSRX 虚拟防火墙实例nova boot,其中包括使用本地目录中经过验证的 Junos OS 配置用户数据文件来初始化目标 vSRX 虚拟防火墙实例的活动配置。

要从 OpenStack 命令行客户端启动 vSRX 虚拟防火墙实例的自动设置:

  1. 如果尚未创建,请使用 Junos OS 命令语法创建配置文件并保存文件。配置文件可以是纯文本或 MIME 文件类型 text/纯。

    用户数据配置文件必须包含完整的 vSRX 虚拟防火墙配置,用作每个 vSRX 虚拟防火墙实例上的活动配置,并且字符串 #junos-config 必须是 Junos OS 配置之前用户数据配置文件的第一行。

    注意:

    字符串 #junos-config 在用户数据配置文件中为必填项;如果未包含该字符串,则配置不会作为活动配置应用于 vSRX 虚拟防火墙实例。

  2. 将 Junos OS 配置文件复制到可从中检索的可访问位置,以启动 vSRX 虚拟防火墙实例。
  3. 根据您的 OpenStack 环境,使用 nova boot 或 openstack server create 命令启动 vSRX 虚拟防火墙实例,将经过验证的 Junos OS 配置文件作为指定的用户数据。
    注意:

    您还可以在 nova boot 编排服务(如 HEAT)中使用等效项。

    例如:

    • nova boot -user-data </path/to/vsrx_configuration.txt> --image vSRX_image --flavor vSRX_flavor_instance

    • openstack server create -user-data </path/to/vsrx_configuration.txt> --image vSRX_image --flavor vSRX_flavor_instance

      其中:

      -user-data </path/to/vsrx_configuration.txt> 指定 Junos OS 配置文件的位置。用户数据配置文件的大小限制为约 16,384 字节。

      --image vSRX_image 标识唯一 vSRX 虚拟防火墙映像的名称。

      --flavor vSRX_flavor_instance 标识 vSRX 虚拟防火墙功能(ID 或名称)。

    从 Junos OS 15.1X49-D130 版和 Junos OS 18.4R1 版开始,要对 OpenStack 计算环境中的特定请求使用配置驱动器,请将参数包含在 -config-drive true or openstack server create 命令中nova boot。

    注意:

    通过将 OpenStack 计算服务配置为始终创建配置驱动器,可以在所有实例上自动启用配置驱动器。为此,请在文件中 force_config_drive=True 指定选项 nova.conf 。

    例如,要使用用户数据属性将 Junos OS 配置传递到每个 vSRX 虚拟防火墙实例,

    nova boot -config-drive true -flavor vSRX_flavor_instance -image vSRX_image -user-data </path/to/vsrx_configuration.txt>

    其中:

    -user-data </path/to/vsrx_configuration.txt> 指定 Junos OS 配置文件的位置。用户数据配置文件的大小限制为约 64 MB。

    -image vSRX_image 标识唯一 vSRX 虚拟防火墙映像的名称。

    -flavor vSRX_flavor_instance 标识 vSRX 虚拟防火墙功能(ID 或名称)。

    例如,要指定包含多个文件的配置驱动器(Junos OS 配置文件和许可证文件):

    nova boot -config-drive true -flavor vSRX_flavor_instance -image vSRX_image [-file /config/junos-config/configuration.txt=/path/to/file] [-file /junos-license/license.lic=path/to/license]

    其中:

    [-file /config/junos-config/configuration.txt=/path/to/file] 指定 Junos OS 配置文件的位置。

    [-file /config/junos-license/license.lic=path/to/license] 指定 Junos OS 配置文件的位置。

    -image vSRX_image 标识唯一 vSRX 虚拟防火墙映像的名称。

    -flavor vSRX_flavor_instance 标识 vSRX 虚拟防火墙功能(ID 或名称)。

  4. 启动或重新启动 vSRX 虚拟防火墙实例。在初始启动序列中,vSRX 虚拟防火墙实例会处理云 init 请求。
    注意:

    vSRX 虚拟防火墙实例的启动时间可能会随着 Cloud-init 软件包的使用而增加。在初始启动顺序中,这一额外时间是由于 Cloud-init 软件包执行的操作。在此过程中,cloud-init 软件包会停止启动顺序,并查找 cloud.cfg 中标识的每个数据源中的配置数据。查找和填充云数据所需的时间与定义的数据源数量成正比。如果没有数据源,则查找过程会持续进行,直至每个数据源达到预定义的超时 30 秒。

  5. 恢复初始启动序列时,用户数据文件将替换 vSRX 虚拟防火墙实例上加载的原始出厂默认 Junos OS 配置。如果提交成功,将永久替换出厂默认配置。如果配置不受支持或无法应用于 vSRX 虚拟防火墙实例,vSRX 虚拟防火墙将使用默认 Junos OS 配置启动。

从 OpenStack 仪表板 (Horizon) 执行 vSRX 虚拟防火墙实例的自动设置

Horizon 是 OpenStack 仪表板的规范实施。它为 OpenStack 服务(包括 Nova、Swift、Keystone 等)提供了基于 Web 的用户界面。您可以从 OpenStack 仪表板启动和管理 vSRX 虚拟防火墙实例,其中包括使用本地目录中经过验证的 Junos OS 配置用户数据文件来初始化目标 vSRX 虚拟防火墙实例的活动配置。

要从 OpenStack 仪表板启动 vSRX 虚拟防火墙实例的自动设置:

  1. 如果尚未创建,请使用 Junos OS 命令语法创建配置文件并保存文件。配置文件可以是纯文本或 MIME 文件类型 text/纯。

    用户数据配置文件必须包含完整的 vSRX 虚拟防火墙配置,用作每个 vSRX 虚拟防火墙实例上的活动配置,并且字符串 #junos-config 必须是 Junos OS 配置之前用户数据配置文件的第一行。

    注意:

    字符串 #junos-config 在用户数据配置文件中为必填项;如果未包含该字符串,则配置不会作为活动配置应用于 vSRX 虚拟防火墙实例。

  2. 将 Junos OS 配置文件复制到可从中检索的可访问位置,以启动 vSRX 虚拟防火墙实例。
  3. 使用登录凭据登录 OpenStack 仪表板,然后从左上角的下拉菜单中选择相应的项目。
  4. 在项目选项卡中,单击 计算 选项卡并选择 实例。仪表板会显示各种实例及其映像名称、专用和浮动 IP 地址、大小、状态、可用性区域、任务、电源状态等。
  5. 单击 “启动实例”。此时将显示“启动实例”对话框。
  6. 从“详细信息”选项卡(请参阅 图 1)中,输入 vSRX 虚拟防火墙虚拟机的实例名称和关联的可用性区域(例如 Nova),然后单击“ 下一步”。建议将此名称与分配给 vSRX 虚拟防火墙虚拟机的主机名保持相同。
    图 1:“启动实例详细信息”选项卡 Launch Instance Details Tab
  7. 从“源”选项卡(请参阅 图 2)中,从“可用”列表中选择一个 vSRX 虚拟防火墙虚拟机映像源代码,然后单击“ +(加号)”。所选 vSRX 虚拟防火墙映像显示在“已分配”下。单击 “下一步”。
    图 2:启动实例源选项卡 Launch Instance Source Tab
  8. 从 Flavor 选项卡(请参阅 图 3)中,从可用列表中选择具有特定计算、内存和存储容量的 vSRX 虚拟防火墙实例,然后单击 +(加号)。所选的 vSRX 虚拟防火墙功能显示在“已分配”下。单击 “下一步”。
    图 3:启动实例风格选项卡 Launch Instance Flavor Tab
  9. 从“网络”选项卡(请参阅 图 4)中,从可用列表中选择 vSRX 虚拟防火墙实例的特定网络,然后单击 +(加号)。所选网络显示在“已分配”下。单击 “下一步”。
    注意:

    请勿更新“启动实例”对话框的“网络端口”、“安全组”或“密钥对”选项卡中的任何参数。

    图 4:启动实例网络选项卡 Launch Instance Networks Tab
  10. 从“配置”选项卡(请参阅 图 5)中,单击 浏览 ,并从本地目录中导航至要用作用户数据文件的经过验证的 Junos OS 配置文件的位置。单击 “下一步”。
    图 5:“启动实例配置”选项卡 Launch Instance Configuration Tab
  11. 确认加载的 Junos OS 配置包含 #junos-config 用户数据配置文件第一行中的字符串(请参阅 图 6),然后单击“ 下一步”。
    注意:

    请勿更新“启动实例”对话框的“元数据”选项卡中的任何参数。

    图 6:使用加载的 Junos OS 配置启动实例配置 Launch Instance Configuration Tab with Loaded Junos OS Configuration选项卡
  12. 单击 “启动实例”。在初始启动序列中,vSRX 虚拟防火墙实例会处理云 init 请求。
    注意:

    vSRX 虚拟防火墙实例的启动时间可能会随着 Cloud-init 软件包的使用而增加。在初始启动顺序中,这一额外时间是由于 Cloud-init 软件包执行的操作。在此过程中,cloud-init 软件包会停止启动顺序,并查找 cloud.cfg 中标识的每个数据源中的配置数据。查找和填充云数据所需的时间与定义的数据源数量成正比。如果没有数据源,则查找过程会持续进行,直至每个数据源达到预定义的超时 30 秒。

  13. 恢复初始启动序列时,用户数据文件将替换 vSRX 虚拟防火墙实例上加载的原始出厂默认 Junos OS 配置。如果提交成功,将永久替换出厂默认配置。如果配置不受支持或无法应用于 vSRX 虚拟防火墙实例,vSRX 虚拟防火墙将使用默认 Junos OS 配置启动。
版本历史记录表
释放
描述
15.1X49-D130
从 Junos OS 15.1X49-D130 版和 Junos OS 18.4R1 版开始,vSRX 虚拟防火墙中的云 init 功能已得到扩展,支持在 OpenStack 环境中使用配置驱动数据源。配置驱动器使用用户数据属性将经过验证的 Junos OS 配置文件传递到 vSRX 虚拟防火墙实例。
15.1X49-D100
从 Junos OS 15.1X49-D100 版和 Junos OS 17.4R1 版开始,云 init 软件包(版本 0.7x)已预安装在 vSRX 虚拟防火墙映像中,以帮助根据指定的用户数据文件简化在 OpenStack 环境中操作的新 vSRX 虚拟防火墙实例的配置。Cloud-init 在 vSRX 虚拟防火墙实例首次启动时执行。