ansible playbook

Playbooks 与 adhoc 相比,是一种完全不同的运用 ansible 的方式,是非常之强大的.

简单来说,playbooks 是一种简单的配置管理系统与多机器部署系统的基础.与现有的其他系统有不同之处,且非常适合于复杂应用的部署.

Playbooks 可用于声明配置,更强大的地方在于,在 playbooks 中可以编排有序的执行过程,甚至于做到在多组机器间,来回有序的执行特别指定的步骤.并且可以同步或异步的发起任务.

我们使用 adhoc 时,主要是使用 /usr/bin/ansible 程序执行任务.而使用 playbooks 时,更多是将之放入源码控制之中,用之推送你的配置或是用于确认你的远程系统的配置是否符合配置规范.

在如右的连接中: ansible-examples repository ,有一些整套的playbooks,它们阐明了上述的这些技巧.我们建议你在另一个标签页中打开它看看,配合本章节一起看.

阅读更多

ansible 模块

模块(也被称为 “task plugins” 或 “library plugins”)是在 Ansible 中实际在执行的.它们就 是在每个 playbook 任务中被执行的.你也可以仅仅通过 ‘ansible’ 命令来运行它们.

我们经常会通过命令行的形式使用ansible模块,ansible自带很多模块,可以直接使用这些模块。
目前ansible已经自带了200+个模块,我们可以使用ansible-doc -l显示所有自带模块,还可以使用ansible-doc 模块名,查看模块的介绍以及案例。需要注意的是,如果使用ad-hoc命令,ansible的一些插件功能就无法使用,比如loop facts功能等。
命令用法:ansible <host-pattern> [options]

阅读更多

ansible_inventory

主机清单inventory

Inventory主机清单

  • ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventory file中将其分组命名
  • 默认的inventory file为/etc/ansible/hosts
  • inventory file可以有多个,且也可以通过Dynamic inventory来动态生成
阅读更多

ansible Ad-Hoc Commands

所谓 ad-hoc 命令是什么呢?

(这其实是一个概念性的名字,是相对于写 Ansible playbook 来说的.类似于在命令行敲入shell命令和 写shell scripts两者之间的关系)…

如果我们敲入一些命令去比较快的完成一些事情,而不需要将这些执行的命令特别保存下来, 这样的命令就叫做 ad-hoc 命令.

Ansible提供两种方式去完成任务,一是 ad-hoc 命令,一是写 Ansible playbook.前者可以解决一些简单的任务, 后者解决较复杂的任务.

阅读更多

ansible 用法

ansible的常用模块

  • command

ansible的默认模块,不指定-m参数的时候,使用的就是command模块;
常见的命令都可以使用,但命令的执行不是通过shell来执行的,所以< > | and & z这些操作都不可以,不支持管道,没法批量执行命令

  • shell模块:

使用shell模块的时候默认是通过/bin/sh来执行的,所以在终端输入的各种命令都可以使用

  • scripts模块

使用scripts模块可以在本地写一个脚本,在远程服务器上执行

阅读更多

ansible_intro

Ansible 概览

这部分内容对所有用户均有用。 你需要了解 Ansible 的使用背景才能在各类场景下使用他的自动化功能。本页内容是你深入理解其它内容的基础。

  • 管理机
  • 受控节点
  • Inventory 仓库
  • Modules 模块
  • Tasks 任务
  • Playbooks 任务剧本

    管理机

    任何安装了 Ansbile 的服务器,你都可以使用 ansible or ansible-playbook 命令。 任何安装了 Ansbile 的机器都可以做为管理节点,便携式计算机,共享桌面和服务器都可以。 你可以配置多个管理节点。唯一需要注意的是,管理节点不支持 Windows 系统。

受控节点

Ansbile 管理的服务器或者网络设备都称为受控节点。 受控节点有时候也叫做 “hosts” ( 主机 ). 受控节点不需要安装 Ansible.

阅读更多