Ansible自动化

自动化运维工具

    ansible        小型公司        通过SSH远程管理受控节点
        saltstack    中型公司        通过agent代理
        puppet        
        chef

Ansible架构

    Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。主要包括:
        1、连接插件connection plugins:负责和被监控端实现通信;
        2、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
        3、各种模块核心模块、command模块、自定义模块;
        4、借助于插件完成记录日志邮件等功能;
        5、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

        核心:ansible
        核心模块(Core Modules):这些都是ansible自带的模块
        扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
        插件(Plugins):完成模块功能的补充
        剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
        连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有

    连接插件

        主机群(Host Inventory):定义ansible管理的主机

Ansible安装

    在Fedora上:
        $ sudo dnf install ansible
        在RHEL上:
        $ sudo yum install ansible
        在 CentOS 上:
        $ sudo yum install epel-release
        $ sudo yum install ansible

Ansible常用参数

  m:要执行的模块,默认为command
  -a:指定模块的参数
  -u:ssh连接的用户名,默认用root,ansible.cfg中可以配置
  -b,--become:变成那个用户身份,不提示密码
  -k:提示输入ssh登录密码,当使用密码验证的时候用
  -s:sudo运行
  -U:sudo到哪个用户,默认为root
  -K:提示输入sudo密码,当不是NOPASSWD模式时使用
  -C:只是测试一下会改变什么内容,不会真正去执行
  -c:连接类型(default=smart)
  -f:fork多少进程并发处理,默认为5个
  -i:指定hosts文件路径,默认default=/etc/ansible/hosts
  -I:指定pattern,对已匹配的主机中再过滤一次
  -list-host:只打印有哪些主机会执行这个命令,不会实际执行
  -M:要执行的模块路径,默认为/usr/share/ansible
  -o:压缩输出,摘要输出
  --private-key:私钥路径
  -T:ssh连接超时时间,默认是10秒
  -t:日志输出到该目录,日志文件名以主机命名
  -v:显示详细日志

Ansible自动化

上一篇:API 接口管理平台


下一篇:容器化-Docker-2-简述容器化技术