自动运维工具Ansible

personglaze c

#Tools

⚙️ Ansible:自动运维工具

Ansible 是一个来自 Red Hat 的运维工具。它可以自动化,批量进行许多操作。它适合用来在已有的服务器上安装和管理软件。

我日常会折腾 VPS,在不同的 VPS 上试着跑一跑日常需要的服务或软件。其实常用的软件也就那几个,每次折腾 VPS 都会浪费很多时间在重复安装和管理软件。那么我们可以把这几个软件的安装和管理写成 Ansible Playbook。以后我们就不再需要重复安装和管理软件的步骤,只需要执行 Playbook 就可以了。用自动化解放了我们的双手。

Ansible 的 Playbook 编写采用渐进式,用户需要写下每一步需要做什么。Ansible 有丰富的 Role(库,插件,比如 安装 Node.js),组件支持,大部分操作都可以用现成的 Role 或者组件实现,不需要自己额外进行编写。

Ansible 没有 Master 的概念,任何一个节点都可以推送命令。Ansible 通过 SSH 连接上节点后,执行对应的命令。由于采用 SSH 进行命令推送,接受命令推送的节点也不需要安装 Ansible 客户端。

因此对于我来说最好的实践便是在本地安装好 Ansible,注意它不支持 Windows,需要将其装在 Docker 或者 WSL 中。将常用的软件配置写成 Ansible Playbook。介于丰富的组件和 Role,编写 Ansible Playbook 并不难。每当创建新的 VPS 时,我们执行相应的 Ansible Playbook 就可以完成所有工作。比如我写了 Tiny Tiny Rss,Unblock Netease Music 的 Playbook,如果以后更换 VPS 就可以很方便的安装这些软件。

除了使用不同的 Role,我们也需要对这些依赖进行管理。我们可以把用到的 Role 放到 Requirement.yml 中,这可以保证换个环境,在安装完依赖后,我们之前写的 Playbook 还可以正常运行。

最后推荐一个 视频教程,视频内容很基础,可以帮助我们跟随作者的思路快速理解 Ansible 的各种抽象概念。

频道:@NewlearnerChannel

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Menu