2017-06-22 20 views
0

我的劇本(/home/user/Ansible/dist/playbooks/test.yml):是否可以爲Ansible劇本指定來自兩個不同庫存文件的組?

- hosts: regional_clients 
    tasks: 
    - shell: /export/home/user/ansible_scripts/test.sh 
     register: shellout 
    - debug: var=shellout 
- hosts: web_clients 
    tasks: 
    - shell: /var/www/html/webstart/release/ansible_scripts/test.sh 
     register: shellout 
    - debug: var=shellout 
    - command: echo catalina.sh start 
     register: output 
    - debug: var=output 

[regional_clients]組在/home/user/Ansible/webproj/hosts指定和[web_clients]組在/home/user/Ansible/regions/hosts指定。

有沒有一種方法可以使上述工作?目前,運行劇本將失敗,因爲[regional_clients][web_clients]在缺省庫存文件/home/user/Ansible/dist/hosts中都已定義。

+0

在我的劇本,我想指定組[regional_clients]從/ home/user中/ Ansible /地區/主機的一場比賽,併爲第二個上場,我想指定組[web_clients]從/家/用戶/ Ansible /地區/主機。 –

+0

這是因爲庫存文件/ home/user/Ansible/regions/hosts和/ home/user/Ansible/regions/hosts由其他組維護,並且不斷更改,否則我只需在我的默認庫存文件中定義這兩個組(/家/用戶/ Ansible /距離/主機)。 –

回答

1

是的,你可以寫一個簡單的shell腳本:

#!/bin/sh 
cat /home/user/Ansible/webproj/hosts /home/user/Ansible/regions/hosts 

並把它作爲Ansible一個dynamic inventory

ansible-playbook -i my_script test.yml 

這個問題,但是,在我看來就像與您的組織有關的問題,而不是技術問題。如果您的環境如此複雜並且由不同方維護,那麼請使用某種配置數據庫(以及Ansible中的動態庫存,以檢索數據),而不是用戶路徑中的單個文件。

+0

感謝您的信息,這對我很好。 –

相關問題