SuperAPI AI 工具集

ansible

部署与运维

查看项目

更新于 10-15 10:17

技能介绍

Ansible 是一款无代理(agentless)的自动化工具,通过 SSH 对服务器进行配置管理、应用部署和基础设施管理。它不需要在被管理节点上安装代理,目标主机只需具备 Python 和 SSH 访问权限。其所有模块默认幂等,重复运行同一 playbook 会产生相同结果。

一、主要用途 Ansible 可用于服务器配置、应用部署、基础设施管理、用户与 SSH 管理、容器部署、滚动发布等场景,适合需要批量、可重复、可审计地管理多台主机的运维与开发工作。

二、主要能力

  1. Ad-Hoc 临时命令:可在命令行直接执行 ping、command、shell、copy、apt、systemd、user、setup 等模块,用于快速检查或操作。
  2. Inventory 主机清单:支持静态 INI 与 YAML 格式,支持分组、子分组、主机变量、组变量,以及通过插件实现动态 Inventory(如 AWS EC2)。
  3. Playbook:YAML 编写,包含 pre_tasks、tasks、handlers、post_tasks 等结构,支持 vars、become 提权、--check 试运行、--diff 显示变更、-e 传入额外变量、--limit 限定主机、--start-at-task 指定起点。
  4. 常用模块:包管理(apt、yum)、文件与目录(file、copy、template)、服务(systemd)、用户与组(user、authorized_key)、Git 检出(git)、Docker 容器(docker_container、docker_image、docker_compose_v2)、下载(get_url)、命令执行(command、shell)、Cron(cron)等。
  5. 变量与 Facts:支持变量优先级控制、register 注册输出、set_fact 动态设置、include_vars 引入变量文件、访问 ansible_distribution、ansible_default_ipv4 等系统 facts。
  6. Jinja2 模板:支持 default、upper、lower、basename、dirname、join、map、unique、sort、to_json、to_yaml、password_hash、三元表达式等过滤器。
  7. 条件与循环:when 条件判断,loop 循环、带索引循环、until 重试循环。
  8. 错误处理:ignore_errors、failed_when、changed_when、block/rescue/always。
  9. 标签:可为任务打 tags,通过 --tags、--skip-tags、--list-tags 控制执行范围。
  10. 角色(Roles):标准目录结构包含 defaults、vars、tasks、handlers、templates、files、meta,支持依赖、变量覆盖与条件启用。
  11. Ansible Galaxy:可安装角色与集合,支持 requirements.yml 声明依赖,也可初始化新角色。
  12. Ansible Vault:可加密、解密、编辑、查看、rekey 文件,加密单个字符串,运行时可用 --ask-vault-pass 或 --vault-password-file 提供密码。
  13. Docker 与容器管理:需安装 community.docker 集合,可安装 Docker、拉取镜像、运行容器、执行 docker compose 部署。
  14. 测试:使用 Molecule 配合 docker 驱动,提供 create、converge、verify、destroy、test 生命周期。
  15. 性能调优:可配置 forks、fact_caching、stdout_callback、pipelining、ssh_args、async/poll,以及 gather_facts: no、gather_subset、strategy: free,也可通过 Mitogen 获得加速。

三、使用方式

  1. 运行临时命令:ansible all -m ping、ansible webservers -m command -a "uptime"。
  2. 运行 playbook:ansible-playbook site.yml,可配合 -i、--limit、--check、--diff、-e、--start-at-task 等参数。
  3. 管理加密:ansible-vault encrypt/decrypt/edit/view/rekey,或 encrypt_string。
  4. 安装依赖:ansible-galaxy install、ansible-galaxy collection install。
  5. 测试角色:molecule create/converge/verify/destroy/test。

四、适用场景 适合服务器配置管理、应用部署、基础设施管理、用户与 SSH 配置、滚动发布、容器化应用部署等需要自动化与幂等保证的场景。

五、限制 资料中未提供具体限制说明,暂未提供。