草庐IT

python - 在没有命令行工具 (fab) 的情况下使用 Python Fabric

AltoughFabric文档是指一种使用库进行SSH访问而不需要fab命令行工具和/或任务的方法,我似乎无法管理这样做的方法。我想通过只执行'pythonexample.py'来运行这个文件(example.py):env.hosts=["example.com"]defps():run("ps")ps()谢谢。 最佳答案 我最终这样做了:fromfabric.apiimportenvfromfabric.apiimportrunclassFabricSupport:def__init__(self):passdefrun(sel

python - 即使我可以使用凭据进行 SSH,Fabric 也会要求输入密码

我在使用Fabric部署Django站点时遇到了一个奇怪的问题。我已经配置了两台服务器以使用key文件进行登录。我可以在没有密码的情况下通过SSH连接到两者。我可以正确运行一个工厂,$fablivepull[mysite.com]Executingtask'pull'[mysite.com]run:test-dproj[mysite.com]run:test-dproj/.git[mysite.com]run:gitpulloriginmaster...当其他服务器要求输入密码时:$fabstagingpull[dev.mysite.com]Executingtask'pull'[de

python - 如何发现 Python Fabric 中的当前角色

这是一个非常Fabric具体问题,但更有经验的python黑客可能能够回答这个问题,即使他们不了解Fabric。我试图根据命令运行的角色在命令中指定不同的行为,即:defrestart():if(SERVERTYPE=="APACHE"):sudo("apache2ctlgraceful",pty=True)elif(SERVERTYPE=="APE"):sudo("supervisorctlreload",pty=True)我正在用类似这样的功能破解它:defapache():globalSERVERTYPESERVERTYPE="APACHE"env.hosts=['xxx.xxx

Python Fabric : How to answer to keyboard input?

我想自动响应某些程序提示的某些问题,例如mysql提示输入密码,或apt询问"is"或...当我想使用./manage重建我的haystack索引时.py重建索引。对于MySQL,我可以使用--password=开关,而且我确信apt具有类似“安静”的选项。但是如何将响应传递给其他程序? 最佳答案 如果您正在寻找用户确认操作,请使用confrim方法。iffabric.contrib.console.confirm("Youtestsfaileddoyouwanttocontinue?"):#continueprocessing或者

python - 如何使用 Fabric 使用 nohup 启动后台进程?

通过Fabric,我正在尝试使用以下nohup命令启动celerycam进程。不幸的是,什么都没有发生。手动使用相同的命令,我可以启动该过程,但不能通过Fabric。关于如何解决这个问题的任何建议?defstart_celerycam():'''Startcelerycamdaemon'''withcd(env.project_dir):virtualenv('nohupbash-c"pythonmanage.pycelerycam--logfile=%scelerycam.log--pidfile=%scelerycam.pid&>%scelerycam.nohup&>%sceler

python - 使用 Python Fabric Library 获取 env.hosts 列表的当前值

我有这段代码(foo和bar是本地服务器):env.hosts=['foo','bar']defmytask():print(env.hosts[0])当然,每次迭代都会打印foo。您可能知道,Fabric遍历env.hosts列表并以这种方式在每个列表上执行mytask():fabmytask会task在foo上执行task在bar上执行我正在寻找一种在每次迭代中获取当前主机的方法。谢谢, 最佳答案 使用env.host_string。您可以找到env变量的完整列表here. 关于py

python - 通过 Fabric 使用 key 对(.pem 文件)连接到 EC2

任何人有任何Fabric配方显示如何使用pem文件连接到EC2?我尝试用这种方式编写它:PythonFabricruncommandreturns"binascii.Error:Incorrectpadding"但是当我执行run()函数时,我遇到了一些编码问题。 最佳答案 要使用pem文件我一般把pem添加到ssh代理,然后简单的引用用户名和主机:ssh-add~/.ssh/ec2key.pemfab-Hubuntu@ec2-hostdeploy或像您链接到的示例一样指定环境信息(不带key):env.user='ubuntu'e

python - Fabric 的 cd 上下文管理器不起作用

我已经在一台新PC上设置了我的开发环境,但我似乎在使用Fabric时遇到了奇怪的错误。它的“cd”上下文管理器似乎不会更改当前目录,因此我的很多命令都不起作用。我已经编写了测试,它显示了我没想到的结果:from__future__importwith_statementfromfabric.apiimportlocal,run,cddefxxx():withcd("src"):local("pwd")下面是运行fabxxx后的结果:[localhost]local:pwd/home/pioneer/workspace/myproject但我认为应该是/home/pioneer/work

Hyperledger Fabric教程--运行FabCar应用程序

HyperledgerFabric教程–运行FabCar应用程序前期准备:安装二进制文件fabric-ca-client、fabric-ca-server(版本1.5.2,https://github.com/hyperledger/fabric-ca/releases/tag/v1.5.2)下载好后解压到fabric-samples/bin目录下一、启动Fabric网络(https://hyperledger-fabric.readthedocs.io/zh_CN/latest/write_first_app.html)进入fabric-samples/fabcar目录下,执行:./star

python - 我可以阻止fabric 提示我输入sudo 密码吗?

我正在使用Fabric在远程服务器上运行命令。我在该服务器上连接的用户具有一些sudo权限,并且不需要密码即可使用这些权限。当通过SSH连接到服务器时,我可以运行sudoblah并且该命令会在不提示输入密码的情况下执行。当我尝试通过Fabric的sudo函数运行相同的命令时,系统会提示我输入密码。这是因为Fabric在使用sudo时以如下方式构建命令:sudo-S-p/bin/bash-l-c""显然,我的用户无权在没有密码的情况下执行/bin/bash。我已经通过使用run("sudoblah")而不是sudo("blah")解决了这个问题,但我想知道是否有更好的方法解决方案。这个问