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.