标签: fabric

Python Fabric - 找不到主机.请指定(单个)主机字符串以进行连接:

我如何获得没有找到主机.请指定(单个)主机字符串进行连接:

如何解决面料问题?

def bootstrap():
    host = 'ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com'
    env.hosts = [host]
    env.user = "ubuntu"
    env.key_filename = "/home/ubuntu/omg.pem"

> command run
>> fab bootstrap
> No hosts found. Please specify (single) host string for connection: 
Run Code Online (Sandbox Code Playgroud)

python fabric

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

面料与pexpect

我偶然发现了pexpect,我的印象是它看起来与面料大致相似.我试图找到一些比较,没有成功,所以我在这里问 - 如果有人有两种工具的经验.

我的印象(它们大致相同)是正确的,还是它在表面上看起来如何?

python pexpect fabric

15
推荐指数
3
解决办法
5091
查看次数

找不到主机:Fabric

当我运行我的python代码时,它要求主机.

找不到主机.请指定(单个)主机字符串以进行连接:

我有以下代码:

from fabric.api import *
from fabric.contrib.console import confirm

env.hosts = [ 'ipaddress' ]

def remoteRun():
    print "ENV %s" %(env.hosts)
    out = run('uname -r')
    print "Output %s"%(out)

remoteRun();
Run Code Online (Sandbox Code Playgroud)

我甚至尝试使用-H选项运行fab,我收到相同的消息.我正在使用Ubuntu 10.10任何帮助表示赞赏.顺便说一下,我是Python的新手.

python fabric

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

了解面料

我刚刚偶然发现了Fabric,文档并没有真正说明它是如何工作的.

我有根据的猜测是你需要在客户端和服务器端安装它.Python代码存储在客户端,并在运行命令时通过Fabric的wire-protocol传输.服务器通过~/.ssh/authorized_keys当前用户(或特殊用户,或在fab命令的主机名中指定)的文件接受使用OpenSSH SSH守护程序的连接.

这是否正确?如果没有,它是如何工作的?

fabric

15
推荐指数
1
解决办法
2843
查看次数

Fabric put命令给出致命错误:'No such file'异常

我正在使用Fabric 1.01,在我的fabfile中我正在使用put命令.这条线是:

put('file.tar.gz', '~/file.tar.gz')
Run Code Online (Sandbox Code Playgroud)

服务器位于env.hosts列表中. file.tar.gz与fabfile位于同一目录中,我正在运行此目录中的代码.

当我运行代码时,它会达到运行此put命令的程度.在失败之前输出是:

[uname@site.com] put: file.tar.gz -> ~/file.tar.gz

Fatal error: put() encountered an exception while uploading 'file.tar.gz'

Underlying exception message:
    No such file
Run Code Online (Sandbox Code Playgroud)

谁知道这是从哪里来的?该文件肯定存在于我的本地机器上,我也尝试将第二个put()参数作为'/ server/path/to /',我尝试使用该文件的绝对路径进行第一次put()争论,一切都无济于事.

python fabric

15
推荐指数
2
解决办法
8164
查看次数

使用Fabric的git pull的SSH密钥密码

我正在尝试使用fabric自动部署应用程序.

应用程序代码托管在GitHub上,推出一个新版本非常简单 - 只需要'git pull'就可以了.该应用程序托管在100台服务器上,因此我希望自动部署.Fabfile.py:

def deploy():
  code_path = '/home/myuser/myapp'
  with cd(code_path):
    run('git pull')
    run('git submodule update --init --recursive')
Run Code Online (Sandbox Code Playgroud)

问题是,在每个git命令我得到一个promt Enter passphrase for key '/home/myuser/.ssh/id_rsa::

有没有办法自动输入密码?它在每台服务器上都是一样的,与sudo密码相同

我曾尝试过访问库,但我想知道是否有更好的(即标准的)方法.

git passphrase ssh-keys fabric

15
推荐指数
1
解决办法
4595
查看次数

python fabric日志记录

