13.14. 使用 ha_cluster RHEL 系统角色为高可用性集群配置警报


(RHEL 9.5 及更高版本)当 Pacemaker 事件发生(如资源或节点故障或配置更改)时,您可能需要执行一些外部操作。例如,您可能想要发送一封电子邮件消息或记录到文件或更新监控系统。

您可以使用警报代理配置系统,来执行外部操作。这些是集群调用的外部程序,其方式与集群调用资源代理的方式相同,以处理资源配置和操作。集群通过环境变量将关于事件的信息传递给代理。

注意

ha_cluster RHEL 系统角色配置集群,以调用外部程序来处理警报。但是,您必须提供这些程序,并将它们分发到集群节点。

有关报警代理的详情,请参阅 为集群事件触发脚本

这个示例流程使用 ha_cluster RHEL 系统角色,以自动配置 Pacemaker 警报的方式创建高可用性集群。

警告

ha_cluster RHEL 系统角色替换指定节点上任何现有的集群配置。playbook 中未指定的任何设置都将丢失。

先决条件

流程

  1. 将您的敏感变量存储在一个加密文件中:

    1. 创建 vault :

      $ ansible-vault create vault.yml
      New Vault password: <vault_password>
      Confirm New Vault password: <vault_password>
    2. ansible-vault create 命令打开编辑器后,以 <key>: <value> 格式输入敏感数据:

      cluster_password: <cluster_password>
    3. 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
  2. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Create a high availability cluster
      hosts: node1 node2
      vars_files:
        - vault.yml
      tasks:
        - name: Configure a cluster with alerts
          ansible.builtin.include_role:
            name: rhel-system-roles.ha_cluster
          vars:
              ha_cluster_cluster_name: my-new-cluster
              ha_cluster_hacluster_password: "{{ cluster_password }}"
              ha_cluster_manage_firewall: true
              ha_cluster_manage_selinux: true
              ha_cluster_alerts:
                - id: alert1
                  path: /alert1/path
                  description: Alert1 description
                  instance_attrs:
                    - attrs:
                        - name: alert_attr1_name
                          value: alert_attr1_value
                  meta_attrs:
                    - attrs:
                        - name: alert_meta_attr1_name
                          value: alert_meta_attr1_value
                  recipients:
                    - value: recipient_value
                      id: recipient1
                      description: Recipient1 description
                      instance_attrs:
                        - attrs:
                            - name: recipient_attr1_name
                              value: recipient_attr1_value
                      meta_attrs:
                        - attrs:
                            - name: recipient_meta_attr1_name
                              value: recipient_meta_attr1_value

    示例 playbook 中指定的设置包括以下内容:

    ha_cluster_cluster_name: <cluster_name>
    您要创建的集群的名称。
    ha_cluster_hacluster_password: < password>
    hacluster 用户的密码。hacluster 用户对集群具有完全访问权限。
    ha_cluster_manage_firewall: true
    确定 ha_cluster RHEL 系统角色是否管理防火墙的变量。
    ha_cluster_manage_selinux: true
    确定 ha_cluster RHEL 系统角色是否使用 selinux RHEL 系统角色管理防火墙高可用性服务的端口的变量。
    ha_cluster_alerts: <alert definitions>

    定义 Pacemaker 警报的变量。

    • id - 警报的 ID。
    • path - 警报代理可执行文件的路径。
    • description - 警报的描述信息。
    • instance_attrs - 警报实例属性集合的列表。目前,只支持一个集合,因此第一个集合被使用,其余集合被忽略。
    • meta_attrs - 警报元属性集合的列表。目前,只支持一个集合,因此第一个集合被使用,其余集合被忽略。
    • recipients - 警报接收者的列表。
    • value - 接收者的值。
    • id - 接收者的 ID。
    • description - 接收者的描述。
    • instance_attrs - 接收者实例属性集合的列表。目前,只支持一个集合,因此第一个集合被使用,其余集合被忽略。
    • meta_attrs - 接收者元属性集合的列表。目前,只支持一个集合,因此第一个集合被使用,其余集合被忽略。

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md 文件。

  3. 验证 playbook 语法:

    $ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  4. 运行 playbook:

    $ ansible-playbook --ask-vault-pass ~/playbook.yml

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md 文件
  • /usr/share/doc/rhel-system-roles/ha_cluster/ 目录
  • Ansible vault
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.