Ansible简介
Ansible由Michael DeHaan(他同时也是著名工具软件Cobber与Func的开发者)发起、开发、创建,于2012年2月首次发布,它使用Python作为开发语言,由Paramiko和PyYAML两个关键模块构建。Ansible的编排引擎可以出色地完成配置管理、流程控制、资源部署等多方面的工作,与其他IT自动化产品相比较,Ansible为你提供一中不需要安装客户端软件、管理简便、功能强大的基础架构配置、维护工具。
Ansible擅长的4个领域:
- 1.配置管理。
- 2.服务即时开通。
- 3.应用部署。
- 4.流程编排。
Ansible有如下优点:
- 1. 简单易用:Ansible 无需在被管理节点上安装代理软件,使用 SSH 进行通信,这使得它的部署非常快速且易于管理。
- 2. 模块化:Ansible 使用模块来完成各种任务,这些模块可以是系统自带的也可以是用户自定义的。
- 3. 声明式语言:Ansible 使用 YAML 格式的文件(称为 playbook)来描述配置状态,使得配置管理更为直观。
- 4. 可扩展性:Ansible 支持动态主机列表,可以轻松地扩展到成千上万台服务器。
- 5. 社区支持:由于其开放源代码特性,Ansible 拥有一个庞大的社区,提供了丰富的文档和支持。
Ansible的几个关键概念:
- -Inventory (清单):定义了 Ansible 要管理的主机列表,以及这些主机的分组方式。
- - Playbook (剧本):是一系列任务的集合,用于定义对主机或HOST-GROUP1进行配置的方式。
- - Modules (模块):执行特定任务的小程序,如安装软件包、启动服务等。
- - Tasks (任务):playbook 中的一个步骤,通常调用一个模块来完成一个具体的工作。
- - Handlers (处理程序):类似于 task,但只有当其他 task 触发它们时才会运行。
- - Facts (事实):Ansible 在目标机器上收集的信息,例如操作系统版本、内核版本等。
Ansible的安装
Ansible 可以在大多数 Linux 发行版上安装,并且可以通过 Python 包管理器 pip 或者通过包管理器如 yum, apt-get 等来安装。
在 Debian/Ubuntu 上安装 Ansible:
sudo apt update
sudo apt install ansible
在 Red Hat/CentOS 上安装 Ansible:
sudo yum install epel-release
sudo yum install ansible
在 Windows 上安装 Ansible:
首先安装 Python 和 pip,然后使用 pip 安装 Ansible:
pip install ansible
初次使用Ansible
1.创建 Inventory 文件
Inventory 文件(清单文件)定义了 Ansible 将要管理的目标主机。这些文件通常保存在 `/etc/ansible/hosts` 文件中,但也可以指定其他位置。
示例 Inventory 文件:
[webservers]
192.168.1.10
192.168.1.11
[databases]
192.168.1.20
192.168.1.21
运行 Ad-hoc Commands
Ad-hoc commands 允许你直接在远程主机上运行单个命令。这对于调试和快速测试非常有用。
一个最简单的示例:
ansible webservers -m ping
注:这个命令将向所有标记为 "webservers" 的主机发送一个 ping 请求。
Ansible会像SSH那样试图用你的当前用户名来连接你的远程机器.要覆写远程用户名,只需使用’-u’参数. 如果你想访问 sudo模式,这里也有标识(flags)来实