一、ansible基础

一、ansible概述

Ansible是一个IT自动化的配置管理工具,自动化主要体现在Ansible集成了丰富的模块,以及强大的功能组件,可以通过一个命令完成一系列的操作。

  • ansible的功能
    • 批量执行远程命令,可以同时对N台主机执行。
    • 批量配置软件服务,可以进行自动化的方式配置和管理服务
    • 实现软件开发功能
    • 编排高级的IT任务,ansible的playbook是一门编程语言,可以用来描述一套IT架构。
  • ansible的特性
    • 容易学习:无代理,基于ssh实现,不像saltstack既要学习客户端与服务端,还需要学习客户端与服务端中间通讯协议;
    • 操作灵活:ansible有较多的模块,提供了丰富的功能、playbook则提供了类似于编程语言的复杂功能
    • 简单易用:体现在ansible一个命令可以完成很多事情
    • 安全可靠:因为ansible使用了SSH协议进行通讯,既稳定也安全;
    • 移植性高:可以将写好的playbook拷贝到任意机器执行;
    • 幂等性:一个任务执行1遍和执行N遍效果一样,不会因为重复执行带来的意外情况;
  • ansible的架构图

  • ansible工作原理

    • ansible-playbooks:任务剧本,编排定义任务集的文件,通常是json或者yaml格式
    • ansible:核心,实现管理的方式
    • inventory:管理主机清单,/etc/ansible/hosts
    • modules:ansible执行命令的功能模块,多数为内置核心模块,也可自定义;
    • Plugins:完成模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用;
    • API:供第三方程序调用的应用程序编程接口;
    • Ansible主要操作对象:HOSTS主机,主机组和NETWORKING网络设备;

利用ansible实现管理的方式ad-hoc:执行单条命令ansible-playbook:主要用于长期规划好的大型项目场景

ansible命令执行过程

  1. 加载自己的配置文件,默认是 /etc/ansible/ansible.cfg;
  2. 查找对应的主机配置文件,找到要执行的主机或者组
  3. 加载自己对应的模块文件,如command
  4. 通过ansible将模块或命令生成对应的临时py文件(Python脚本),并将该文件传输至远程服务器;
  5. 对应执行用户的根目录的.ansible/tmp/xxx.py文件;
  6. 给文件+x执行权限
  7. 执行并返回结果;
  8. 删除临时py文件,sleep 0 退出;

ansible注意事项

  1. 执行ansible的主机一般称为主控端,中控,master或者堡垒机;
  2. 主控端Python版本需要在2.6以上;
  3. 被控端Python版本小于2.4需要安装Python-simplejson
  4. 被控端如开启SELinux需要安装libselinux-python
  5. windows不能作为主控端
  6. 建议使用ssh的秘钥验证方式管理被控主机
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁华依在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值