一、ansible介绍

ansible运行的基本过程图

需要学习的目标

一、什么是ansible

Ansible首次发布于2012年,作者MichaelDeHaan

  • MichaelDeHaan也是cobbler的作者
  • 于2015年被redhat收购

Ansible是一款自动化运维工具、基于python开发

  • 批量系统配置
  • 批量程序部署
  • 批量运行命令等功能

Ansible是一个it自动化配置管理工具自动化主要体现在absible集成了丰富模块丰富的功能组件,可以通过一个命令行完成一些列的操作。进而减少重复性的工作和维护成本,以提高工作效率。

如在10台服务器上安装nginx服务

假设我们要在10台linx服务器上安装一个nginx服务,手动如何作的?

  • 第一步、ssh登陆NUM(1..n)服务器
  • 第二步、输入对应服务器密码
  • 第三步、安装yum install nginx
  • 第四步、启动systemctl start nginx
  • 第五步、退出登录

如此循环十次

Ansible可以完成这些功能

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

Ansible的特点

  1. 容易学习,无代理模式,不像saltstack既要学客户端与服务端,还需要学习客户端与服务端中间通讯协议
  2. 操作灵活,体现在Ansible有较多的模块,提供了丰富的功能、playbook则提供类似于编程语言的复杂功
  3. 简单易用体现在Ansible一个命令可以完成很多事情。
  4. 安全可靠因为Ansible使用了SSH协议进行通讯,联稳定也安全
  5. 移植性高,可以将写好的playbook拷贝至任意机器进行执行

Ansible的python只能是2.7.5.不能升级到python3

控制端与被控端必须有python

Ansible–version 解析

  • Ansible版本:2.9.72
  • 配置文件:/etc/ansible/ansible.cfg
  • 配置模块查找的路径:
  • /home/gegewu/.ansible/plugins/modules
  • /usr/share/ansible/plugins/modules
  • Python模块路径:/usr/lib/python2.7/site-packages/ansible
  • 执行位置: /usr/bin/ansible

Ansible存在优先级问题

Ansible的配置文件可以存放在任何位置,但配置文件有读取顺序,先Ansible配置做一个基本了解。ansible的配置文件有查找顺序(可通过ansible –version查看):

  1. 最先查找SANSIBLECONFIG变量
  2. 其次查找当前日录下ansible.cfg
  3. 然后查找用户家日录下的.ansible.cfg
  4. 最后查找’etc/ansible/ansible.cfg(认)

例1:测试优先级第二个配置文件项目目录下的ansible.cfg

在家目录创建一个项目

再到没有项目的目录时:前面三个没找到 推到最后一个配置文件

例2:测试优先级第三个配置文件家目录下的.ansible.cfg

例3:测试优先级最后一个个配置文件:/etc/ansible/ansible.cfg