【发布时间】:2016-08-23 00:36:10
【问题描述】:
我编写了一个 ansible 脚本,用于根据条件创建网络。因此,即使我再次运行 ansible 脚本,它也不会在我的 openstack 环境中创建重复的条目。
任务:
name: "create network"
shell: neutron net-create (openstack details like project username,password, api) network_1
when: ("neutron net-list -c name| grep network_1| awk '{print$2}'" == "null")
the above condition didn't work so, I tried another condition
when: ("neutron net-list -c name| grep network_1| awk '{print$2}'" == neutron net-list -c name| grep network_2 | awk '{print$2}')
我的项目中没有这两个网络中的任何一个。我的意图是,两个语句都显示空输出,并且第一次条件变为真,它应该执行并创建一个网络。如果我第二次运行该脚本,它不满足条件并且条件检查变为错误并且将不会创建网络。
但是两个条件都被跳过并返回错误,说条件检查失败。
【问题讨论】:
-
如果您复制/粘贴这些
neutron命令行并在标准终端中执行它们,它们是否有效?您需要确定他们正在返回您的条件所期望的内容。如果您包含这些命令的示例输出,它可能会对非中子读者有所帮助。祝你好运。 -
嘿壳,他们不返回任何东西。因为它们在表中不存在。条件是如果他们返回 null 或什么都没有命令应该执行。看来我需要另辟蹊径。谢谢你调查它!
标签: linux shell ansible ansible-playbook openstack