标签: fabric

如何使用python fabric自动回答提示?

我想运行一个命令,提示我输入yes/no或y/n或者其他什么.如果我只是运行命令local("my_command")然后它停止并要求我输入.当我输入所需内容时,脚本继续工作.如何自动响应提示?

python command-prompt fabric

29
推荐指数
4
解决办法
2万
查看次数

如何使用Fabric进行ForwardAgent?

run()使用我的私钥对在远程服务器上成功命令.

但是,我想git clone ssh://private/repo在远程服务器上使用我的本地密钥(或使用我所在的本地ssh代理).

怎么用面料呢?

python deployment automation fabric

28
推荐指数
1
解决办法
7726
查看次数

简单的方法来抑制织物运行的输出?

我正在远程机器上运行命令:

remote_output = run('mysqldump --no-data --user=username --password={0} database'.format(password))
Run Code Online (Sandbox Code Playgroud)

我想捕获输出,但没有全部打印到屏幕上.最简单的方法是什么?

python fabric

28
推荐指数
4
解决办法
3万
查看次数

如何从命令行获取当前的Linux进程ID,与shell无关,语言无关

如何以与shell无关,语言无关的方式从Linux命令行获取当前进程ID(pid)?

pidof(8)似乎没有选择来获得调用过程' pid.当然,Bash有$$- 但是对于我的通用用法,我不能依赖shell(Bash或其他).在某些情况下,我无法编写脚本或可编译程序,因此Bash/Python/C/C++(等)将无法正常工作.

这是一个特定的用例:我想获得pid运行的,基于Python-Fabric的远程SSH进程(人们可能希望避免假设bash正在运行),以便除其他外我可以复制和/或创建文件和/或具有唯一文件名的目录(如mkdir /tmp/mydir.$$).

如果我们可以解决特定于Fabric的问题,这会有所帮助 - 但它并不能解决我的长期问题.对于所有未来场景中的通用用法,我只想要一个返回$$Bash中传递内容的命令.

python linux shell command-line fabric

27
推荐指数
4
解决办法
4万
查看次数

使用fabric开始使用nohup的后台进程

我正在尝试使用下面的nohup命令使用fabric启动celerycam进程.不幸的是,没有任何事情发生,手动使用相同的命令我可以启动过程但不通过结构.关于我如何解决这个问题的任何建议?

def start_celerycam():
    '''Start celerycam daemon'''
    with cd(env.project_dir):
        virtualenv('nohup bash -c "python manage.py celerycam --logfile=%scelerycam.log --pidfile=%scelerycam.pid &> %scelerycam.nohup &> %scelerycam.err" &' % (env.celery_log_dir,env.celery_log_dir,env.celery_log_dir,env.celery_log_dir))
Run Code Online (Sandbox Code Playgroud)

python fabric

27
推荐指数
4
解决办法
1万
查看次数

使用密钥对(.pem文件)通过Fabric连接到EC2

任何人都有任何Fabric配方,显示如何使用pem文件连接到EC2?

我尝试用这种方式编写它: Python Fabric run命令返回"binascii.Error:不正确的填充"

但是当我执行该run()函数时,我遇到了一些编码问题.

python fabric

26
推荐指数
3
解决办法
2万
查看次数

Fabric vs Invoke

我一直在使用面料,最近被告知有关调用,所以我看了一下它的文档:

与Ruby的Rake工具和Invoke自己的前任Fabric 1.x一样,它提供了一个干净的高级API,用于运行shell命令和从tasks.py文件定义/组织任务函数.

除非我在调用时遗漏了某些东西和noob,但我发现fabric比invoke更强大,这让我觉得invoke不是替换fabric.我有点困惑.

我做了一个谷歌搜索'面料vs调用',什么都没有,所以在这里问.

invoke fabric

26
推荐指数
1
解决办法
4864
查看次数

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

我有这个代码(foo并且bar是本地服务器):

env.hosts = ['foo', 'bar']

def mytask():
    print(env.hosts[0])
Run Code Online (Sandbox Code Playgroud)

当然,每次迭代都会打印foo.

您可能知道,Fabric遍历env.hosts列表并以这种方式对每个列表执行mytask():

fab mytask
Run Code Online (Sandbox Code Playgroud)

task执行时foo
task执行bar

我正在寻找一种在每次迭代中获取当前主机的方法.

谢谢,

python fabric

25
推荐指数
2
解决办法
2万
查看次数

fabric导入错误:无法导入名称'isMappingType'

我在进程中间遇到了这个"ImportError:无法导入名称'isMappingType'",以便为Django项目部署fabfile.

这是我的fabfile.py的结构

from __future__ import with_statement
from fabric.api import *
from fabric.contrib.console import confirm
from fabric.contrib.files import append, exists, sed

env.hosts = ["127.0.0.1"]

env.user = raw_input('Please enter user:')

def deploy():
      sudo("apt-get update -y")
sudo("apt-get install git -y")
sudo("apt-get install postgresql libpq-dev python-dev python-pip -y")

code_dir = 'backend-directory'

if exists(code_dir):
   run('cd %s && git pull' % (code_dir,)) 
else:
   run("git clone git://serveraddress/projects/backend-directory")


with cd(code_dir):
  sudo("pip install virtualenv")
  run("virtualenv -p /usr/bin/python3.4 venv")
  run("source venv/bin/activate")
  #sudo("pip install -r requirements/dev.txt")
  sudo("pip install -r requirements/production.txt")

  with …
Run Code Online (Sandbox Code Playgroud)

python django fabric

25
推荐指数
3
解决办法
2万
查看次数

fabric似乎启动了apache2,但没有

我正在使用fabric远程启动微型aws服务器,安装git和git存储库,调整apache配置然后重启服务器.

如果在任何时候,我发布fabfile文件

sudo('service apache2 restart')或者run('sudo service apache2 restart')一个停止然后一个开始,该命令显然运行,我得到响应表明apache已经启动,例如

[ec2-184-73-1-113.compute-1.amazonaws.com] sudo: service apache2 start
[ec2-184-73-1-113.compute-1.amazonaws.com] out:  * Starting web server apache2
[ec2-184-73-1-113.compute-1.amazonaws.com] out:    ...done.
[ec2-184-73-1-113.compute-1.amazonaws.com] out: 
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试连接,则拒绝连接,如果我ssh进入服务器并运行 sudo service apache2 status它说" Apache is NOT running"

如果sshed,如果运行 sudo service apache start,服务器启动,我可以连接.还有其他人经历过这个吗?或者是否有人有任何关于我可以在哪里看的提示,在日志文件等中找出已发生的事情.什么都没有apache2/error.log,syslog或者auth.log.

这不是什么大不了的事,我可以解决它.我只是不喜欢这种无声的失败.

ssh python-2.6 apache2.2 fabric ubuntu-10.04

24
推荐指数
2
解决办法
6084
查看次数