草庐IT

python - 通过 Python/Fabric 从命令行更改 Unix 密码

我想要一种使用fabric在远程Ubuntu10.4盒子上更新我的密码的方法.我希望我的fabfile.py看起来像这样:defupdate_password(old_pw,new_pw):#Connectsoversshwithapublickeyauthenticationrun("some_passwd_cmd--old%s--new%s"%(old_pw,new_pd))不幸的是,我所知道的唯一允许更改密码的命令是passwd,在Ubuntu10.4上似乎没有任何方法可以传递新(或旧)密码,因为passwd的参数。在Ubuntu10.4上可以使用什么命令通过fabric更改用户

python - Fabric env.hosts 并以相同的方法运行 => 找不到主机

为什么:fromfabric.apiimportenv,rundefupdate():env.hosts=['apycat']run('cd/var/www/menu;svnup')当我fabupdate时不起作用,同时:fromfabric.apiimportenv,runenv.hosts=['apycat']defupdate():run('cd/var/www/menu;svnup')是吗?在文档中没有找到任何关于此的内容。 最佳答案 在fab命令已经为fab任务创建主机列表后指定主机列表将不起作用。因此,对于第一个示例,您

python - 如何设置 Pycharm 以在 Windows 上调试 Fabric fabfile?

是否可以设置Pycharm单步执行Fabricfabfile.py?这似乎可以通过运行/调试配置编辑器来实现,但我似乎无法正确设置。编辑器要求运行脚本,我已经尝试了fab-script.py文件,它只是为我提供了fab帮助选项。似乎我很接近,但还不完全。 最佳答案 这是我最终设置它的方式,以防它对其他人有用。与大多数类似的事情一样,一旦你知道魔法设置,就很容易了。所有这些指令都是通过PyCharm进行的,但其中一些指令可以通过其他方式完成。但是,由于这是关于在PyCharm中进行调试的,所以这就是我在说明中使用的内容。另外,我正在使

python - 如何使用 fabric 2 运行本地命令?

我想使用Fabric并在本地运行命令,而无需建立任何额外的连接。如何在fabric2中执行此操作?...documentation似乎想念任何例子。 最佳答案 在Fabric2中删除local命令的设计决定使这变得更加困难,但我能够通过使用Invoke中的Context而不是来模拟它连接:fromfabricimportConnectionfrominvoke.contextimportContext@taskdefhostname(c):c.run('hostname')@taskdeftest(c):conn=Connectio

python - Fabric env.roledefs 未按预期运行

关于fabricwebsite,给出这个例子:fromfabric.apiimportenvenv.roledefs={'web':{'hosts':['www1','www2','www3'],'foo':'bar'},'dns':{'hosts':['ns1','ns2'],'foo':'baz'}}据我从文档中得知,当在主机“www1”、“www2”、“www3”上执行时,此设置应该为envdict键“foo”提供值“bar”。我无法得到这种行为,尽管结构确实正确地确定了主机。示例fabfile:env.foo='WRONG'@task()defset_role():env.ro

python - 无法通过 Fabric 在服务器上激活 virtualenv

我正在尝试通过Fabric在我的登台服务器上运行一些Django管理命令。问题是Fabric似乎无法激活virtualenv,因此在执行命令时无法使用系统python/libs。在服务器上,Django应用程序使用virtualenv运行(不,我还没有使用virtualenvwrapper...)使用Fabric(1.0.1)从我的盒子运行时,命令可能看起来像这样:fabfile方法:defcollectstatic():require('settings',provided_by=[production,staging])withsettings(warn_only=True):ru

python - 一起运行 Fabric 和 Python 脚本

我看到大多数FabricAPI都与函数一起使用。文件示例(sample.py):fromfabric.apiimport*print"Hello"defdeploy():withsettings(hosts_string="Remote",user="ubuntu",key_filename="/home/ubuntu/key.pem"):put('/home/localuser/sample.sh','/home/ubuntu/')run('bash/home/ubuntu/sample.sh')我运行命令执行fabdeploy是否可以在Main方法中运行Fabric。所以当我将它作

python - fabric API 在 python 中直接调用

我记得fabricAPI可以在py脚本中直接调用但忘了从哪里开始有人给个线索吗? 最佳答案 是的,你可以调用它,例如:fromfabric.apiimportrunfromfabric.tasksimportexecutedefdo_something():run("echo$RANDOM")if__name__=="__main__":execute(do_something,hosts=["username@host"]) 关于python-fabricAPI在python中直接调用

python - 如何使用 Fabric 通过代理建立 SSH 连接?

我正在尝试在WindowsPC和Linux服务器(amazonec2)之间建立SSH连接。我决定使用通过python实现的FabricAPI。我在WindowsPC上安装了Putty。我的fabfile脚本如下所示:importsysfromfabric.apiimport*deftestlive():print'Testlive...'run("uptime")env.use_ssh_config=Falseenv.host_string="host.something.com"env.user="myuser"env.keys_filename="./private_openssh

python - Fabric - 通过执行将参数传递给任务

我有以下Fabric任务:defssh_keygen(user,dir):env.user=userrun("ssh-keygen%s"%dir)我想使用“执行”来调用它,但需要向任务传递一个参数。即用户和目录execute(ssh_keygen('jbloggs','/home/jbloggs'),hosts=["server1"])但是这不起作用:Nohostsfound.Pleasespecify(single)hoststringforconnection:Traceback(mostrecent有什么办法可以实现吗? 最佳答案