Day 23:Ansible 的基本介绍

昨天差不多讲完这几天的目标了,今天就来简单介绍 Ansible 这套自动化工具吧。顺便帮我争取一点写 code 的时间。

安装

首先是如何安装,话说我本来是想找找 Ansible 有没有官方的 docker image,结果翻了一下好像没看到,ansible/ansible 已经 4 年没更新了。

那麽就乖乖在本机上面安装吧,透过 pip 就可以了。

pip install ansible

不过需要注意的是若是本来就有安装旧版本的话,这样直接安装会出错,需要先删掉旧的 Ansible,具体的步骤可以参考官方文件,有比较完整的描述。

基本观念

接下来谈谈 Ansible 的基本概念,我们需要 Ansible 的场景通常是要在一些机器上面去执行一些任务,像是修改一些 config、安装套件等等。这种时候,我们下 ansible 或是 ansible-playbook 指令的电脑就被称为 control node。然後 Ansible 不能使用 Windows 机器作为 control node,并且我们可以有多个 control node。

关於更多有关 Windows 的限制,可以参考官方的 Windows Guide

而相对於 control node,就是我们具体要执行任务的那些机器,这些机器称为 managed node,有时候也称做 hosts,在这些机器上面并不需要安装 Ansible,但是至少要确保可以从 control node 透过 SSH 连上 managed node,才能在上面执行指令,另外也需要开 SFTP,因为 Ansible 预设是使用 SFTP 传递档案的(或是可以透过设定改成 SCP),最後一点就是,需要安装 Python。

更详细的资讯,可以参阅官方的 Managed node requirements

接下来,使用 Ansible 的时候我们通常会把需要操作的 managed node 们的连线资讯(IP、ssh key 路径等)写成一个档案,称做 inventory。

我们在 Ansible 中执行的最小单位称做 task,并且可以使用 playbook 来管理一整组 task,有点类似 command 跟 shell script 的关系,但是 playbook 并不只是把 task 单纯绑在一起,还会提供一些机制帮助我们更好去管理 task。

小结

今天简单的写了一下 Ansible 的基本知识,明天再来多讲一些有关 inventory 和 playbook 的部分吧。


<<:  [Day24] - Django-REST-Framework User Management

>>:  【Day 22】Go 基础小笔记 III :method / interface

Day 30 - 恭喜我熬过 30 天

完工撒花~ 到了这里 终於完成 30 天挑战了 有追到最後的朋友感谢你们~~ 作为系列文的最後一篇 ...

Day15 Todo List

import React , { useState }from 'react' const Dol...

Day11 - 搜寻文章标题

今天来加入搜寻文章标题的部分。 Layout的部份新增一个EditText以及ImageView,目...

Day 14: 【架构篇】 设计与架构、软件的两大价值 (待改进中... )

「软件架构的目标是最小化 『建置和维护系统所需的人力』」 「架构的规则都是一样的! 年轻设计师可能...

找LeetCode上简单的题目来撑过30天啦(DAY7)

昨天熬夜看小说,今天早上爬不起来就翘班(开玩笑的,是请假 今天赶快发一发文我要来去补眠 今天的题目↓...