2015-10-22 44 views
0

Ansible Guru的快速問題。我要運行一組特定的箱子,我複製到LIST.TXT忽視的庫存和在ansible劇本目標塊的ansible劇本: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

能否請您粘貼一些文本文件中向我們展示你正在試圖獲得Ansible解析什麼? – ocean

回答

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 
+0

嗯。我仍然收到相同的信息。 ansible-playbook playbook.yaml --extra-vars =「hosts = hostname2」--tags「simplejson」-vvv PLAY [Ansible Runbook v.1.0] **************** ********************************** 跳過:沒有匹配的主機 – Zerg12

+0

@ Zerg12你真的有一個主機命名'hostname2'?這些文件的示例輸出顯示爲'hostname2b'。 – taskinoor

+0

它有什麼區別嗎?它可以是任何server2.box.com。我想我已經明白它應該指向庫存文件[group1]中的主機組標籤 – Zerg12

相關問題