如何 运行 清单文件中缺少主机的 ansible 剧本
How to run ansible playbook with host missing in inventory file
我正在尝试 运行 一些简单的操作手册来从尚未包含在清单文件中的新设备收集数据。
这是我用来从清单文件中已有的设备收集数据的示例剧本:
- name: "Demonstrate connecting to ASA"
connection: ansible.netcommon.network_cli
gather_facts: false
hosts: asa
tasks:
- name: Gather facts (asa)
cisco.asa.asa_command:
commands:
- show inventory
register: asa_vars
但我想要实现的是,我可以将系统的任何 IP 地址作为变量提供给 playbook,然后 playbook 在这个 IP 上执行任务,然后不在清单文件中。
我正在努力如何存档并告诉 ansible 使用给定的 IP 地址而不是清单中的主机。
我会为“host:”语句使用什么?我如何添加额外的参数,例如使用 SSH 堡垒主机,我通常会添加到清单文件中?
在你的剧本中:
- name: "Demonstrate connecting to ASA"
connection: ansible.netcommon.network_cli
gather_facts: false
hosts: "{{ host }}"
在命令行上:
ansible-playbook myplaybook.yml --extra-vars "host=8.8.8.8"
也许您只是缺少在命令行上指定库存的有点神秘的语法?
如果 -i 是一个逗号分隔的列表,它将把它当作一个主机列表而不是一个文件,所以调用:
ansible-playbook -i 192.168.1.103, play.yml
尾随逗号的 运行 将在一台主机上播放。
我正在尝试 运行 一些简单的操作手册来从尚未包含在清单文件中的新设备收集数据。 这是我用来从清单文件中已有的设备收集数据的示例剧本:
- name: "Demonstrate connecting to ASA"
connection: ansible.netcommon.network_cli
gather_facts: false
hosts: asa
tasks:
- name: Gather facts (asa)
cisco.asa.asa_command:
commands:
- show inventory
register: asa_vars
但我想要实现的是,我可以将系统的任何 IP 地址作为变量提供给 playbook,然后 playbook 在这个 IP 上执行任务,然后不在清单文件中。 我正在努力如何存档并告诉 ansible 使用给定的 IP 地址而不是清单中的主机。
我会为“host:”语句使用什么?我如何添加额外的参数,例如使用 SSH 堡垒主机,我通常会添加到清单文件中?
在你的剧本中:
- name: "Demonstrate connecting to ASA"
connection: ansible.netcommon.network_cli
gather_facts: false
hosts: "{{ host }}"
在命令行上:
ansible-playbook myplaybook.yml --extra-vars "host=8.8.8.8"
也许您只是缺少在命令行上指定库存的有点神秘的语法?
如果 -i 是一个逗号分隔的列表,它将把它当作一个主机列表而不是一个文件,所以调用:
ansible-playbook -i 192.168.1.103, play.yml
尾随逗号的 运行 将在一台主机上播放。