第 4 章 配置 Hook


配置 hook 提供了将您自己的配置功能注入 Overcloud 部署过程的方法。这包括用于在主 Overcloud 服务配置和 hook 之前和之后注入自定义配置的 hook,用于修改和包含基于 Puppet 的配置。

4.1. 首次启动:自定义第一个引导配置

director 提供了在 Overcloud 初始创建时在所有节点上执行配置的机制。director 通过 cloud-init 实现这一点,您可以使用 OS::TripleO::NodeUserData 资源类型来调用。

在本例中,您将使用所有节点上的自定义 IP 地址更新名称服务器。您必须首先创建一个基本的 heat 模板(/home/stack/templates/nameserver.yaml),运行脚本来附加每个节点的 resolv.conf 及特定名称服务器。您可以使用 OS::TripleO::MultipartMime 资源类型发送配置脚本。

heat_template_version: 2014-10-16

description: >
  Extra hostname configuration

resources:
  userdata:
    type: OS::Heat::MultipartMime
    properties:
      parts:
      - config: {get_resource: nameserver_config}

  nameserver_config:
    type: OS::Heat::SoftwareConfig
    properties:
      config: |
        #!/bin/bash
        echo "nameserver 192.168.1.1" >> /etc/resolv.conf

outputs:
  OS::stack_id:
    value: {get_resource: userdata}

接下来,创建一个环境文件(/home/stack/templates/firstboot.yaml),将 heat 模板注册为 OS::TripleO::NodeUserData 资源类型。

resource_registry:
  OS::TripleO::NodeUserData: /home/stack/templates/nameserver.yaml

要添加第一个启动配置,请在首次创建 Overcloud 时将环境文件添加到堆栈中,以及其他环境文件。例如:

$ openstack overcloud deploy --templates \
    ...
    -e /home/stack/templates/firstboot.yaml \
    ...

-e 将环境文件应用到 Overcloud 堆栈。

这会在首次创建和第一次引导时向所有节点添加配置。后续包含这些模板(如更新 Overcloud 堆栈)不会运行这些脚本。

重要

您只能将 OS::TripleO::NodeUserData 注册到一个 heat 模板。后续用法会覆盖要使用的 heat 模板。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.