Ansible

1. 它是个啥?

  • 无代理 :它不像其他软件要在被控制的电脑上装东西。只要被控电脑能联网、能用SSH (Linux)或WinRM (Windows),Ansible 就能通过SSH远程过去干活。

  • 傻瓜式 :写的是 YAML 格式的剧本,长得像配置文件,没有编程基础也能看懂。

2. 核心概念

  • 控制节点:就是你手里那台装了 Ansible 的电脑,负责发号施令。

  • Inventory通讯录 。一个文本文件,里面写着你管哪些机器,比如 [webserver] 组里放着 192.168.1.1 和 192.168.1.2。

  • Module工具箱里的工具 。Ansible 自带几百个工具,比如 copy 是拷贝文件,yum 是装软件,service 是重启服务。你只需要说"用 copy 模块",它就知道怎么干活。

  • Playbook剧本/菜谱 。就是一系列操作的步骤文档。比如"先装 Nginx,再把配置文件拷过去,最后启动服务"。剧本里的每一步叫 Task

  • Idempotence不管执行多少次,结果都一样。比如你写了"确保 Nginx 是安装状态"。如果没装,它就装;如果已经装了,它就略过。这保证了你可以反复执行剧本而不会把系统搞乱。

3. 常用命令

  • ansible :临时执行一条命令。比如 ansible all -m ping 就是测试通讯录里所有机器通不通。

  • ansible-playbook :执行写好的剧本。比如 ansible-playbook install_nginx.yml

4. 执行过程

  1. 你敲下命令。

  2. Ansible 读取 Inventory(看看要操作谁)。

  3. 通过 SSH 连上去。

  4. 把你的指令(模块)翻译成 Python 脚本,通过 SSH 推送到远程机器上执行。

  5. 执行完了自动销毁脚本,不留痕迹。

5. 常用模块(工具)

  • ping:测机器是否活着。

  • command / shell:远程跑命令(shell 能识别 |>,command 更安全但功能少)。

  • copy / fetch:往机器传文件 / 从机器取文件。

  • yum / apt / pip:装软件包。

  • template:传文件的高级版,支持变量替换(比如根据不同的机器,把配置里的 IP 改成它自己的)。

  • file:管理文件、目录的权限和状态。

6. 变量与事实

  • Variables变量 。比如写剧本时不用写死端口,写成 {``{ http_port }},实际执行时传进去。

  • Facts自动采集的机器信息。Ansible 在执行前会先偷看一下机器的 IP、CPU、内存、操作系统版本,把这些信息存起来,你在剧本里可以直接用。

7. 怎么组织项目

通常一个项目长这样:

text

复制代码
site.yml           # 总入口剧本
webservers.yml     # 专门给 web 服务器用的剧本
dbservers.yml      # 给数据库用的
group_vars/        # 组变量,比如 webserver 组都安装哪个目录
host_vars/         # 某台机器的私密变量(比如密码)
roles/             # 高级用法,把装nginx、装mysql拆成独立的“角色”

8. 高级点

  • Roles标准化组件。把一堆任务、文件、变量打包成一个文件夹,像搭积木一样复用。比如"nginx_role",以后装 Nginx 直接调用它就行,不用再写一遍步骤。

  • Ansible Vault密码保管箱。用来加密 yml 文件里的密码,避免把密码明文写在代码里。

  • Handlers触发器。只有在任务发生改变时才执行。比如改了配置文件,才去重启服务;如果没改,就不重启,避免不必要的重启。

总结(三句话)

  1. SSH 是通道 ,你只要能在终端里 ssh 通那台机器,Ansible 就能管。

  2. YAML 是语言,把操作步骤像写菜谱一样写下来,就是自动化。

  3. 幂等性是灵魂,不管跑多少遍,系统状态都是你期望的那个样子。

相关推荐
DeniuHe4 分钟前
sklearn 中所有交叉验证数据集划分方式完整总结
人工智能·python·sklearn
DeniuHe8 分钟前
sklearn中不同交叉验证方法的场景适配
人工智能·python·sklearn
隐于花海,等待花开1 小时前
16.Python 常用第三方库概览 深度解析
python
我材不敲代码1 小时前
Python 函数核心:位置参数与关键字参数详解
java·前端·python
风落无尘1 小时前
第十一章《对齐与安全》 完整学习资料
python·安全·机器学习
Kratzdisteln1 小时前
【无标题】
前端·python
hakesashou1 小时前
python文件操作需要导入模块吗
python
wuxinyan1231 小时前
工业级大模型学习之路029:解决双智能体调用数据库报错问题
数据库·人工智能·python·学习·智能体
SunnyDays10111 小时前
Python操作Excel批注:从基础添加到高级自定义的完整指南
开发语言·python·excel
独隅1 小时前
PyTorch自动微分模块:从原理到实战一
人工智能·pytorch·python