(3)运维工具ansible-架构和核心组件

ansible架构如下图:

                                图 ansible架构图

核心组件:

  1. Host Inventory

定义ansible管理的主机,可以进行分组管理。

  1. Core Modules

Ansible核心模块,ansible中模块就是用来指定对远程主机具体的操作,比如执行命令模块command、创建文件模块file等(ansible自带的模块)。

  1. Custom Modules

自定义模块,如果核心模块不足以完成某种功能就可以使用任何语言自定义模块。

  1. Connection Plugins

连接插件是Ansible用来连接被管理端的一种方式,比如客户端运行了SSH服务,Ansible利用SSH服务跟客户端进行通信,Ansible是通过Python编写的,而Python有一个模块paramiko支持并行连接SSH。Ansible事实上就是使用paramiko进行连接被管理端。但是它还支持其他的连接方法需要插件(如zeroMQ就是C/S模式工作)。

  1. Plugins

第三方插件支持,如email、logging模块,只要有Python编写能力就可以自行编写插件。

  1. Playbooks

剧本或编辑是Ansible的任务配置文件、将多个任务定义在剧本中由Ansible自动执行,Playbooks最大的好处就是支持幂等,也就是说相同的任务不管执行多少次其结果是不变的,带来的好处也就是持续可维护性。

对管理主机的要求

目前,只要机器上安装了 Python 2.6 或 Python 2.7 (windows系统不可以做控制主机),都可以运行Ansible.

主机的系统可以是 Red Hat, Debian, CentOS, OS X, BSD的各种版本,等等.

自2.0版本开始,ansible使用了更多句柄来管理它的子进程,对于OS X系统,你需要增加ulimit值才能使用15个以上子进程,方法 sudo launchctl limit maxfiles 1024 2048,否则你可能会看见”Too many open file”的错误提示.

发布了3 篇原创文章 · 获赞 2 · 访问量 305

猜你喜欢

转载自blog.csdn.net/xuxin555/article/details/90053799