9.2. 在所有实例中添加配置驱动器

作为管理员,您可以将计算服务配置为始终为实例创建配置驱动器,并使用特定于部署的元数据填充配置驱动器。例如,您可以使用配置驱动器的原因:

  • 要在部署不使用 DHCP 为实例分配 IP 地址时传递网络配置。您可以通过配置驱动器传递实例的 IP 地址配置,实例可以在为实例配置网络设置前挂载和访问。
  • 要将数据传递给对启动实例的用户不知道的实例,例如,用于通过 Active Directory 后注册实例的加密令牌。
  • 要创建本地缓存的磁盘读取,以管理实例请求的负载,这可以减少对元数据服务器定期访问元数据服务器的影响,以检查和构建事实。

任何能够挂载 ISO 9660 或 VFAT 文件系统的实例操作系统都可以使用配置驱动器。

流程

  1. 打开您的计算环境文件。
  2. 要在启动实例时始终附加配置驱动器,请将以下参数设置为 True

    parameter_defaults:
      ComputeExtraConfig:
        nova::compute::force_config_drive: 'true'
  3. 可选: 要将配置驱动器的格式从 iso9660 的默认值改为 vfat,请在您的配置中添加 config_drive_format 参数:

    parameter_defaults:
      ComputeExtraConfig:
        nova::compute::force_config_drive: 'true'
        nova::compute::config_drive_format: vfat
  4. 保存对 Compute 环境文件的更新。
  5. 使用其他环境文件将计算环境文件添加到堆栈中,并部署 overcloud:

    (undercloud)$ openstack overcloud deploy --templates \
     -e [your environment files] \
     -e /home/stack/templates/<compute_environment_file>.yaml \

验证

  1. 创建一个实例:

    (overcloud)$ openstack server create --flavor m1.tiny \
     --image cirros test-config-drive-instance
  2. 登录该实例。
  3. 挂载配置驱动器:

    • 如果实例操作系统使用 udev

      # mkdir -p /mnt/config
      # mount /dev/disk/by-label/config-2 /mnt/config
    • 如果实例操作系统没有使用 udev,则首先需要识别与配置驱动器对应的块设备:

      # blkid -t LABEL="config-2" -odevice
      /dev/vdb
      # mkdir -p /mnt/config
      # mount /dev/vdb /mnt/config
  4. 根据您的元数据,检查挂载的配置驱动器目录中 mnt/config/openstack/{version}/ 中的文件。