For any one interested, here is the playbook

    ---
    - hosts: localhost
      gather_facts: False
      vars_prompt:
        - name: range
          prompt: Enter range of EPCs (e.g. 1..5)
          private: False
          default: "1"
      pre_tasks:
        - name: Set node id variables
          set_fact:
            start: "{{ range.split('..')[0] }}"
            stop: "{{ range.split('..')[-1] }}"
        - name: "Add hosts:"
          add_host: name="vm{{item|int +1}}" groups=just_created
          with_sequence: "start={{start}} end={{stop}} "

    - hosts: just_created
      gather_facts: False
      tasks:
        - name: echo sequence
          shell: echo "cmd"


On Sunday, August 17, 2014 1:42:48 PM UTC-7, Imran Khan wrote:
>
> I am liitle new to ansible so bear with me if my questions are a bit basic.
>
> Scenario:
>
> I have a few group of Remote hosts such as [EPCs] [Clients] and [Testers] 
> I am able to configure them just the way I want them to be.
>
> Problem:
>
> I need to write a playbook, which when runs, asks the user for the 
> inventory at run time. As an example when a playbook is run the user should 
> be prompted in the following way: "Enter the number of EPCs you want to 
> configure" "Enter the number of clients you want to configure" "Enter the 
> number of testers you want to configure"
>
> What should happen:
>
> Now for instance the user enters 2,5 and 8 respectively. Now the playbook 
> should only address the first 2 nodes in the group [EPCs], the first 5 
> nodes in group [Clients] and the first 7 nodes in the group [Testers] . I 
> don't want to create a large number of sub-groups, for instance if I have 
> 20 EPCs, then I don't want to define 20 groups for my EPCs, I want somewhat 
> of a dynamic inventory, which should automatically configure the machines 
> according to the user input at run time using the *vars_prompt* option or 
> something similar to that
>
> Let me post a partial part of my playbook for better understanding of what 
> is to happen:
>
> ---
> - 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
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/e9b4b576-e3ad-482c-97c0-e3a9fcaf2ba3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to