首页 > 其他 > 详细

一、Ansible入门篇

时间:2019-03-29 13:44:58      阅读:106      评论:0      收藏:0      [点我收藏+]

一、Ansible简介

Ansible是一个自动化运维的工具
基于python语言编写,因此机器需要具备python环境。
通过ssh的连接方式进行自动化部署,ansible优先使用OpenSSH,在使用python模块里的paramiko作为SSH工具

 

二、Ansible的优缺点

  优点:

1.入门快速,简单上手
2.基于Python语言
3.无代理(基于ssh,无需安装客户端,如zabbix的客户端要安装agent)
4.可读性强(采用YAML格式)

  缺点:

1.对Windows系统的排斥(服务端无法安装在windows)
2.运行效率较低(task任务是串行运行;多台设备同时运行一个task,有并发数限制)

 

三、Ansible的安装

  安装的是基于Python2.7的Ansible

  在Ubuntu上的安装

#1.增加PPA源,并安装Ansible
sudo apt-get unpdate
sudo apt-get install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt-get install ansible

#2.查看版本,结果无报错
ansible --version

  在Centos7上的安装

#1.安装EPEL扩展软件仓库
sudo yum -y install epel-release

#2.安装Ansible
sudo yum -y install ansible

#3. 检查ansible的版本和运行环境
ansible --version

 

四、Ansible的升级文档

https://docs.ansible.com/ansible/2.7/porting_guides/porting_guides.html

  此文档为各个版本如何迁移到2.7版本,迁移有风险,操作需谨慎

 

五、Ansible框架介绍

  5.1 框架图

技术分享图片

  

   5.2 各组件功能

ansible.cfg        #ansible的配置文件,包含各种Ansible全局性质的参数
inventory        #设备列表,当跑脚本时,需要告诉Ansible针对哪些设备或设备组
variable        #变量
module        #模块,通过其他语言编写而成,能实现某个特定的功能的工具,例如思科配置接口的模块,修改ip地址的模块等等
Jinja2        #模板系统,Ansible可实现批量配置网络设备
Role        #角色,一套文件夹,里面定义了例如变量,具体任务task。Role里面定义的内容可以实现某些特殊功能,而你在使用不通的脚本过程中可以导入Role来实现某一个功能。而不用重复写

#以上的组件,会由以下的“客户”来使用
Ad-hoc    #即插即用,简易模式,一条命令,一次使用
playbook    #剧本,基于YAML文件格式书写,可以包含Ansible任意功能,无论是设备列表,变量,jinja2模板,条件循环,模块等等

 

六、Ansible简单实例1

  需求:测试主机是否存活(存活的意思是主机开了ssh端口)

  实现:ansible localhost -m ping

技术分享图片

  

#此处的ping模块,并非传统的ic‘m‘p ping原理,而是它尝试使用默认的设定去ssh登陆远端设备,如果登陆成功,就反馈:pong

#ping模块的使用:
 https://docs.ansible.com/ansible/latest/modules/ping_module.html#ping-module

 

七、Ansible简单实例2

  需求:执行一个linux命令,查看磁盘空间

  实现:ansible localhost -m command -a "df -h"

  技术分享图片

 

一、Ansible入门篇

原文:https://www.cnblogs.com/lisenlin/p/10620658.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!