Ansible - 收集事实之前的行动

sil*_*rdr 44 ansible ansible-facts

收集事实之前,有谁知道如何做某事(比如等待受管节点的端口/启动)?我知道我可以收集事实

gather_facts: no
Run Code Online (Sandbox Code Playgroud)

THEN等港口,但如果我需要的事实,同时也还需要等待,直到节点启动时?

udo*_*dan 57

收集事实等同于运行setup模块.您可以通过运行来手动收集事实.它没有记录,只是添加这样的任务:

- name: Gathering facts
  setup:
Run Code Online (Sandbox Code Playgroud)

gather_facts: noplaybook级别相结合,只有在执行上述任务时才会获取事实.

两者都在一个示例剧本中:

- hosts: all
  gather_facts: no
  tasks:

    - name: Some task executed before gathering facts
      # whatever task you want to run

    - name: Gathering facts
      setup:
Run Code Online (Sandbox Code Playgroud)


Bru*_*e P 21

这样的事情应该有效:

- hosts: my_hosts
  gather_facts: no

  tasks:
      - name: wait for SSH to respond on all hosts
        local_action: wait_for port=22

      - name: gather facts
        setup:

      - continue with my tasks...
Run Code Online (Sandbox Code Playgroud)

wait_for将在您的ansible主机上本地执行,等待服务器在端口22上响应,然后安装模块将执行事实收集,之后您可以执行任何其他操作.