Ansible基础简介

Ansible简介###

ansible是一种自动化运维工具,基于paramiko模块开发,用于批量执行任务和发布工作。

Ansible特性###

  • 模块化:调用特定模块,完成一系列特定任务
  • 有Paramiko,PyYAML,Jinja2(模板语言)
  • 支持自定义模块
  • 基于Python语言实现
  • 部署建单,安全,被管理端无需安装agnet,只要配置满足条件的Python版本和OpenSSH(默认已安装),agentless
  • 支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构
  • 幂等性:一个任务执行1遍和执行n遍效果是一样的,不因重复执行带来意外情况
  • 无需代理不依赖PKI(无需ssl)
  • 可使用任何编程语言写模块
  • 较强大的多层解决方案

Ansible架构及原理###

Ansible主要组成部分###

  • Ansible Playbook:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行。
  • inventory:Ansible管理主机的清单/etc/ansible/hosts
  • Modules:Ansible执行命令的功能模块,多数为核心模块,也可以自定义
  • API:供第三方调用的的程序接口

Ansible 主要操作对象###

  • HOSTS主机
  • NETWORK网络设备

注意事项####

  • 执行Ansible的主机一般是主控端,中控,MASTER或堡垒机
  • 主控端,被控端Python版本(主控端:Python2.6以上,被控端:如Python版本小于2.4需要安装python-simplejson)
  • 被控端如果开启SElinux需要安装libselinx-python
  • Windows不能做主控端

Ansible执行过程###

Ansible部署方式###

GIT方式:
git clone https://github.com/ansible/ansible.git --recursive
cd ansible
source ./hacking/env-setup

pip方式:
pip3 install --upgrade pip
pip3 install ansible --upgrade

yum 方式:
yum -y install ansible

Ansible相关配置###

/etc/ansible/ansible.cfg 主配置文件
/etc/ansible/hosts 主机清单
/etc/ansible/roles/  存放角色目录

Ansible 程序###

/usr/bin/ansible 主程序,临时命令执行工具
/usr/bin/ansible-doc 查看配置文件,模块功能查看工具
/usr/bin/ansible-galaxy 下载/上传优秀代码或roles模块的官方平台
/usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
/usr/bin/ansible-pull 远程执行命令的工具
/usr/bin/ansible-vault 文件加密工具
/usr/bin/ansible-console 基于console界面与用户交互的执行工具 

posted @ 2020-01-16 02:15  一毛丶丶  阅读(202)  评论(0编辑  收藏  举报