当前位置: 首页 > news >正文

Ansible 变量管理实验

一、命令 1:sudo vim /etc/ansible/hosts

作用

这条命令是用vim编辑器修改 Ansible 的主机清单文件,需要sudo权限,因为/etc/ansible/hosts是系统配置文件。

test01 port=80 test02 port=8080 test03 port=8090

这就是我执行结果里port变量不同的原因:

  • test01的主机变量port=80
  • test02的主机变量port=8080
  • test03的主机变量port=8090

关键知识点

  1. 主机清单(Inventory)的作用/etc/ansible/hosts是 Ansible 默认的主机清单文件,用来定义目标主机和主机变量。你这里的port=80属于主机变量,Ansible 会自动把这些变量注入到对应主机的执行环境中。

  2. 变量优先级:主机清单变量 > Play 级变量我第一个 Play 里的vars: ports: 10000被注释了,所以 Ansible 会优先读取主机清单里的port变量,这就是为什么两台主机输出的端口不一样。

二、命令 2:vim test1.yaml

作用

这是 Linux 系统里用vim编辑器创建 / 修改test1.yaml文件的命令

对应文件内容解析关键知识点

  1. gather_facts: true为什么必须开?我debug里用了{{ansible_hostname}},这是 Ansible 的内置事实变量,需要通过gather_facts收集目标主机信息才能获取。

    • 如果设置gather_facts: falseansible_hostname会是None,直接报错。
    • 这也是我标注 “必须开启,不然报错” 的原因。
  2. debug模块的正确 / 错误写法我这里的debug直接写在了和name同级的位置,属于错误写法。正确写法是放在tasks下:

    yaml

    - name: out hosts: test01,test02 gather_facts: true tasks: - name: debug port info debug: msg="the {{ansible_hostname}} ports is {{port}}"

    我现在的写法能跑通,是因为 Ansible 做了兼容


三、命令 3:ansible-playbook test1.yaml

作用

这是执行 Ansible Playbook 的核心命令,用来批量执行test1.yaml里定义的任务。

逐行解读

  1. PLAY [varout]:开始执行名为varout的 Play。
  2. TASK [Gathering Facts]:收集test01test02的系统信息(因为gather_facts: true)。
  3. TASK [out]:执行debug任务,输出每台主机的ansible_hostnameport变量值。
    • test01输出the test01 ports is 80
    • test02输出the test02 ports is 8080
  4. PLAY RECAP:执行结果汇总,两台主机都执行成功(ok=2,无失败 / 不可达)。

四、整个流程的核心意义

这一套操作,完整演示了 Ansible 最基础也最重要的几个概念:

  1. 主机清单(Inventory)的使用:在/etc/ansible/hosts中定义目标主机和主机变量。
  2. Playbook 的编写与执行:用vim写 Playbook,用ansible-playbook执行。
  3. 内置事实变量与自定义变量的结合:用ansible_hostname获取主机名,用主机清单变量port定义不同主机的端口。
  4. debug模块的调试作用:验证变量是否被正确读取,是 Ansible 排错的必备技能。
  5. 多主机批量管理:一条命令同时管理test01test02两台主机,体现了 Ansible 的自动化优势。

http://www.jsqmd.com/news/846504/

相关文章:

  • 行业走访纪实丨海南税务咨询机构TOP5实测:谁才是真正的“省税专家”? - 资讯速览
  • PL2303老芯片终极解决方案:3步让Windows 10/11识别你的停产串口设备
  • DWC2 USB2.0 IP接口与协议时序深度解析:从PHY握手到驱动调试
  • 【亲测免费】 HPSocket C++ 控制台版 DEMO
  • 超级实用的软件著作权申请源代码材料格式文档生成辅助工具
  • 2026冒菜加盟十大品牌:每味每客“油泼”工艺领跑,创业选型必读 - 深度智识库
  • 国内管道岩棉铝皮保温技术实力强的公司排名 - 品牌推荐大师
  • 探索Artisan:用开源软件解码咖啡烘焙的数据科学
  • 智能照明技术演进:从健康光谱到Matter协议的无感联动实践
  • 运算放大器失调电压:从原理到测量与补偿的实战指南
  • Cursor Free VIP:三合一解决方案彻底解决AI编辑器使用限制
  • WorkshopDL:免费Steam创意工坊下载器完整使用指南
  • STM32驱动OV7670摄像头,从寄存器配置到LCD显示的避坑全记录
  • 探索无限可能:Mixly第三方库开发教程
  • 5分钟极速上手:用Open-Lyrics让AI为你的音频自动生成专业字幕
  • 2026年GEO监测工具排行榜:全链路闭环监测与优化验证能力最强的6家
  • 用Python+OpenCV搞定模糊老照片修复:手把手教你实现逆滤波与维纳滤波
  • Trae 排查性能瓶颈的 4 类日志线索与 3 步优化路径
  • 2026 海南税务咨询怎么选?5 家合规机构深度甄选 - 资讯速览
  • 探索ONVIF世界:轻松对接RTSP视频流的开源宝藏
  • 绍兴装修水管公司排行:实测性能与服务维度对比 - 奔跑123
  • 2026家用空气能地暖推荐品牌权威榜单:六大第一梯队品牌实力解析+避坑选购指南 - 匠言榜单
  • 5分钟上手OpenSTA:开源静态时序分析工具完全指南
  • 别再只盯着USB3.0速度了!深入链路训练状态机(LTSSM),搞懂设备插上后到底经历了什么
  • 阿里FunASR语音识别模型Docker部署避坑指南(Ubuntu 18.04 + CPU版镜像)
  • 【免费下载】 吴恩达机器学习课程资源下载
  • PCBTEMP:大功率PCB设计中的电流计算利器
  • 郑州 pos 刷卡机免费上门办理!个人用央行持牌机,低费率秒到无押金 - 资讯速览
  • 2026郑州个人pos机免费上门办理,央行支付牌照稳定不跳码正规渠道 - 资讯速览
  • 如何高效实现30+输入法词库互转:一站式智能转换方案解放生产力