使用python Fabric动态修改远程机器hosts的方法


Posted in Python onOctober 26, 2018

一、关于fabric

fabric是一个很强大的包,可以将多机操作、部署的命令固化到脚本里面,

详情可参考文档 http://fabric-chs.readthedocs.io/zh_CN/chs/

二、修改远程hosts的方法

如何修改远程服务器的hosts,想到两个办法:

第一个想到的办法就是通过命令连接上服务器,然后使用编辑器vim或者其它打开hosts文件,进行编辑;这种办法有个明显的缺点就是脚本操作比较复杂,需要在脚本里面使用编辑器进行操作,同时还需要动态解析已有的hosts,进行hosts合并。

第二个办法就是采用文件替换的方式,在本地进行编辑hosts,编辑好之后,上传到服务器,替换已有的hosts文件;这个方法操作简单,脚本执行起来也不复杂,可行性要高很多,当然也有个缺点,就是添加hosts的时候,需要操作者本身对已有hosts非常清楚。

三、源码

# encoding=utf-8
from fabric.api import *
 
# 这里配置了hosts信息
env.hosts = ['10.13.131.46', '10.13.135.121', '10.13.133.232']
env.password = "xxxxxxxxxxxxx"
env.user = "xiuzhu"
env.port = 10022
 
@task
def flush():
 sudo('cp /etc/hosts /home/xiuzhu/hosts.bak')
 put("host1", "/home/xiuzhu/hosts.new")
 sudo("mv /etc/hosts /etc/hosts.bak")
 sudo("mv /home/xiuzhu/hosts.new /etc/hosts")

以上这篇使用python Fabric动态修改远程机器hosts的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python ElementTree 基本读操作示例
Apr 09 Python
Python时区设置方法与pytz查询时区教程
Nov 27 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
Python中的super用法详解
May 28 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
使用Python实现windows下的抓包与解析
Jan 15 Python
使用python编写监听端
Apr 12 Python
详解通过API管理或定制开发ECS实例
Sep 30 Python
django解决订单并发问题【推荐】
Jul 31 Python
pandas的排序和排名的具体使用
Jul 31 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
May 26 Python
python 处理string到hex脚本的方法
Oct 26 #Python
python3 unicode列表转换为中文的实例
Oct 26 #Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 #Python
Python之两种模式的生产者消费者模型详解
Oct 26 #Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 #Python
Python批处理更改文件名os.rename的方法
Oct 26 #Python
浅谈django rest jwt vue 跨域问题
Oct 26 #Python
You might like
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
php连接Access数据库错误及解决方法
2013/06/20 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
jquery 上下滚动广告
2009/06/17 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
微信小程序中button去除默认的边框实例代码
2019/08/01 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
学生就业推荐信
2013/11/13 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
青春雷锋观后感
2015/06/10 职场文书
班主任工作总结范文
2015/08/13 职场文书
八年级物理教学反思
2016/02/19 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python