Ansible 入门:Inventory、主机组与第一次连通检查

阿远
2026-10-29 / 0 评论 / 0 阅读 / 正在检测是否收录...

先把控制端、目标主机和 Inventory 的关系弄清楚,再考虑批量修改。Ansible 的 ping 模块检查的是远端执行能力,不是普通 ICMP ping。

学习整理:2026-10-29。以下命令、地址和账号均为课程实验示例,按实际环境替换;涉及安装、覆盖配置或服务启停的操作先在隔离环境练习,不代表本站已经实施。

一、工作方式

Ansible通常通过SSH连接目标主机,不要求目标安装常驻Agent。控制端保存Inventory、变量和Playbook。

二、Inventory

[web]
ops02 ansible_host=192.168.56.12
ops03 ansible_host=192.168.56.13
[monitoring]
ops01 ansible_host=192.168.56.11
[all:vars]
ansible_user=opsuser

测试:

ansible-inventory -i inventory.ini --graph
ansible all -i inventory.ini -m ping
ansible web -i inventory.ini -a 'uptime'

三、常见模块

ansible web -b -m package -a 'name=nginx state=present'
ansible web -b -m service -a 'name=nginx state=started enabled=yes'
ansible web -b -m copy -a 'src=index.html dest=/usr/share/nginx/html/'
ansible all -m setup

优先使用模块,而不是全部写成shell命令。模块更容易实现幂等和跨环境判断。

四、变量优先级

变量来源很多:Inventory、group_vars、host_vars、Playbook、角色默认值、命令行额外变量等。初学时保持结构简单,不要依赖复杂覆盖关系。

五、凭据

  • 使用SSH密钥。
  • 提权密码和应用秘密使用Ansible Vault或外部秘密系统。
  • Vault密码不能提交到Git。
  • Inventory中不要明文写生产密码。

我的验收重点

先说清每个组件和参数解决的问题,再在实验环境记录正常结果、错误现象与恢复步骤。配置能通过语法检查只是起点,还应验证实际功能。本文保留为学习笔记,不把计划中的多机部署或演练写成本站完成记录。

先做只读连通验收

控制端先确认 ansible --version、SSH 密钥登录与目标 Python 可用,再用 ansible-inventory --graph 检查主机组。ping 模块成功通常返回 pong,不是 ICMP 连通性结果。先对一台自有实验机运行 uptime;-b 表示提权,不是自动获得授权或密码。安装和复制模块会改变主机,不能把它们与只读检查一起盲目批量执行。

内容复核与修订:2026-10-29。实验示例与本站运行记录分别说明;原始归档日期保留。
0

评论 (0)

取消