在 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 - junos-license - License_file_name.lic - License_file_name.lic
//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 虚拟防火墙实例的自动设置:
另请参阅
从 OpenStack 仪表板 (Horizon) 执行 vSRX 虚拟防火墙实例的自动设置
Horizon 是 OpenStack 仪表板的规范实施。它为 OpenStack 服务(包括 Nova、Swift、Keystone 等)提供了基于 Web 的用户界面。您可以从 OpenStack 仪表板启动和管理 vSRX 虚拟防火墙实例,其中包括使用本地目录中经过验证的 Junos OS 配置用户数据文件来初始化目标 vSRX 虚拟防火墙实例的活动配置。
要从 OpenStack 仪表板启动 vSRX 虚拟防火墙实例的自动设置: