当使用Ansible的run_once选项时,通常会出现选定的主机不可达的情况。一个解决方法是使用条件控制语句来避免运行只能在单个主机上运行的任务。
例如,对于仅能在名为“server1”的主机上运行的任务,可以使用以下代码:
- name: Run task on server1 only
hosts: all
gather_facts: no
tasks:
- name: Execute task
command: /path/to/command
run_once: true
when: inventory_hostname == "server1"
这个任务将在所有主机上运行,但是只有当inventory_hostname等于“server1”时才会执行任务。这将避免任务因遇到无法连接的主机而失败。