Ansible主机清单

半兽人 发表于: 2025-09-10   最后更新时间: 2025-09-10 12:13:47  
{{totalSubscript}} 订阅, 37 游览

Ansible 最关键的就是:先告诉它要操作哪些机器,这就是通过 inventory(主机清单) 来指定的。

1. inventory 文件(主机清单)

默认位置是 /etc/ansible/hosts,也可以自己写一个,比如 inventory.ini

最简单的写法:

[webservers]
192.168.1.10
192.168.1.11

[dbservers]
192.168.1.20

这里 [webservers][dbservers]主机组名字,随便起。

  • 192.168.1.10 就是目标机器的 IP 地址。
  • 也可以写域名,比如 web01.example.com

2. 在 Playbook 里指定主机

- hosts: all
  become: yes
  tasks:
    - name: 创建用户 devuser
      user:
        name: devuser
        shell: /bin/bash
        state: present

这里的 hosts: all 就是告诉 Ansible → 在 inventory 文件里所有机器 上执行。

如果你只想在 Web 服务器执行,就写:

- hosts: webservers

如果只在数据库服务器执行,就写:

- hosts: dbservers

3. 临时指定(不用写 playbook)

你也可以直接在命令里指定组或主机:

ansible webservers -m ping

意思是:对 [webservers] 组里的所有机器执行 ping 模块。

或者只针对单台机器:

ansible 192.168.1.10 -m shell -a "uptime"

4. 主机参数

inventory 里,还能给机器加参数:

[webservers]
192.168.1.10 ansible_user=root ansible_port=22
192.168.1.11 ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_rsa
  • ansible_user → SSH 登录用户名
  • ansible_port → SSH 端口
  • ansible_ssh_private_key_file → 指定私钥

5. 逻辑关系

把这几个点串起来:

  • inventory 里写:有哪些机器,怎么登录
  • playbook 里写:在哪些组(hosts)上执行任务
  • tasks 里写:具体要干啥(用模块)
更新于 2025-09-10

查看Ansible更多相关的文章或提一个关于Ansible的问题,也可以与我们一起分享文章