侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 748 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

ansible笔记(1)之主机清单配置

zze
zze
2020-03-27 / 0 评论 / 1 点赞 / 769 阅读 / 3716 字

不定期更新相关视频,抖音点击左上角加号后扫一扫右方侧边栏二维码关注我~正在更新《Shell其实很简单》系列

本来打算自己写一波 ansible 系列的,后来发现一老哥写的太好了,「点击此处直达」,我这里也就边看边对该系列文章做下笔记,方便以后查阅,ansible 入门的话墙裂建议阅读前方链接博文~~~

ansible 主机清单默认配置文件:/etc/ansible/hosts

配置格式可分为两类,一类是 INI 格式配置,一类是 YAML 格式配置。

INI 格式

普通配置

10.0.1.201 ansible_port=22 ansible_user=root ansible_ssh_pass=root1234
10.0.1.202 ansible_port=22 ansible_user=root ansible_ssh_pass=root1234
  • ansible_port:用于配置对应主机上的 sshd 服务端口号,在实际的生产环境中,各个主机的端口号通常不会使用默认的 22 号端口,所以用此参数指定对应端口,为 22 时可省略;
  • ansible_user:用于配置连接到对应主机时所使用的用户名称;
  • ansible_ssh_pass 用于配置对应用户的连接密码;

对指定主机进行操作时直接指定 IP:

$ ansible 10.0.1.201 -m ping

使用别名

B ansible_host=10.0.1.201 ansible_port=22 ansible_user=root ansible_ssh_pass=root1234
C ansible_host=10.0.1.202 ansible_port=22 ansible_user=root ansible_ssh_pass=root1234

注意:上述配置参数都是 ansible 2.0 版本以后的写法,2.0 版本之前,应遵从如下写法:

  • ansible_port 应该写成 ansible_ssh_port
  • ansible_user 应该写成 ansible_ssh_user
  • ansible_host 应该写成 ansible_ssh_host

可以使用 ansible --version 来查看你当前安装的 ansible 版本,我这里使用的是 ansible 2.9.6,所以就使用新的写法了。

对指定主机进行操作时直接指定别名即可:

$ ansible B -m ping

主机分组

将 B、C 主机归为 test_group 组。

[test_group]
B ansible_host=10.0.1.201
C ansible_host=10.0.1.202

指定组名则会对该组下的所有主机进行操作:

$ ansible test_group -m ping

父子组

使用 children 关键字创建父组 parent_group,其包含两个子组分别是 group1group2

[group1]
B ansible_host=10.0.1.201
 
[group2]
C ansible_host=10.0.1.202
 
[parent_group:children]
group1
group2

指定父组名则会对该父组的所有子组包含的主机进行操作:

$ ansible parent_group -m ping

YAML 格式

分组

创建一个名为 test_group 的组,该组中包含 10.0.1.20110.0.1.202 两台主机:

test_group:
  hosts:
    10.0.1.201:
    10.0.1.202:

相当于如下 INI 格式配置:

[test_group]
10.0.1.201
10.0.1.202

父子组

创建一个名为 parent_group 的父组,其包含 group1group2 的子组:

parent_group:
    children:
        group1:
            hosts:
                10.0.1.201
        group2:
            hosts:
                10.0.1.202

相当于如下 INI 格式配置:

[group1]
10.0.1.201
 
[group2]
10.0.1.202
 
[parent_group:children]
group1
group2

使用别名

创建两个组分别名为 group1group2group1 组下有一别名为 B 的主机,group2 组下有一别名为 C 的主机:

group1:
  hosts:
    B:
      ansible_host: 10.0.1.201
 
group2:
  hosts:
    C:
      ansible_host: 10.0.1.202

相当于如下 INI 格式配置:

group1:
    hosts:
        B:
            ansible_host: 10.0.1.201
 
group2:
    hosts:
        C:
            ansible_host: 10.0.1.202
1

评论区