Ansible 自动化运维基础知识简介

原创 浪子丶刘少  2019-08-14 09:30  阅读 224 次 评论 1 条 百度未收录

Ansible可以说是使用起来非常方便的一个自动化运维工具了,可以说,目前对于运维人员来说是一个必不可少的工具,下面我们就简单来介绍下这款自动化运维工具:

常用自动化运维工具

运维工具
开发语言
安装方式
备注
Ansible
python
Agentless
中小型应用环境
Saltstack
python
一般需要部署agent
执行效率高
Puppet
ruby
部署复杂,需要agent
重型,大型环境
Fabric
python
agentless
Chef
ruby
国内应用少
Cfengine
func

ansible官网地址

https://www.ansible.com/

ansible特性

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

Ansible主要组成部分

  • ANSIBLE PLAYBOOKS:任务剧本(任务集),编排定义ansible任务集的配置文件,有ansible顺序依次执行,通常是JSON格式的YML文件
  • INVENROTY:ansible管理主机的清单/etc/ansible/hosts
  • MODULES:ansible执行命令的功能模块,多数为内置核心模块,也可自定义
  • PLUGINS:模块功能的补充,如链接类型插件,循环插件,变量插件,过滤插件等。不常用。
  • API:供第三方程序调用的应用程序编程接口
  • ANSIBLE:组合INVENTORY、API、MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具

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界面与用户交互的执行工具

Ansible命令执行过程

  1. 加载自己的配置文件,默认/etc/ansible/ansible.cfg
  2. 加载自己对应的模块文件,如command
  3. 通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件
  4. 给文件+X执行
  5. 执行并返回结果
  6. 删除临时py文件,sleep 0退出

Ansible执行状态

  • 绿色:执行成功并且不需要做改变的操作
  • 黄色:执行成功并且对目标主机做变更
  • 红色:执行失败
本文地址:https://www.ezliushao.com/312.html
加入我们:请加入刘少技术博客交流群:扫描二维码刘少技术博客的QQ交流群 | 浪子丶刘少 QQ:1150110267(注:微信暂停添加好友)
版权声明:本文为原创文章,版权归 浪子丶刘少 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

  1. 杂烩网
    杂烩网 【新手】 @回复

    不错!