用途:为编写生产级 Ansible 自动化提供核心原则与黄金规则,统一仓库内所有 Ansible 代码的写法。
主要能力与规则:所有 Ansible 命令通过 uv 前缀执行,如 uv run ansible-playbook playbooks/my-playbook.yml、uv run ansible-lint、uv run ansible-galaxy collection install -r requirements.yml。模块必须使用完全限定集合名(FQCN),如 ansible.builtin.apt,避免 apt 等已弃用短名。command/shell 模块需添加 changed_when 与 failed_when;shell 脚本与 shell 模块调用使用 set -euo pipefail;敏感任务加 no_log: true;坚持幂等,先检查再创建、创建后验证;任务名以动作动词开头(Ensure、Configure、Install、Create 等)。
模块选择:安装包用 ansible.builtin.apt/yum/dnf;管理文件用 copy/template/file;编辑配置行用 lineinfile;无原生模块时用 command;需要管道、重定向、通配时用 shell;管理服务用 systemd/service;管理用户用 user。优先原生模块以获得内置幂等、更好错误处理与跨平台兼容。仅在无原生模块、调用厂商 CLI(pvecm、pveceph、kubectl)或运行一次性脚本时使用 command/shell,并配合 register、changed_when、failed_when、no_log。
使用方式:集合安装可用 uv run ansible-galaxy collection install -r requirements.yml 或指定集合名。执行支持 -e 传变量、--limit 限定主机、--check --diff 干跑、--tags 按标签运行。lint 可用 mise run ansible-lint 或 uv run ansible-lint ansible/playbooks/。其他命令包括 --syntax-check、ansible-inventory --list、ansible all -m ping。变量使用 snake_case 且具描述性。
适用场景与限制:适用于遵循该仓库约定的 Ansible 项目,涉及 ansible.builtin、ansible.posix、community.general、community.proxmox、infisical.vault、community.docker 等集合。资料未提供具体版本、收费、平台支持范围与效果数据。