[英]Can ansible variables be used to declare hosts in a playbook?
我有以下格式的劇本:
---
- hosts: myIP
tasks:
- name: Install a yum package in Ansible example
yum:
name: ThePackageIWantToInstall
state: present
其中myIP
和ThePackageIWantToInstall
是變量。
當作業模板運行時,我希望額外變量彈出窗口中的用戶能夠使用:
myIP = 192.168.1.1
ThePackageIWantToInstall = nano
由於文檔沒有提供通過作業模板提供變量的示例,這可能嗎?
是的。
- name: Do The Thing
hosts: "{{ foo }}"
roles:
- "{{ role }}"
需要胡子和引號。
(我不使用它,但有人建議將其作為編輯,謝謝...)
foo: 值
我用 add_hosts 實現了類似的事情。 這里我不是安裝包,而是創建名稱從命令行傳遞的文件。 任意數量的主機(可以從命令行傳遞以逗號分隔)。
# cat addhost2.yml
- hosts: localhost
gather_facts: no
tasks:
- add_host:
name: "{{ item }}"
groups: hosts_from_commandline
with_items: "{{ new_hosts_passed.split(',') }}"
- hosts: hosts_from_commandline
tasks:
- name: Ansible create file with name passed from commandline
file:
path: "/tmp/{{ filename_from_commandline }}"
state: touch
# ansible-playbook -i hosts addhost2.yml --extra-vars='new_hosts_passed=192.168.3.104,192.168.3.113 filename_from_commandline=lathamdkv'
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.