Ansible - Definir inventário em tempo de execução

Eu sou novo em ansible, então tenha paciência comigo se minhas perguntas forem um pouco básicas.

Cenário:

Eu tenho um grupo pequeno de hosts remotos, como [EPCs] [Clients] e [Testers], sou capaz de configurá-los da maneira que quero que sejam.

Problema:

Preciso escrever um manual, que, quando executado, solicita ao usuário o inventário em tempo de execução. Como exemplo, quando um manual é executado, o usuário deve ser solicitado da seguinte maneira: "Digite o número de EPCs que você deseja configurar" "Digite o número de clientes que você deseja configurar" "Digite o número de testadores que deseja configurar "

O que deve acontecer:

Agora, por exemplo, o usuário digita 2,5 e 8, respectivamente. Agora, o manual deve abordar apenas os 2 primeiros nós do grupo [EPCs], os 5 primeiros nós do grupo [Clientes] e os 7 primeiros nós do grupo [Testadores]. Não quero criar um grande número de subgrupos, por exemplo, se tenho 20 EPCs, não quero definir 20 grupos para minhas EPCs, quero um inventário dinâmico, que deve configurar automaticamente o máquinas de acordo com a entrada do usuário em tempo de execução usando ovars_prompt opção ou algo semelhante ao

Deixe-me postar uma parte parcial do meu manual para entender melhor o que está para acontecer:

---
- hosts: epcs # Now this is the part where I need a lot of flexibility

  vars_prompt:
    name: "what is your name?"
    quest: "what is your quest?"

  gather_facts: no

  tasks:

  - name: Check if path exists
    stat: path=/home/khan/Desktop/tobefetched/file1.txt
    register: st

  - name: It exists
    debug: msg='Path existence verified!'
    when: st.stat.exists

   - name: It doesn't exist
     debug: msg="Path does not exist"
     when: st.stat.exists == false

   - name: Copy file2 if it exists
     fetch: src=/home/khan/Desktop/tobefetched/file2.txt dest=/home/khan/Desktop/fetched/   flat=yes
     when: st.stat.exists

   - name: Run remotescript.sh and save the output of script to output.txt on the Desktop
     shell: cd /home/imran/Desktop; ./remotescript.sh > output.txt

   - name: Find and replace a word in a file placed on the remote node using variables
     shell: cd /home/imran/Desktop/tobefetched; sed -i 's/{{name}}/{{quest}}/g' file1.txt

    tags:
       - replace

@gli Tentei sua solução, tenho um grupo no meu inventário chamado teste com dois nós. Quando eu entro0..1 Eu recebo:

TASK: [echo sequence] ********************************************************* 
changed: [vm2] => (item=some_prefix0)
changed: [vm1] => (item=some_prefix0)
changed: [vm1] => (item=some_prefix1)
changed: [vm2] => (item=some_prefix1)

Da mesma forma, quando entro1..2 Eu recebo:

TASK: [echo sequence] ********************************************************* 
changed: [vm2] => (item=some_prefix1)
changed: [vm1] => (item=some_prefix1)
changed: [vm2] => (item=some_prefix2)
changed: [vm1] => (item=some_prefix2)

Da mesma forma, quando entro4..5 (nós nem mesmo estão presentes no inventário, recebo:

TASK: [echo sequence] ********************************************************* 
changed: [vm1] => (item=some_prefix4)
changed: [vm2] => (item=some_prefix4)
changed: [vm1] => (item=some_prefix5)
changed: [vm2] => (item=some_prefix5)

Qualquer ajuda seria muito apreciada. Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion