Ansible
Pigsty 使用 Ansible 实现管理控制器,这是一个开源自动化工具,用于以基础设施即代码(IaC)的方式管理大规模基础设施。 被运维人员广泛使用。
安装
Pigsty 将在引导期间尽力安装 ansible 及其依赖项。
但您始终可以手动安装它,它在大多数操作系统的官方仓库中都可用,如果使用 Pigsty,则可以用以下命令安装。
Playbooks 还需要一个弱依赖:jmespath python 包。
请注意,目前 EL10 EPEL 仓库尚未提供完整的 Ansible 包,Pigsty PGSQL EL10 仓库中补充了这个包。
macOS
Ansible 在 macOS 上也可用。您可以使用 Homebrew 在 Mac 上安装 Ansible。 并将其用作管理节点来管理远程云服务器。 如果您在云 VPS 上部署单节点 pigsty,这很方便。但不建议在生产环境中使用。
基础知识
了解 Ansible 知识有助于使用,但 并非必须。您只需要知道如何运行 Ansible 剧本 即可。 剧本(Playbook)是包含要执行的一系列任务的可执行 YAML 文件。
运行 ./node.yml playbook 本质上是执行 ansible-playbook node.yml 命令。剧本顶部的 hashbang 使其可直接执行。
您可以使用一些参数来精细控制剧本的执行:
以下 4 个参数 需要您注意,以便有效使用 ansible:
| 目的 | 参数 | 描述 |
|---|---|---|
| 对象 | -l|--limit <pattern> |
限制在特定组/主机/模式上的执行目标 |
| 任务 | -t|--tags <tags> |
只运行具有特定标签的任务 |
| 参数 | -e|--extra-vars <vars> |
额外的命令行参数 |
| 配置 | -i|--inventory <path> |
使用特定的清单文件 |
限制主机
playbook 的执行目标可以通过 -l|--limit <selector> 限制。
当尝试在特定主机/节点或组/集群上运行 playbooks 时,这很方便。
以下是主机限制的一些示例:
查看 ansible 文档中的所有详细信息:Patterns: targeting hosts and groups
缺少这个值可能很危险,因为大多数 playbooks 将在 all 主机上执行。请谨慎使用。
限制任务
执行任务可以通过 -t|--tags <tags> 控制。
如果指定,将执行具有给定标签的任务,而不是整个 playbook。
以下是一些任务限制示例:
要运行多个任务,指定多个标签并用逗号分隔:-t tag1,tag2:
额外变量
您可以使用 cli 参数在运行时覆盖配置参数,它具有最高优先级。
额外的命令行参数可以通过 -e|--extra-vars KEY=VALUE 传递,可以多次使用:
对于复杂参数,可以使用 JSON 字符串:
指定清单
默认配置文件是 pigsty 主目录中的 pigsty.yml。
您可以使用 -i <path> 参数指定不同的清单文件路径。
要永久更改默认配置文件,请更改 ansible.cfg 中的 inventory 参数。