本节介绍如何使用 cloud-init 软件包来处理实例的早期初始化。

关于 cloud-init

cloud-init 是一个 Linux 软件包,负责处理实例的早期初始化。 如果 cloud-init 在发行版中可用,则它允许在安装实例后直接配置实例的许多常用参数。这会创建一个完全正常运行的实例,该实例基于一系列输入进行配置。

可以通过用户数据配置 cloud-init 的行为。用户数据可在实例启动时由用户提供。通常,可以通过连接 cloud-init 将在首次引导时查找的 ISO 格式的辅助磁盘来完成此操作。此磁盘中包含将在首次引导时应用的所有早期配置数据。

SD-WAN Orchestrator 支持 cloud-init,并且可以将所有基本配置打包到一个 ISO 映像中。

创建 cloud-init 元数据文件

最终安装配置选项通过一对 cloud-init 配置文件进行设置。第一个安装配置文件中包含元数据。使用文本编辑器创建该文件,并将其标记为 meta-data。该文件提供了相应的信息以标识要安装的 SD-WAN Orchestrator 实例。instance-id 可以是任何标识名称,local-hostname 应是符合站点标准的主机名,例如:

instance-id: vco01
local-hostname: vco-01

此外,您还可以指定网络接口信息(例如,如果未通过 DHCP 配置网络):

instance-id: vco01
local-hostname: vco-01
network-interfaces: |
  auto eth0
  iface eth0 inet static
  address 10.0.1.2
  network 10.0.1.0
  netmask 255.255.255.0
  broadcast 10.0.1.255
  gateway 10.0.1.1

创建 cloud-init 用户数据文件

第二个安装配置选项文件是用户数据文件。此文件提供有关系统上的用户的信息。可使用文本编辑器创建此文件,并将其命名为 user-data。将使用该文件以启用对 SD-WAN Orchestrator 安装的访问。  以下是 user-data 文件内容的示例:

#cloud-config 
            password: Velocloud123 
            chpasswd: {expire: False} 
            ssh_pwauth: True 
            ssh_authorized_keys:
              - ssh-rsa AAA...SDvz user1@yourdomain.com
              - ssh-rsa AAB...QTuo user2@yourdomain.com
            vco:
              super_users:
                list: |
                  user1@yourdomain.com:password1
                remove_default_users: True
              system_properties:
                 list: |
                    mail.smtp.port:34
                    mail.smtp.host:smtp.yourdomain.com
                    service.maxmind.enable:True
                    service.maxmind.license:todo_license
                    service.maxmind.userid:todo_user
                    service.twilio.phoneNumber:222123123
                    network.public.address:222123123
            write_files:
               - path: /etc/nginx/velocloud/ssl/server.crt
                 permissions: '0644'
                 content: "-----BEGIN CERTIFICATE-----\nMI….ow==\n-----END CERTIFICATE-----\n"
               - path: /etc/nginx/velocloud/ssl/server.key
                 permissions: '0600'
                 content: "-----BEGIN RSA PRIVATE KEY-----\nMII...D/JQ==\n-----END RSA PRIVATE KEY-----\n" 
               - path: /etc/nginx/velocloud/ssl/velocloudCA.crt
user-data 文件使默认用户 vcadmin 能够使用密码或 SSH 密钥登录。这两种方法都可以使用,但不是必需的。密码登录由 passwordchpasswd 行启用。
  • password 中包含供 vcadmin 用户使用的纯文本密码。
  • chpasswd 行可关闭密码过期,以防止首次登录时立即提示更改密码。这是可选的。
注: 如果您设置密码,建议您在首次登录时更改密码,因为密码已存储在纯文本文件中。

ssh_pwauth 行可启用 SSH 登录。ssh_authorized_keys 行的开头是由一个或多个授权密钥组成的块。ssh-rsa 行中列出的每个 SSH 公钥都将添加到 vcadmin ~/.ssh/authorized_keys 文件中。

在此示例中,列出了两个密钥。对于此示例,密钥已被截断。在实际的文件中,必须列出完整的公钥。请注意,ssh-rsa 行前面必须有两个空格,两个空格之后跟有一个连字符,连字符之后再跟有一个空格。

vco 部分指定配置的 SD-WAN Orchestrator 服务。

super_users 包含 VMware 超级操作员帐户和相应密码的列表。

system_properties 部分允许自定义 Orchestrator 系统属性。有关配置系统属性的详细信息,请参阅“系统属性”。

write_files 部分允许替换系统上的文件。默认情况下, SD-WAN Orchestrator Web 服务配置了自签名 SSL 证书。如果您希望提供不同的 SSL 证书,上述示例可将 /etc/nginx/velocloud/ssl/ 文件夹中的 server.crtserver.key 文件替换为用户提供的文件。
注: 必须将 server.key 文件解密。否则,在没有密钥密码的情况下,服务将无法启动。

创建 ISO 文件

完成上述文件后,需要将这些文件打包到一个 ISO 映像中。此 ISO 映像用作虚拟机的虚拟配置 CD。此 ISO 映像(名为 vco01-cidata.iso)是在 Linux 系统上使用以下命令创建的:

genisoimage -output vco01-cidata.iso -volid cidata -joliet -rock user-data meta-data

将新创建的 ISO 映像传输到运行 VMware 的主机上的数据存储。