ansible系列(1)--ansible基础



1. ansible概述

  • Ansible 是一个 IT 自动化的“配置管理”工具,自动化主要体现在 Ansible 集成了丰富模块,以及强大的功能组件,可以通过一个命令行完成一系列的操作。进而能减少我们重复性的工作,以提高工作的效率。
  • 创始人,Michael DeHaanCobbler Func 的作者)。
  • 2015-10-17,Red Hat宣布收购。

1.1 ansible的功能

  • 批量执行远程命令,可以对N多台主机同时进行命令的执行。
  • 批量配置软件服务,可以进行自动化的方式配置和管理服务。
  • 实现软件开发功能, jumpserver 底层使用 ansible 来实现的自动化管理。
  • 编排高级的IT任务, AnsiblePlaybook 是一门编程语言,可以用来描绘一套 IT 架构。

1.2 ansible的特性

  • 容易学习:无代理,基于SSH实现,不像 saltstack既要学客户端与服务端,还需要学习客户端与服务端中间通讯协议;
  • 操作灵活: Ansible 有较多的模块,提供了丰富的功能、 playbook 则提供类似于编程语言的复杂功能;
  • 简单易用:体现在 Ansible 一个命令可以完成很多事情;
  • 安全可靠:因为 Ansible 使用了 SSH 协议进行通讯,既稳定也安全;
  • 移植性高:可以将写好的 playbook 拷贝至任意机器进行执行;
  • 幂等性:一个任务执行1遍和执行n遍效果一样,不会因为重复执行带来意外情况;

1.3 ansible的架构

image

  • ANSIBLE PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YAML文件;

  • INVENTORYAnsible管理主机的清单/etc/anaible/hosts;

  • MODULESAnsible执行命令的功能模块,多数为内置核心模块,也可自定义;

  • PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用;

  • API:供第三方程序调用的应用程序编程接口;

  • Ansible主要操作对象:HOSTS主机,主机组和NETWORKING网络设备;

利用ansible实现管理的方式:

  • Ad-Hoc

    即执行单条的ansible命令,主要用于临时命令使用场景;

  • Ansible-playbook

    主要用于长期规划好的,大型项目的场景,需要有前提的规划;

    执行过程:

    将已有编排好的任务集写入Ansible-Playbook

    通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行。

1.4 ansible注意事项

  • 执行ansible的主机一般称为主控端,中控,master或堡垒机;
  • 主控端Python版本需要2.6或以上;
  • 被控端Python版本小于2.4需要安装python-simplejson
  • 被控端如开启SELinux需要安装libselinux-python
  • windows不能做为主控端;
  • 建议使用ssh的秘钥验证方式管理被控主机;
posted @ 2021-08-18 16:38  向往自由的独行者  阅读(314)  评论(0编辑  收藏  举报