Ansible初步了解

Ansible 就是一个配置管理系统,可以帮助我们完成一些批量性任务,或者一些重复的工作.

Ansible特性:

  • 模块化:调用特定模块,完成特定任务
  • 有Paramiko, PyYAML, Jinja2(模板语言)三种关键模块
  • 支持自定义模块
  • 支持python语言实现
  • 部署简单,基于python和ssh(默认安装) agentless
  • 安全, 基于openssh
  • 支持playbook 编排任务
  • 幂等性:一个任务执行1遍和n遍效果一样,不会因为重复执行带来意外结果
  • 无需代理,不依赖PKI(无需ssl)
  • 可以使用任何变成语言写模块
  • YAML格式,编排任务,支持丰富的数据结构
  • 强大的多层解决方案

    Ansible 架构

    工作原理

    主要组成部分功能说明:
  • PLAYBOOK:任务集,编排定义ansible任务集的配置文件,由ansible依次执行,通常是json格式YML文件
  • INVENTORY: ansible管理主机的名单 /etc/ansible/hosts
  • MODULES:执行命令的功能模块,多数为内置的核心模块,也可以自定义 ansible -doc -l
  • PLUGINS:模块功能的补充,各种插件,但是不常用
  • API:供第三方程序调用的片成接口。
  • ANSIBLE:组合INVENTORY、API、MODULE、PLUGIN的绿框, ansible命令工具,为核心执行工具

注意事项

  • 执行ansible的主机,一般是主控端,中控,堡垒机
  • 主控端python需要2.6以上
  • 被控端python需要小于2.4 ,安装python-simplejson
  • 被控端如开启SELinux,需要安装libselinux-python
  • windows不能作为主控端