Ansible 系列(二)

Ansible 的“清单”文件就像是黄页电话本。有了它,我们就能和各个主机进行通话交流。

分组

像这种通讯联系本都会有一个功能 —— 分组,或者说“打标签”。这样无论再多的联系人(主机)我们都能很轻松地找到。

Ansible 有一个自带的分组名称 —— all。

没错就是字面意思。该分组包含“清单”中的所有联系人。通过这个关键字 我们可以同时对“清单”中所有的主机进行操作:

接下来,我们自己定义几个分组:

上面,我们先定义了两个分组 ,。接下来我们就可以直接对整个组里的主机进行操作:

上面我们创建了两个分组 —— 测试组和生产组。我们现在可以分别操作这两个组,但是有些操作却是不区分测试组还是生产组的,怎么办呢?

没错,再建一个同时包含这两个组所有主机的新分组。

那如果每一个组包含的主机很多,这种做法效率就太低了,我们还有另一种方法 —— 嵌套。

就是我们在新建的组里面直接添上其他的组名,不用一个个添上其他组内的主机名:

这样我们想对所有主机执行一些基础操作的时候,就可以直接操作 组。

YAML 语法

以上“清单”的配置都是 ini 格式的写法,ansible 的“清单”还支持 YAML 格式的语法。

为什么还要知道 YAML 语法格式的“清单”配置呢?

后面介绍的 Ansible Playbook 配置使用的就是 YAML 语法,虽然“清单”对于 ini 和 YAML 两种语法都支持,但是我们使用同一种语法格式总是会舒服一点。当然这种舒服也是因人而异的,具体使用中哪个适合自己就是用哪个。

下面列出几个 ini 和 YAML 两种格式的对比:

YAML 格式中,最上方的 就是之前我们所说的关键字,在 YAML 中必须把 写在最上方。这样才符合 这个关键字本身的地位嘛。

接着来看其他几个格式对比:

可以看出,YAML 格式中定义“组”需要用到 关键字。

再来看个嵌套分组的对比:

最后我们再来看一个指定 port、name 的两个格式对比:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181013G0FTRC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券