昨天简单介绍完 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 的内容,便是定义 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-降维】相信你的眼睛,在训练模型之前一定要做的事情——利用降维技巧检视资料分群状态:PCA, tSNE, SVD, SOM
-图片来源:TelecomWorld 101 ISO OSI 参考模型的数据链路层从 IEEE 的...
二元搜寻树(Binary Search Tree)建立的方法 insert: 新增元素进入树中 de...
Computer vision - Process images is key to creatin...
在本章中,我们将介绍 React Context。React Context 与 props 相同,...
这是我个人的考上Cissp的分享会,其中分享如何有效的念书,提供想考Cissp的朋友一些参考。 ...