Ansible Guru的快速提问。我想为一组特定的盒子运行一个ansible playbook,我将其复制到list.txt,忽略了ansible playbook中的库存和目标块:
---
- name: Ansible Runbook v.1.0
hosts: test1
gather_facts: yes
# serial: "10%"
当我运行以下命令时,我没有匹配主机:
ansible-playbook playbook.yaml --tags "simplejson" -vvv -i /x/home/list.txt
PLAY [Ansible Runbook v.1.0] **************************************************
skipping: no hosts matched
$cat list.txt
hostname2b
有关解决方法的任何想法吗?
答案 0 :(得分:1)
没有主机匹配的原因是在playbook中硬编码的主机test1
不存在于您从命令行指定的库存文件中。问题是ansible-playbook
命令不接受任何hosts
参数。所以没有直接绕过硬编码主机test1
的方法。
但是,正如here所解释的那样,有一种解决方法。您可以将变量用于hosts
,并从命令行为该变量指定all
。像这样:
---
- name: Ansible Runbook v.1.0
hosts: "{{ host_param }}"
gather_facts: yes
然后使用extra-vars
传递该变量:
ansible-playbook playbook.yaml -i /x/home/list.txt --extra-vars="host_param=all" --tags "simplejson" -vvv