第 4 章 配置 Hook


配置 hook 提供了一种将您自己的配置功能注入 Overcloud 部署过程的方法。这包括在主 Overcloud 服务配置和 hook (包括基于 Puppet 的配置)前后注入自定义配置的 hook。

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.