一、Ansible入门篇
一、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全局性质的参数,可在不同项目下或者不同用户下创建一样的ansible.cfg文件,作为局部配置文件,检索顺序:局部-->全局
inventory #设备列表,当跑脚本时,需要告诉Ansible针对哪些设备或设备组
variable #变量
module #模块,通过其他语言编写而成,能实现某个特定的功能的工具,例如思科配置接口的模块,修改ip地址的模块等等
Jinja2 #模板系统,Ansible可实现批量配置网络设备
Role #角色,一套文件夹,里面定义了例如变量,具体任务task。Role里面定义的内容可以实现某些特殊功能,而你在使用不通的脚本过程中可以导入Role来实现某一个功能。而不用重复写 #以上的组件,会由以下的“客户”来使用
Ad-hoc #即插即用,简易模式,一条命令,一次使用
playbook #剧本,基于YAML文件格式书写,可以包含Ansible任意功能,无论是设备列表,变量,jinja2模板,条件循环,模块等等
5.3 inventory介绍
默认路径是/etc/ansible/hosts文件,默认配置如下图,此hosts为全局文件,可根据不通用户或者不通项目设置局部文件,即在配件文件里指定ansible.cfg里的inventory=my_hosts
关于定义主机(默认编辑/etc/ansible/hosts文件),一般有两种方式:
#方式一:直接定义IP
192.168.1.254 #方式二:直接定义域名,此方法本机的dns服务器需要能解析出此域名对应的ip地址,或者在自己的/etc/hosts文件里添加本地域名解析
pc1.test.com #方式二:定义特殊名称,前提dns服务器或者/etc/hosts文件没办法解析此自定义名称
#书写格式:自定义名称[空格]ansible_host=[主机IP]
如定义个R1
R1 ansible_host=192.168.1.254
示例:
需求:
定义一台网络交换机192.168.1.254主机名为SW1,属于network组,也属于cisco组
定义一台pc,192.168.1.5,主机名PC1
定义一台pc,192.168.1.6 #实现:
#步骤一:开启ansible检索inventory功能
编辑/etc/ansible/ansible.cfg
inventory = /etc/ansible/hosts #将注释#去掉 #步骤二:编辑/etc/ansible/hosts文件
PC1 ansible_host=192.168.1.5
192.168.1.6 [network]
SW1 ansible_host=192.168.1.254 [cisco]
192.168.1.254 :wq #保存 ps:关于组的分割,ansible是通过匹配[]来判断是否进入了下一个组,因此,未有分组的主机,只能放在组的上头
六、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入门篇的更多相关文章
- Ansible入门篇:playbook的使用
playbooks介绍 playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活.简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在 ...
- 自动化运维-ansible入门篇
1.ansible配置 什么是Ansible IT自动化工具 依赖于现有的操作系统凭证来访问控制远程机器 简单易用.安全可靠 Ansible可以完成哪些任务 配置系统 开发软件 编排高级的IT任务 A ...
- Ansible 入门指南 - 学习总结
概述 这周在工作中需要去修改 nginx 的配置,发现了同事在使用 ansible 管理者系统几乎所有的配置,从数据库的安装.nginx 的安装及配置.于是这周研究起了 ansible 的基础用法.回 ...
- Ansible 入门指南 - ansible-playbook 命令
上篇文章Ansible 入门指南 - 安装及 Ad-Hoc 命令使用介绍的额是 Ad-Hoc 命令方式,本文将介绍 Playbook 方式. Playbook 译为「剧本」,觉得还挺恰当的. play ...
- Membership三步曲之入门篇 - Membership基础示例
Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 - Membership基础示例 Membership三步曲之进阶篇 - 深入剖析Pro ...
- spring boot(一):入门篇
构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
- 1. web前端开发分享-css,js入门篇
关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...
- 一个App完成入门篇(七)- 完成发现页面
第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
随机推荐
- 设计模式——通用泛型单例(普通型和继承自MonoBehaviour)
单例模式是设计模式中最为常见的,不多解释了.但应该尽量避免使用,一般全局管理类才使用单例. 普通泛型单例: public abstract class Singleton<T> where ...
- pycharm install python packaging tools时遇到AttributeError: '_NamespacePath' object has no attribute 'sort'错误
pycharm install python packaging tools时报错AttributeError: '_NamespacePath' object has no attribute 's ...
- D:苏卿念发红包
首先,题目中已经说得很明确了(按照常理也是). 当有mmm个包,你第kkk个抢.k>mk>mk>m的话.显然,平时会显示:来晚了一步,红包已经被领完了\text{来晚了一步,红包已经 ...
- Excel催化剂开源第38波-json字符串转多个表格结构
作为开发者来说,面对json字符一点不陌生,但对于普通用户来说,更合适的是数据表结构的数据,最好数据已经躺在Excel表格内,不用到处导入导出操作.所以开发者和用户之间是有不同的数据使用思维和需求的. ...
- ThreadLocal的使用场景:Web容器、Spring容器、日志打印
一.对于HTTP事务的理解 一次HTTP请求,就是一个事务.事务者,必须完整的执行其中的所有步骤,不能中断. 二.HTTP事务的隔离 每次HTTP请求对应一个HTTP事务,而每个请求都对应一个线程,线 ...
- Storm 实时读取本地文件操作(模拟分析网络日志)
WebLogProduct 产生日志类 package top.wintp.weblog; import java.io.FileNotFoundException; import java.io.F ...
- 【SVN】SVN使用教程总结
SVN使用教程总结 SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subve ...
- Windows系统配置java环境
1:下载jdk 网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2:下载 ...
- 云计算:Linux运维核心管理命令详解
云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...
- JS面向对象编程(一):封装
js是一门基于面向对象编程的语言. 如果我们要把(属性)和(方法)封装成一个对象,甚至要从原型对象生成一个实例,我们应该怎么做呢? 一.生成对象的原始模式 假定把猫看 ...