使用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判断值是否在list或set中的性能对比分析
Apr 16 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
python的格式化输出(format,%)实例详解
Jun 01 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
实例详解Python装饰器与闭包
Jul 29 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
pycharm 对代码做静态检查操作
Jun 09 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 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
escape unescape的php下的实现方法
2007/04/27 PHP
php部分常见问题总结
2008/03/27 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
JavaScript中的类继承
2010/11/25 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
Vuex提升学习篇
2018/01/11 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
python单链表实现代码实例
2013/11/21 Python
Python 中Pickle库的使用详解
2018/02/24 Python
用Python解决x的n次方问题
2019/02/08 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
周年庆典邀请函范文
2014/01/23 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
社区活动总结
2015/02/04 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电