草庐IT

Fabric-samples

全部标签

python - 使用 Python 的 Fabric 库对 "execute"进行嵌套调用

Python的Fabric提供了使用execute函数调用fab实用程序之外的结构函数的能力。当在使用execute调用的另一个函数中调用execute函数时,会出现上下文问题。当调用内部执行时,Fabric会丢失外部执行的上下文,并且永远不会恢复它。例如:env.roledefs={'webservers':['web1','web2'],'load_balancer':['lb1']}@roles('webserver')defdeploy_code():#shipovertar.gzofcodetounpack....execute(remove_webserver_from_l

python - "sample larger than population"in random.sample python

为自己创建一个简单的通行证生成器,我注意到如果我希望我的人口只有数字(0-9),总共有10个选项,如果我希望我的长度超过10,它不会使用更多的数字然后一次并返回“样本大于总体”错误。是否可以维护代码,但添加/减少代码行使其工作?还是我必须使用随机选择?importstringimportrandomz=int(raw_input("for:\nnumbersonlychoose1,\nlettersonlychoose2,\nlettersandnumberschoose3,\nforeverythingchoose4:"))ifz==1:x=string.digitselifz==2

python - 无法使 Fabric 的分离屏幕 session 示例正常工作

我正在尝试使用分离的屏幕session在远程主机上执行脚本。我试用了exampleFabricgives不幸的是无法让它工作。fromfabric.apiimportrundefyes():run('screen-d-m"yes"')在我的本地机器上执行fabyes将它正确地连接到远程主机并表明命令已经运行,但是在远程主机上没有执行任何操作。在任何一台机器上尝试screen-d-m"yes"都可以正常工作。如果有人能指出我做错了什么,我将不胜感激。另外,附带说明一下,为什么命令中的yes周围有引号?没有引号它会工作吗?谢谢! 最佳答案

python - 如何使用 Fabric 传递 SSH 选项?

我们正在努力改进一些服务器进程的自动化;我们使用织物。我预计必须管理多个主机,这意味着必须对以前未通过SSH连接的服务器建立SSH连接。如果发生这种情况,SSH总是会要求验证连接,这会破坏自动化。我已经解决了这个问题,在同一过程中,在我用来与rsync同步代码的SSH命令上使用-ostricthostkeychecking=no选项,但我还需要在与Fabric的通话中使用它。有没有办法将特定于ssh的选项传递给Fabric,尤其是我上面提到的那个? 最佳答案 简短的回答是:对于新主机,不需要任何东西。env.reject_unkno

python - 我可以使用 Fabric 执行交互式 shell 命令吗?

我正在尝试使用fabric安装和部署一个web项目,在此期间我需要创建一个postgresql数据库并配置一个RabbitMQ服务器。这两个操作都是交互式的,需要用户输入以创建数据库、添加用户、设置密码等(至少据我所知)。我可以使用结构脚本来执行这些交互式shell操作吗? 最佳答案 这是在Fabric1.0中。我试过了,它对我有用。OlderversionsofFabric(andsimilarhighlevelSSHlibraries)runremoteprogramsinlimbo,unabletobetouchedfromt

python 2 vs python 3 随机性能,特别是 `random.sample` 和 `random.shuffle`

python随机模块的性能问题,特别是random.sample和random.shuffle出现在thisquestion中。.在我的电脑上,我得到以下结果:>python-mtimeit-s'importrandom''random.randint(0,1000)'1000000loops,bestof3:1.07usecperloop>python3-mtimeit-s'importrandom''random.randint(0,1000)'1000000loops,bestof3:1.3usecperloop与python2相比,python3的性能下降了20%以上。情况变得

python - 是否有与 R 的 sample() 函数等效的 Python?

我想知道Python是否具有与R中的sample()函数等效的功能。sample()函数使用替换或不替换从x的元素中获取指定大小的样本。语法是:sample(x,size,replace=FALSE,prob=NULL)(更多信息here) 最佳答案 我认为numpy.random.choice(a,size=None,replace=True,p=None)可能正是您要找的。p参数对应于sample()函数中的prob参数。 关于python-是否有与R的sample()函数等效的Py

python - 如何让 Fabric 忽略 env.hosts 列表中的离线主机?

这与我的previousquestion有关,而是一个不同的。我有以下fabfile:fromfabric.apiimport*host1='192.168.200.181'offline_host2='192.168.200.199'host3='192.168.200.183'env.hosts=[host1,offline_host2,host3]env.warn_only=Truedefdf_h():withsettings(warn_only=True):run("df-h|grepsda3")输出是:[192.168.200.199]run:df-h|grepsda3Fat

python - 使用 fabric 和管道脚本文本运行 shell 脚本到 shell 的标准输入

有没有办法通过将多行shell脚本传送到fabric中的远程shell标准输入来执行它??或者我必须总是将它写入远程文件系统,然后运行它,然后删除它?我喜欢发送到标准输入,因为它避免了临时文件。如果没有fabricAPI(根据我的研究似乎没有),大概我可以直接使用ssh模块。基本上我希望fabric.api.run不限于作为命令行参数传递给shell的单行命令,而是采用完整的多行脚本并将其写入远程shell的标准输入。澄清一下,我想要与此命令行等效的结构:sshsomehost/bin/sh除了在python中,脚本源代码不会来自本地文件系统上的文件,它只是内存中的多行字符串。请注意,

python - 在 Python 中处理项目脚本中的路径/可执行文件的最佳实践(例如 Django 的 manage.py 或 fabric)

我在一个相当标准化的目录结构中为不同的项目做了很多工作(我是一名科学家)。例如:project/analyses//lib/doc/results/bin我将所有各种实用程序脚本放在/bin/中,因为清洁仅次于虔诚。但是,我必须对路径进行硬编码(例如../../x/y/z),然后我必须在./bin/中运行,否则它们会中断。我用过Django,它有/manage.py,它运行各种django-things并自动处理路径。我还使用fabric来运行各种用户定义的函数。问题:我该如何做类似的事情?最好的方法是什么?我可以轻松地在/manage.py中写一些东西来将根目录注入(inject)s