使用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 相关文章推荐
用C++封装MySQL的API的教程
May 06 Python
Python 文件操作的详解及实例
Sep 18 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
python3+requests接口自动化session操作方法
Oct 13 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
对Django 转发和重定向的实例详解
Aug 06 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
django model object序列化实例
Mar 13 Python
Python调用.net动态库实现过程解析
Jun 05 Python
浅谈Python __init__.py的作用
Oct 28 Python
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 Python
Python 一键获取电脑浏览器的账号密码
May 11 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基础知识:控制结构
2006/12/13 PHP
PHP通用检测函数集合
2011/02/08 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
js实现录音上传功能
2019/11/22 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
Python list运算操作代码实例解析
2020/01/20 Python
python数据分析:关键字提取方式
2020/02/24 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
python利用线程实现多任务
2020/09/18 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
一个精品风格的世界:Atterley
2019/05/01 全球购物
体育教师自我鉴定
2014/02/12 职场文书
化妆品促销方案
2014/02/24 职场文书
创业大赛策划书
2014/03/01 职场文书
文化建设工作方案
2014/05/12 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers