gpt4 book ai didi

Python Fabric 任务不设置变量?

转载 作者:行者123 更新时间:2023-11-28 23:01:39 26 4
gpt4 key购买 nike

我不确定为什么会发生这种情况,但是当我尝试设置这样的变量时在 fabric 中:

@task
def deploy_small_ec2_ami(name):
a = local("/usr/bin/ldapsearch -x -w secret -D 'cn=admin,dc=example,dc=net' -b 'dc=example,dc=net' -h ldap-01 -LLL 'cn=%s'" %(name))
if a:
sys.exit(1)

无论变量 'a' 是什么,即使该名称存在于 ldap 中,也永远不会设置,因此退出永远不会生效。我尝试添加“打印 a”,但我也没有看到任何内容,但我知道该命令有效,因为我得到如下输出(ldap 中确实存在的主机):

user:~/Projects/fabtask$ fab deploy_small_ec2_ami:bob,ldap
[localhost] local: /usr/bin/ldapsearch -x -w secret -D 'cn=admin,dc=example,dc=net' -b 'dc=example,dc=net' -h ldap-01 -LLL 'cn=bob'
dn: cn=bob,ou=hosts,dc=example,dc=net
cn: bob
environment: production
ipHostNumber:
objectClass: device
objectClass: ipHost
objectClass: puppetClient
objectClass: top
puppetClass: cassandra

我在其他脚本中使用 var = local('some_command') 并且工作正常。

最佳答案

我在您的 local() 调用中没有看到 capture=True;这似乎是捕获命令输出所必需的。否则 local() 总是返回 None,它在 if 语句中的计算结果为 False。参见 docs here .

关于Python Fabric 任务不设置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com