Ansible是一个简单的强大的无代理的自动化运维工具。可以管理强大的自动化任务,并且可以适应许多不同的工作流和环境。
01
Ansible概念和架构
▷ 控制节点
在Ansible的架构中有两种类型的机器,一类是控制节点,一类是被管理主机。Ansible被安装并且运行在控制节点上,并且这类机器上有你的项目文件的副本。控制节点可以是管理员的笔记本,也可以是一个被很多管理共同使用的系统,也可以是一个运行Ansible Tower的服务器。
▷ 被管理主机-Inventory
被管理主机被列在Inventory中,inventory将这些被管理主机组织进不同的group中进行管理。inventroy 可以被定义在静态的text文件中,或者被定义在动态的脚本中。
▷ Playbook
不用写复杂的脚本,Ansible用户创建高等级的plays来保证主机处在特定的状态。一个剧本在主机上执行一系列的任务。这些剧本在text文件中被表达为YAML的格式。一个包含一个或更多的play文件叫做 playbook。
▷ Task
每个task运行一个带着特定参数的module,每个module都是一段很少的代码,该代码可以用Python,PowerShell或其他的语言写。每个模块本质上都是工具包中的工具。Ansible附带了数百个可用于执行各种 自动化任务的有用模块。这些模块可以操作系统中的文件,安装软件或者做系统调用。
▷ Ansible插件
Ansible也使用插件。插件是您可以添加到Ansible来扩展它,并且能适应新用途和平台的代码。
▷ Ansible架构
Ansible架构是无代理的。通常,当一个管理员运行一个Ansible Playbook或者ad hoc命令时,控制节点通过使用SSH或WinRM来连接到被管理主机。这意味着在被管理主机客户端不必安装特定的代理软件,并 且不必允许特殊的网络流量传输到非标准端口

02
Ansible安装与部署
(1)安装软件包
[student@workstation ansible]$ sudo yum -y install ansible
(2)创建Inventory文件


(3)创建配置文件

(4)验证

检查ansible.cfg文件和serverc服务器的sudoers配置文件,发现student用户没有配免密提权。
改配置文件,增加student用户的配免密提权


(5)批量增加用户

运行playbook并验证

(6)使用变量生成主机硬件报告


03
总结
● ansible基于Python开发,集合了众多老牌运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
● ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
● Ansible特性包括:不需要在被管控主机上安装任何客户端;无服务器端,使用时直接运行命令即可。
● Ansible基于模块工作,可使用任意语言开发模块;使用yaml语言定制剧本playbook;基于SSH工作;可实现多级指挥。
● 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;使用python编写,维护更简单,支持sudo。
● 连接插件connection plugins:负责和被管控端实现通信;
host inventory:指定操作的主机,是一个配置文件里面定义管控的主机。
● 各种模块核心模块、command模块、自定义模块;借助于插件完成记录日志邮件等功能;剧本执行多个任务时,可以让被管控端一次性运行多个任务。
点击蓝字
关注我们




