Day 24:Ansible 的一些设定

昨天简单介绍完 Ansible 的基本概念了,今天来谈谈该如何使用 Ansible 来做事吧。

设定

首先第一点是该如何设定 Ansible。我们有很多方法去影响 Ansible 该如何运作,包含透过 ansible.cfg 这个档案、环境变数或是 CLI 的参数等等...不过若是要实现 IaC (Infrastructure as Code) 的话,把设定写成档案并且做版控才是上策,因此我会比较偏好使用 ansible.cfg 来设定。

路径

Ansible 会尝试从以下路径读取设定(摘自官方文件):

  • ANSIBLE_CONFIG 环境变数(如果有设定的话)
  • ./ansible.cfg
  • ~/.ansible.cfg
  • /etc/ansible/config

Ansible 会依照以上顺序去寻找设定档,需要注意的是,只有第一个找到的设定档会起作用,而不是合并所有设定。还有一点是,若当前路径的权限是全域可写的,那麽 ./ansible.cfg 并不会起作用。

内容

那麽 ansible.cfg 里面究竟要写什麽内容呢,它可以提供的选项真的是非常的多,从官方文件可以看到一个超级长的列表,但以我目前的需求,只需要设定 inventory 的路径即可。

所以 config 长得会像这样,表示我会以当前路径的 hosts 这个档案作为 inventory file。

[defaults]
inventory = hosts

不过其实 inventory 也可以透过 CLI 参数指定就是了,若只有要写这个的话或许也不是很需要开一个档案出来。

inventory

inventory 的内容,便是定义 host 相关的资讯,通常为 ini 或是 yaml 格式,以连上 localhost 来说,长得会像这样。

[local]
localhost ansible_connection=local

档案可以分成三个部分来看:

  • 首先是第一行的 [local],这个代表 group,可以让我们替 host 分组,在後续进行操作的时候可以指定要对哪些 managed node 做事。不过这是可以不写的,每个 host 预设都会被 all 这个群组选到
  • 接下来是第二行前面的 localhost,代表我们的 hostname,他可以是个能够实际连上的 domain,但也可以做为别名使用(需另外设定实际连线用的 host)。
  • 而在後面的 ansible_connection=local,是指定给这个 host 的变数,像是刚刚提到要指定 host 的话,就可以使用 ansible_host=127.0.0.1 这样的方式去设定,关於 Ansible 内建的变数,可以参考这个列表

把上面的设定存为 hosts 之後,可以在电脑上面执行看看 ansible local -m command -a 'echo Hello, Ansible!',应该就会看到 Ansible 跟你说 hello 还有 warning了。

上面的 warning 看起来是因为 Ansible 现在是使用 /usr/bin/python 的原因,在 ansible.cfg[defaults] 区段加上 interpreter_python = /usr/bin/python3 就好了。

小结

本来想说今天可以顺便把 playbook 的纪录也写完的@@,可是还没写完就已经要下车了...看来只好明天再补完。


<<:  Day23 Portal

>>:  【Day23-降维】相信你的眼睛,在训练模型之前一定要做的事情——利用降维技巧检视资料分群状态:PCA, tSNE, SVD, SOM

ISO OSI 参考模型的数据链路层(Data Link layer)-逻辑链路控制(logic link control)

-图片来源:TelecomWorld 101 ISO OSI 参考模型的数据链路层从 IEEE 的...

【Day16】[资料结构]-二元搜寻树Binary Search Tree-实作

二元搜寻树(Binary Search Tree)建立的方法 insert: 新增元素进入树中 de...

Day 11 Analyze images with the Computer Vision service

Computer vision - Process images is key to creatin...

I Want To Know React - 初探 Context

在本章中,我们将介绍 React Context。React Context 与 props 相同,...

20210208-台湾菁英圆桌分享会 (Elite Round Table in Taiwan)

这是我个人的考上Cissp的分享会,其中分享如何有效的念书,提供想考Cissp的朋友一些参考。 ...