ansible - 多个主机提示正在工作,但执行有问题
问题描述
这是我的代码:
---
- hosts: localhost
gather_facts: no
vars_prompt:
- name: server
prompt: "What is the hostname/ip you want to execute at?"
private: no
tasks:
- add_host:
name: "{{ server }}"
groups: dynamic_hosts
with_items: "{{ server.split(',') }}"
#### Dynamic Host
- hosts: dynamic_hosts
gather_facts: no
tasks:
- name: "Running task id"
command: id
这是行为:
What is the hostname you want to execute at?: 10.0.0.2, 10.0.0.3
PLAY [localhost] *******************************************************************************************************************************************************************************************************************
TASK [add_host] ********************************************************************************************************************************************************************************************************************
changed: [localhost] => (item= 10.0.0.2)
changed: [localhost] => (item= 10.0.0.3)
PLAY [dynamic_hosts] ***************************************************************************************************************************************************************************************************************
TASK [Running task id] ********************************************************************************************************************************************
fatal: [10.0.0.2, 10.0.0.3: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname 10.0.0.2, 10.0.0.3: Name or service not known\r\n", "unreachable": true}
to retry, use: --limit @/home/user/playbook.yaml
PLAY RECAP *************************************************************************************************************************************************************************************************************************
localhost : ok=1 changed=1 unreachable=0 failed=0
10.0.0.2, 10.0.0.3 : ok=0 changed=0 unreachable=1 failed=0
因此,多个主机的输入工作正常,但是当我尝试在主机中调用组时,它基本上会尝试“ssh 10.0.0.2, 10.0.0.3”并且自然会失败。
我在这里想念什么?我想要做的是提示用户输入他想要执行的主机,输入然后执行任务到每个主机。我不想使用库存文件。可能吗?先感谢您
解决方案
工作代码:
---
- hosts: localhost
gather_facts: no
vars_prompt:
- name: server
prompt: "What is the hostname/ip you want to execute at?"
private: no
tasks:
- add_host:
name: "{{ item }}"
groups: dynamic_hosts
with_items: "{{ server.split(',') }}"
#### Dynamic Host
- hosts: dynamic_hosts
gather_facts: no
tasks:
- name: "Running task id"
command: id
谢谢你
推荐阅读
- ocr - Tesseract 多种输出格式
- node.js - 谷歌云存储“无效的上传请求”错误。错误的请求
- android - 如何测试打开的连接是否正常工作?
- python - 更改熊猫数据框中满足不同条件的所有值
- javascript - Javascript数组存储
- vbscript - 使用经典 ASP 的 GoCardless API
- c# - 在按键触发时调整大小
- python - 如何将 __init__.py 中的函数导入蓝图(或其他模块)?(烧瓶)
- java - Java 在使用 Math.abs(diff) 进行排序时出现意外的 IllegalArgumentException
- android - 如何将复杂类型的对象传递给 Android 中的 WorkManager。即列表、地图、POJO