首页 企业版 如何开始使用 Ansible

如何开始使用 Ansible

by 访客作者

Ansible 是跨多台机器大规模部署更改的好方法。 例如,我用它在新机器上进行一些基本设置并同时更新多个主机。 同样重要的是要记住,Ansible 不仅用于家庭实验室环境,而且在企业环境中也非常流行,这使其成为一项非常有价值的技能。

Ansible 是跨多台机器大规模部署更改的好方法。 例如,我用它在新机器上进行一些基本设置并同时更新多个主机。 同样重要的是要记住,Ansible 不仅用于家庭实验室环境,而且在企业环境中也非常流行,这使其成为一项非常有价值的技能。

在新机器上设置 Ansible

首先,我们需要安装 ansible 包,它应该很简单:

`sudo apt update && sudo apt install ansible`

我们需要创建我们的 Ansible 目录来处理:

`mkdir ~/ansible && cd ~/ansible`

您现在应该位于本地计算机上的 Ansible 目录中。

Ansible 概览

我们使用 Ansible 的两个主要功能,存储所有主机的库存,以及包含在主机上执行的“指令”的剧本。 为了让 Ansible 读取我们的剧本并执行操作,它必须知道主机在哪里,也就是清单文件是什么。 它只是所有主机的“清单”。

现在我们有了 playbook 本身,一旦 Ansible 读取了清单并知道所有主机,它就会开始寻找要做什么。 那就是剧本,它只是一个简单的 YAML 文件,它利用“模块”来执行任务。 有关所述模块的文档可以在 网站. 如果有什么不清楚的地方,这个[初学者 Ansible 视频] NetworkChuck 在解释事情方面做得很好。

创建我们的 Ansible 库存

现在我们对 Ansible 及其功能有了基本的了解,我们可以创建清单了。 格式可以是 YAML 或 INI,为了简单起见,我们将使用 INI 并且只添加一个主机。

这是一个示例文件:

清单.ini:
“`伊尼
[强大的]
192.168.1.78
“`

在你的 ansible 目录中将其命名为 `inventory.ini`。 该文件创建了一个“组”,其中包含一个主机“192.168.1.78”。 稍后我们可以在我们的剧本中使用它。 你可以根据你的设置给它任何你想要的组名和 IP。 如果需要,您还可以向组中添加更多主机。

部署 Ansible 剧本

首先,我们要验证 Ansible 是否正常工作:

请记住,我们的 ssh 公钥必须位于我们尝试访问的主机上的 authorized_keys 文件中。 否则,此命令将失败。 我们使用的是“powerful”组,但使用您命名的任何名称。

`ansible -i ./inventory.ini -m ping -u 管理员强大`

如果可行,我们可以在该节点上提供我们的剧本。

我们正在部署的 playbook 只是更新系统,重新启动它,然后等待它重新上线。 如果组中有多个节点,它会一个接一个地遍历每个节点,等待前一个重新上线,然后再重新启动下一个。 如果您使用类似的东西,这会给节点上的服务足够的时间来关闭和迁移 码头工人群。

更新.yml:
“`yaml
– 名称:升级所有节点并重启
收集事实:没有
主机:“{{ variable_hosts }}”
变成:是
序列号:1

任务:
– 名称:更新和升级 | {{ inventory_hostname }}
易于:
# 强制向后兼容
force_apt_get:是的
更新缓存:是的
升级:'是'

– 名称:重新启动 | {{ inventory_hostname }}
重启:
# 重启后等待节点恢复在线的时间
重启超时:300
# 上一个任务(apt)完成后等待多长时间重启
pre_reboot_delay:60

– 姓名:平 | {{ inventory_hostname }}
ping:

– 名称:暂停 | {{ inventory_hostname }}
暂停:
分钟:5
“`

`ansible-playbook -i ./inventory.ini -e variable_hosts=powerful -u 管理员 -K ./update.yml`

![执行剧本的图片](./002-ansible-playbook-executed.png)

旗帜说明:
– -i:指定清单文件。
– -e:我们必须指定主机,在剧本中我们有一个变量“variable_hosts”,这是传递给剧本的内容。
– -u:这是用于在主机上运行命令的用户。
– -K:这告诉剧本提示用户输入 sudo 密码,否则剧本将失败。

关闭的思考

Ansible 是一种非常强大且用途广泛的工具,可用于多种用途。 我们在这篇文章中仅仅触及了皮毛,但您应该继续试验和自动化任务以了解更多信息。 无论是自动化 Kubernetes 部署,还是像我们今天所做的那样更新您的系统。

Ansible 网站

-伊桑·爱德华兹

参与 StorageReview

电子报 | YouTube | LinkedIn | Instagram | Twitter | Facebook | TikTokRSS订阅