我遇到了面料模块 - 非常酷.这对我来说很有用.现在我有一个问题,如何从结构脚本中收集输出?

# cat fabfile.py
from fabric.api import *
from fabric.contrib.console import confirm

env.hosts = ['localhost' , '172.16.10.112','172.16.10.106']
env.user='testuser'
env.password = 'testuser'
@parallel
def uptime():
    run('uname -a')
Run Code Online (Sandbox Code Playgroud)

我想使用带有结构的日志记录模块并在代码本身内使用它们.-不想使用正常的重定向,如"fab uptime&> log.out"

python logging fabric

14
推荐指数
1
解决办法
6946
查看次数

如何使Fabric在获得退出状态后继续运行下一个命令:1?

我将通过编写一个简单的fabfile 来安装check_mk插件:

from fabric.api import env, run, roles, execute, parallel

env.roledefs = {
    'monitoring': ['192.168.3.118'],
    'mk-agent': ['192.168.3.230', '192.168.3.231', '192.168.3.232']
}

@roles('monitoring')
def mk():
    run('[ -f check_mk-1.1.12p7.tar.gz ] || wget http://mathias-kettner.de/download/check_mk-1.1.12p7.tar.gz')
    run('[ -d check_mk-1.1.12p7 ] || tar zxvf check_mk-1.1.12p7.tar.gz')
    run('cd check_mk-1.1.12p7 && sudo ./setup.sh')

@parallel    
@roles('mk-agent')
def mk_agent():
    run('[ `rpm -qa | grep -c xinetd` -eq 0 ] && sudo yum -y install xinetd.x86_64')
    run('sudo rpm -ivh http://mathias-kettner.de/download/check_mk-agent-1.2.0b2-1.noarch.rpm') 

def check_mk():
    execute(mk)
    execute(mk_agent)
Run Code Online (Sandbox Code Playgroud)

但是,正如您可以猜到的,如果xinetd已经安装了软件包,Fabric将停止并出现以下错误:

Fatal error: run() received …
Run Code Online (Sandbox Code Playgroud)

python fabric exitstatus

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

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

在我上一个项目中,我们的fabfile失控了.虽然我们项目的其余部分经过了充分测试,但我们没有为fabfile编写单个测试.重构是可怕的,在我们运行命令之前,我们不相信结构命令会如何工作.

我正在开始一个新项目,我想确保我们的fabfile从一开始就经过充分测试.服从测试山羊有一篇很好的文章讨论一些可能的策略,但它有更多的问题而不是答案.使用fabtest是可能的,虽然它似乎已经死了.

有没有人成功测试过他们的fabfile?如果是这样,怎么样?

python django fabric

14
推荐指数
1
解决办法
1619
查看次数

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

我在一个相当标准化的目录结构中对不同的项目(我是一名科学家)做了很多工作.例如:

project
   /analyses/
   /lib
   /doc
   /results
   /bin
Run Code Online (Sandbox Code Playgroud)

我将所有各种实用程序脚本放在/ bin /中,因为清洁度与敬虔相关.但是,我必须硬编码路径(例如../../x/y/z)然后我必须在./bin/中运行它们或者它们会中断.

我已经使用了Django,它有/manage.py运行各种django-things并自动处理路径.我还使用了fabric来运行各种用户定义的函数.

问题:我该如何做类似的事情?什么是最好的方式?我可以很容易地在/manage.py中写一些内容来将root目录注入sys.path等,但是我希望能够执行"./manage.py foo"运行/bin/foo.py.或者是否可以让Fabric从某个目录中调用可执行文件?

基本上 - 我想要一些简单和低维护的东西.我希望能够将可执行脚本/文件/删除到./bin/中,而不必处理路径问题或导入问题.

做这个的最好方式是什么?

python fabric

13
推荐指数
2
解决办法
4482
查看次数

标签 统计

fabric ×10

python ×8

django ×1

exitstatus ×1

git ×1

logging ×1

passphrase ×1

pexpect ×1

ssh-keys ×1