NODES剧本

    当您使用 infra.yml 在元节点上完成Pigsty的完整安装后,您可以进一步使用 将更多节点添加至Pigsty中,或者使用 nodes-remove.yml 将节点从环境中移除。


    nodes.yml 剧本将更多节点添加至Pigsty中。该剧本需要在 元节点 上发起,针对目标节点执行。

    此剧本可以将目标机器节点调整至配置清单所描述的状态,安装Consul服务,并将其纳入Pigsty监控系统,并允许您在这些置备好的节点上进一步部署不同类型的数据库集群。

    nodes.yml 剧本的行为由 决定。在使用本地源的情况下,完整执行此剧本可能耗时1~3分钟,视机器配置而异。

    此剧本包含的功能与任务如下:

    • 生成节点身份参数
    • 初始化节点
      • 配置节点名称
      • 配置节点静态DNS解析
      • 配置节点动态DNS解析服务器
      • 安装指定的RPM软件包
      • 配置 numa/swap/firewall等特性
      • 配置节点tuned调优模板
      • 配置节点的快捷命令与环境变量
      • 创建节点管理员并配置SSH
      • 配置节点时区
      • 配置节点NTP服务
    • 在节点上初始化DCS服务:Consul 与 ETCD
      • 抹除现有Consul
      • 初始化当前节点的 Consul Agent或Server 服务
    • 初始化节点监控组件并纳入Pigsty
      • 将 Node Exporter 注册至元节点上的 Prometheus 中。

    Pigsty提供保护机制,避免误删运行中的Consul实例,包括了两个相关参数:

    • dcs_safeguard:默认关闭,只要打开,在任意情况下该数据库实例不会被清理。
    • :默认关闭,当打开时,初始化节点/nodes.yml 会抹除掉现有Consul实例(有可能影响PG主库写入)

    当遇到现存实例时, 剧本会有以下行为表现:

    当遇到现存实例时, nodes-remove.yml剧本会有以下行为表现:

    用户可以通过ansible的标签机制,选择性执行本剧本的一个子集。例如,如果只想执行节点监控部署的任务,则可以通过以下命令:

    1. ./nodes.yml --tags=node-monitor

    一些常用的任务子集包括:

    管理用户是一个先有鸡还是先有蛋的问题。为了执行Ansible剧本,需要有一个管理用户。为了创建一个专用的管理用户,需要执行此Ansible剧本。

    如果您只能使用ssh密码和sudo密码,那么必须在所有剧本执行时添加额外的参数 --ask-pass|-k--ask-become-pass|-K,并在提示出现时输入ssh密码与sudo密码。您可以使用 中创建管理员用户的功能,使用当前用户创建一个专用管理员用户,以下参数用于创建默认的管理员用户:

    1. ./nodes.yml -t node_admin -l <目标机器> --ask-pass --ask-become-pass

    默认创建的管理员用户为 dba(uid=88),请不要使用 postgres{{ dbsu }} 作为管理用户,请尽量避免直接使用 root 作为管理用户。

    在沙箱环境中的默认用户 vagrant 默认已经配置有免密登陆和免密sudo,您可以从宿主机或沙箱元节点使用vagrant登陆所有的数据库节点。

    例如:

    详情请参考:


    nodes-remove

    剧本是 nodes剧本的反向操作,用于将节点从Pigsty中移除。

    该剧本需要在 元节点 上发起,针对目标节点执行。

    1. ./nodes.yml # 移除所有节点(危险!)
    2. ./nodes.yml -l nodes-test # 移除 nodes-test 分组下的机器
    3. ./nodes.yml -l 10.10.10.10 -e rm_dcs_servers=true # 如果节点为DCS Server,需要额外参数移除。