使用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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
Python基础之函数用法实例详解
Sep 10 Python
详解python eval函数的妙用
Nov 16 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
Feb 07 Python
pandas DataFrame运算的实现
Jun 14 Python
用python爬虫批量下载pdf的实现
Dec 01 Python
python中数组和列表的简单实例
Mar 25 Python
Python如何用re模块实现简易tokenizer
May 02 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
python计算N天之后日期的方法
2015/03/31 Python
python字典DICT类型合并详解
2017/08/17 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
2017/12/09 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
python实现微信打飞机游戏
2020/03/24 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
数学系毕业生的自我评价
2014/01/10 职场文书
升职演讲稿范文
2014/05/23 职场文书
法人代表任命书范本
2014/06/05 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
对照检查剖析材料
2014/09/30 职场文书
2014年化验室工作总结
2014/11/21 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL