Skip to content

Ansible Inclusions

在我们写代码的时候为了能够使代码能够复用,可以将相关的代码封装成函数,通过调用函数即可重复利用之前的代码,除了函数这种形式,在 Java 和 Python 中通常还会使用 import 来导入相关的 Packages ,来减轻相关的工作量,也更加容易管理。那么在 Ansible 上是否也存在这样的操作呢?答案可定是有的。
...continue reading "Ansible 之旅(十一) Ansible Inclusions"

Ansible Facts

Ansible Facts 是 Ansible 在托管主机上自动收集的变量。它是通过在执行 Ad hoc 以及 Playbook 时使用 setup 模块进行收集的,并且这个操作是默认的。因为这个收集托管主机上的 Facts 比较耗费时间,所以可以在不需要的时候关闭 setup 模块。收集的 Facts 中包含了托管主机特有的信息,这些信息可以像变量一样在 Play 中使用。
...continue reading "Ansible 之旅(十) Ansible Facts"

1

Ansible 变量

Ansible 本身支持变量,可以在 Ansible 项目中方便的使用变量来存放数据,达到重用的目的。举个例子,通过 Ansible 部署四台机器上的 WEB 服务,但是要求每个 WEB 服务的配置文件中的某个参数不一样,如监听的 IP ,假设不使用变量的话,可能需要写 4 个 Play ,但是使用了变量,只需写一个 Play ,然后给不同的托管主机设置不同的变量即可。
...continue reading "Ansible 之旅(九) Ansible 变量"

Ansible 模块

Ansible 为管理员提供了超过 1300+(目前不断的新增中) 的模块来面对不同的任务,关于模块的文档在官网可以访问:https://doc.ansible.com
针对每个模块,Ansible 文档都贴心的提供了模块的说明,参数,以及对新手来说非常有用的参考例子。除了访问在线文档外,还可以通过 ansible-doc 命令来查询模块的文档,-l 选项可以列出系统中所有模块的名称和简单的描述。

...continue reading "Ansible 之旅(八) Ansible 模块"

Ansible Playbook

什么是 Playbook ?首先 Play 是一组有序的 tasks ,这些任务是可以在 inventory 中的主机执行,而 Playbook 它是一个文本文件,里面包含了一个或多个 Play
Play 可以允许将复杂、冗长的手动管理任务转换为可以预测成功结果的可重复例程。在 Playbook 中,可以保存可读和可执行的 tasks 队列,可以按照应用部署的步骤来编写 Playbook 来进行部署应用或基础架构。

...continue reading "Ansible 之旅(七) Playbook"

动态 Inventory

之前介绍的静态 inventory 很容易编写,但是这只适合管理小型的基础设施架构,在管理大型基础设施架构时,机器可能会经常变来变去,如现今的私有云公有云,此时很难再去保持静态的 inventory 不变,遇到这种情况静态 inventory 已经无法较好的管理托管主机了。

...continue reading "Ansible 之旅(六) 管理 Inventory"

通过 Ansible 执行 Ad Hoc

所谓的 Ad Hoc 简而言之就是 临时命令
Ad Hoc 是一种快速执行单个 Ansible 任务的方法,它不需要为下次运行而保存起来,非常简单,只需运行一行命令,不需要写到 Ansible Playbook 当中。所以 Ad Hoc 更加注重解决一些简单或平时工作中临时遇到的任务,而 Ansible Playbook 更适合解决复杂的且需要固化下来的任务。

...continue reading "Ansible 之旅(五) 运行 Ad Hoc"

配置 Ansible

Ansible 可以通过修改其配置文件来改变 Ansible 的行为,在控制节点中,配置文件可能存在以下位置:
1. /etc/ansible/ansible.cfg 此配置文件是 Ansible 默认配置文件位置,作用于全局。
2. ~/.ansible.cfg 此配置文件是存放用户家目录中的配置文件,作用于这个用户。
3. ./ansible.cfg 此配置文件是存放在某个目录下,作用与这个目录。
4. $ANSIBLE_CONFIG 通过变量来指定配置文件的路径,作用于全局。
由上可知配置文件可以存放在不同的位置,但是推荐的做法是在一个目录中创建 ansible.cfg ,将项目所需的 inventoryplaybook 都放在此目录中,这样配置文件就可以针对不同的项目,来设置不同的属性。然而不同的位置的配置文件会不会相互影响呢?它们之间存在什么关系呢?

...continue reading "Ansible 之旅(四) 配置 Ansible"

Inventory 概念

Inventory 是一个文本文件,默认存放在 /etc/ansible/hosts中,在里面定义了 Ansible 管理的主机的集合,这些主机称之为托管主机。为了更好的管理,这些托管主机可以分配到组中。组可以包含子组,主机可以是多个组的成员。另外在 Inventory 中也可以设置主机变量和主机组变量(在后期讨论变量的时候会详细描述)。
Inventory 主要有两种方式定义:静态清单动态清单

...continue reading "Ansible 之旅(三) Ansible Inventory"

控制节点安装前提

Ansible 安装非常简单,只需要在控制节点安装即可。
但是要注意的是控制节点必须是 Linux 或 Unix 系统,Windows 系统可以是托管主机,但是不能作为控制节点,因为 Ansible 无法安装在 Windows 系统上。
...continue reading "Ansible 之旅(二) 安装 Ansible"