Я не знаю, почему это происходит, но в ткани, когда я пытаюсь и не установить переменную так:Задача Python 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)
Независимо от того, что переменная «а» никогда не устанавливается, даже если имя существует в LDAP так выход никогда не вступает в силу. Я пытался добавить «Печатает», и я ничего не вижу, как, но я знаю, что команда работает, потому что я получаю вывод следующим образом (хост, который существует в 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
Я использую вар = local ('some_command') в других скриптах, и он отлично работает.