草庐IT

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 - 无法使 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 - 如何让 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

python - Fabric:如何对我的 fabfile 进行单元测试?

在我之前从事的项目中,我们的fabfile失控了。虽然我们项目的其余部分经过了充分测试,但我们没有为我们的fabfile编写任何测试。重构很可怕,在我们运行命令之前,我们不相信fabric命令会按我们预期的方式工作。我正在开始一个新项目,我想确保我们的fabfile从一开始就经过良好测试。服从测试山羊有一个greatarticle讨论一些可能的策略,但问题多于答案。使用fabtest是一种可能性,虽然它似乎已经死了。有没有人成功地对他们的fabfile进行了单元测试?如果是,怎么办? 最佳答案 在Docker中运行您的Fabfile

Fabric 超级账本学习【12】Hyperledger Fabric 2.4+Gin框架+Gateway 读取/写入账本数据 (Go版本)

文章目录Fabric2.4+Gin框架+Gateway读取/写入账本数据Gin框架优点Fabric-GatewayGateway搭建客户端我们需要准备哪些文件GatewayClient为什么整个过程没有指定过背书节点?(请求背书原理)安装Gin前提条件成功部署Fabric2.4(或其他版本的)网络安装部署官方资产链码(大家可以在官方链码文件夹中找得到)访问CouchDb开始整合Gin框架访问账本数据进行读写操作修改配置信息ApiPost7接口测试,获取所有资产信息localhost:8082/fabric/GetAllAssets创建资产localhost:8082/fabric/Create

python - 找不到主机 : Fabric

当我运行我的python代码时,它要求主机。Nohostsfound.Pleasespecify(single)hoststringforconnection:我有以下代码:fromfabric.apiimport*fromfabric.contrib.consoleimportconfirmenv.hosts=['ipaddress']defremoteRun():print"ENV%s"%(env.hosts)out=run('uname-r')print"Output%s"%(out)remoteRun();我什至尝试使用-H选项运行fab,但我收到了相同的消息。我正在使用Ubu