【发布时间】:2018-03-02 05:28:59
【问题描述】:
我正在尝试创建一个剧本来找出在哪个 openstack 服务器 vm 上运行。我在 vars 中创建了一个 openstack 服务器列表,并使用 delegate_to 和 with_items 进行迭代,直到找到 vm。我在命令末尾使用 wc -l , 1 将成功。目的是,一旦找到 os-server,将 servername 存储到 var 中,这样它就可以用于 playbook 中的其余任务。我无法从列表中获取 var 中的操作系统服务器名称。我不是一个可靠的专家。任何人都可以帮助实现这一目标吗?谢谢
- hosts: localhost
vars:
openstack:
- reg1
- reg2
- reg3
- reg4
tasks:
- name: Command to find os server where vm exists
shell: somecommand-to-check-if-vm-exist | wc -l
delegate_to: "{{ item }}"
with_items: "{{ openstack }}"
register: found_server
retries: 1
delay: 1
until: found_server.stdout != "1"
- debug: var=found_server
- name: set fact
set_fact: os-server = "{{ item.item }}"
when: item.stdout == "1"
with_items: "{{ found_server.results }}"
register: var2
- name: debug var
debug: var=var2
- debug: var=os-server
【问题讨论】:
标签: ansible