首页 > 解决方案 > 多个主机提示正在工作,但执行有问题

问题描述

这是我的代码:

---

 - 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”并且自然会失败。

我在这里想念什么?我想要做的是提示用户输入他想要执行的主机,输入然后执行任务到每个主机。我不想使用库存文件。可能吗?先感谢您

标签: 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: "{{ item }}"
       groups: dynamic_hosts
     with_items: "{{ server.split(',') }}"
   #### Dynamic Host
 - hosts: dynamic_hosts
   gather_facts: no
   tasks:
      - name: "Running task id"
        command: id

谢谢你


推荐阅读