Can you create the VM within the Ansible script, add the new IP to a host 
group, and go from there? I do this all the time in my Ansible scripts.

An additional suggestion: start using SSH keys instead of username/password 
and you might find that security management is significantly easier. I 
don't know what your use case involves, however, so this might not work for 
you.

Example host group script:

---

# Create the maintenance instance for this environment. The server
# address is added in the logging group and used for later plays.
- hosts: 127.0.0.1
  connection: local
  vars_files:
    - config.yml
  tasks:
    - include: tasks/create_instance.yml ami_instance_name={{ 
app_aws_moniker }}-ec2-logging instance_group=logging 
instance_security_group={{ environment_log_security_group }}

# Configures the maintenance instance as a web and application server.
- hosts: logging
  connection: ssh
  remote_user: ubuntu
  vars_files:
    - config.yml
    - vars/aws/base.yml
    - vars/aws/dns.yml
    - vars/aws/vpc.yml
  roles:
    - { role: common }
    - { role: rsyslog_server }
    - { role: rsyslog_base }

Regards,
-scott

On Monday, May 19, 2014 3:56:31 PM UTC-4, Noah Parker wrote:
>
> The way we are trying to use Ansible is to dynamically configure a server 
> during instantiation of a VM. We won't know the IP or hostname of the VM 
> until it is created and once the IP is known, then we want to tell Ansible 
> what to do with it. A hosts/inventory can't be populated when we don't yet 
> know what the IP will be. The current workaround is to launch the VM, grab 
> the IP, modify the hosts file using sed, and then running the playbook to 
> fully configure the server and then resetting the hosts file for next use. 
> I feel like the hosts file dependency is really limiting how we want to use 
> Ansible. 
>
> We will always configure one server at a time, but in this same fashion 
> and there could be many in a day.
>
> I just tried this command and it worked this time, however, since we 
> prefer to use UN and PW for SSH instead of keys (same reason as above, and 
> we don't want to have to establish SSH connection and accept key each time 
> we run Ansible on a new host) we need a method of specifying SSH 
> credentials to the command line using this fake inventory 
> method: ansible-playbook SNMP.yml -i 192.168.1.24,
>
>
>
> On Mon, May 19, 2014 at 12:31 PM, Matt Martz <[email protected]<javascript:>
> > wrote:
>
>> I am somewhat confused. You can't use an inventory file because you have 
>> too many hosts, but need to use one because you have too many usernames and 
>> passwords?
>>
>> When you use: -i 192.168.1.24,
>>
>> Ansible explicitly only knows of a single host called 192.168.1.24.  It 
>> has no concepts of groups or other hosts if you don't give it an inventory 
>> file.
>>
>> Your hosts declaration would either need to be "all" or "192.168.1.24" 
>> otherwise it will never match its knowledge of your inventory.
>>
>> Maybe you should looks into creating a dynamic inventory script to pull 
>> from an API or CMDB containing info about your hosts.
>>
>>
>>
>> On Monday, May 19, 2014, Noah Parker <[email protected] <javascript:>> 
>> wrote:
>>
>>> root@MidLinux:/var# ansible-playbook -i '192.168.1.24,' SNMP.yml
>>>
>>> PLAY [SNMP] 
>>> *******************************************************************
>>> skipping: no hosts matched
>>>
>>> In the yml file, I specify SNMP for group. If I leave this blank, I get: 
>>>
>>> ERROR: hosts declaration is required
>>>
>>> SNMP is a real group in the hosts file. A hosts file is not practical 
>>> for me since I have so many servers. Additionally, I would need a way to 
>>> pass in SSH UN and PW since those parameters are also kept in the hosts 
>>> file. Any help would be appreciated.
>>>
>>>
>>> On Sunday, May 18, 2014 9:10:39 PM UTC-7, Brian Coca wrote:
>>>>
>>>> what variations? what errors would you get? more information would be 
>>>> useful for debugging.
>>>>
>>>> On Sun, May 18, 2014 at 11:46 PM, Noah Parker <[email protected]> wrote:
>>>>
>>>>> " means that I tried using the command several times using variations 
>>>>> in syntax and it was not successful. 
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>> -- 
>>>> Brian Coca
>>>> Stultorum infinitus est numerus
>>>> 011000010111001001100101011011100010011101110100001000000111
>>>> 100101101111011101010010000001110011011011010110000101110010
>>>> 0111010000100001
>>>> Pedo mellon a minno
>>>>  
>>>  -- 
>>> 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/0f991303-ebc1-44c0-ae8c-44343faa9afc%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/0f991303-ebc1-44c0-ae8c-44343faa9afc%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> -- 
>> Matt Martz
>> [email protected] <javascript:>
>> http://sivel.net/
>>
>>  -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "Ansible Project" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/ansible-project/G_9JRGp5jGE/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/CAD8N0v9wNt2s0TGt9pqrSvS18ypWV3uXyY1xuy8u9iK9iHCXKg%40mail.gmail.com<https://groups.google.com/d/msgid/ansible-project/CAD8N0v9wNt2s0TGt9pqrSvS18ypWV3uXyY1xuy8u9iK9iHCXKg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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/1cf5888a-b04f-4fb8-b5a9-e502b25650f0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to