Python fabric实现远程操作和部署

发表于:2014-4-14 11:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:climb_up    来源:51Testing软件测试网采编

  fabric
  title是开发,但是同时要干开发测试还有运维的活……为毛 task*3 不是 salary * 3 (o(╯□╰)o)
  近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是优点多。
  修复bug什么的,测试,提交版本库(2分钟),ssh到测试环境pull部署(2分钟),rsync到线上机器A,B,C,D,E(1分钟),分别ssh到ABCDE五台机器,逐一重启(8-10分钟) = 13-15分钟
  其中郁闷的是,每次操作都是相同的,命令一样,要命的是在多个机器上,很难在本机一个脚本搞定,主要时间都浪费在ssh,敲命令上了,写成脚本,完全可以一键执行,花两分钟看下执行结果
  直到,发现了fabric这货
  作用
  很强大的工具
  可以将自动化部署或者多机操作的命令固化到一个脚本里
  和某些运维工具很像,用它主要是因为,python…..
  简单好用易上手
  当然,shell各种命令组合起来也可以,上古神器和现代兵器的区别
  环境配置
  在本机和目标机器安装对应包(注意,都要有)
  sudo easy_install fabric
  目前是1.6版本(或者用pip install,一样的)
  安装完后,可以查看是否安装成功
  [ken@~$] which fab
  /usr/local/bin/fab
  装完之后,可以浏览下官方文档
  然后,可以动手了
  hello world
  先进行本机简单操作,有一个初步认识,例子来源与官网
  新建一个py脚本: fabfile.py
  def hello():
  print("Hello world!")
  命令行执行:
  [ken@~/tmp/fab$] fab hello
  Hello world!
  Done.
  注意,这里可以不用fabfile作为文件名,但是在执行时需指定文件
[ken@~/tmp/fab$] mv fabfile.py test.py
fabfile.py -> test.py
[ken@~/tmp/fab$] fab hello
Fatal error: Couldn't find any fabfiles!
Remember that -f can be used to specify fabfile path, and use -h for help.
Aborting.
[ken@~/tmp/fab$] fab -f test.py hello
Hello world!
Done.
  带参数:
  修改fabfile.py脚本:
  def hello(name, value):
  print("%s = %s!" % (name, value))
  执行
[ken@~/tmp/fab$] fab hello:name=age,value=20
age = 20!
Done.
[ken@~/tmp/fab$] fab hello:age,20
age = 20!
Done.
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号