可以使用 ansible 变量在剧本中声明主机吗?
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
是变量。
当作业模板运行时,我希望 extra variables 弹出窗口中的用户能够使用:
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'
希望对您有所帮助
我有以下格式的剧本:
---
- hosts: myIP
tasks:
- name: Install a yum package in Ansible example
yum:
name: ThePackageIWantToInstall
state: present
其中 myIP
和 ThePackageIWantToInstall
是变量。
当作业模板运行时,我希望 extra variables 弹出窗口中的用户能够使用:
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'
希望对您有所帮助