Hi Adrian,
Thanks for your response!

see my comments inline

On Monday, August 14, 2017 at 7:43:21 PM UTC+3, Adrian Likins wrote:
>
>
>
> The default ansible inventory format is only 'ini-like' so I wouldn't 
> expect tools for handling standard ini files (like the ini_file module) to 
> work well.
> The examples you mention are good examples of where that falls apart.
>
>
> Haven't ran the examples or dug in yet, but first thought is it looks like 
> this is implementing what inventory and the 'hosts:' keyword does.
>
> I would try a more standard approach first, notes later...
>
> As far as generating a inventory with ansible tasks... That smells like 
> the wrong approach to me. 
>
> inventory ini file looks a little odd to me. Having a group and a host 
> with the same name is confusing (data_storage)
> Is 'data_storage_ver2' a valid resolveable hostname? if not, need to 
> provide a value for ansible_host
>

You are right, it is confusing, I changed the alias name to a different 
name.
'data_storage_ver2' is the applicative storage name that I use to add it to 
my setup.
It isn't the host name, I use the ip of it to connect to it with mount 
command.

 

>
>
>
> # main playbook 
> - include: library/add_NFS_domain.yml storage={{ item }}
>   with_inventory_hostnames: storage
>
>
> (why is the yaml file in library/ ? library is usually for per playbook 
> ansible modules)
>


I changed my code to work roles.
Thanks.
 

> Where does ovirt_hosts come from?
>

ovirt_hosts is a variable initialized in ovirt_hosts_facts.


> try roughly:
>
>
> # storage.ini (inventory)
>
> data_storage storage_domain_name=name1 address1=12.12.12.12 
> path1=data_storage dc_name=DC1
> data_storage_ver2 storage_domain_name=name2 address1=12.12.12.13 
> path1=data_storage2 dc_name=DC2
>

> [storage]
> data_storage
> data_storage_ver2
>

I gave it a try, seems to do the trick. Thanks!!! 

>
> # main playbook assuming ovirt_hosts and ovirt_auth is defined somewhere...
>
> - name: ensure ovirt storage domains for each host
>   # apply to hosts in the 'storage' group
>   hosts: storage
> - tasks:
>
>   - ovirt_hosts_facts:
>       pattern: "status=up and datacenter={{ dc_name }}"
>       auth: "{{ ovirt_auth }}"
>
>   - ovirt_storage_domains:
>       name: "{{ storage_domain_name }}"
>       host: "{{ ovirt_hosts[0].name }}"
>       data_center: "{{ dc_name }}"
>       auth: "{{ ovirt_auth }}"
>       nfs:
>         address: "{{ ip1 }}"
>         path: "{{ path1 }}"
>
> On Sun, Aug 13, 2017 at 5:21 PM, chipcha <[email protected] <javascript:>
> > wrote:
>
>> Hi all,
>>
>
>
>  
>
>> Here are few examples of the differences between the two:
>> 1. ini_file module - When adding a value with ini_file module the syntax 
>> must always be [key]=[value] even if there is no value:
>> [webservers]
>> foo=foo.example.com
>> bar=None
>>
>> ansible docs - In the docs the ini file uses standalone names, so we can 
>> have a group with only hostnames, for example:
>> [webservers]
>> foo.example.com
>> bar.example.com
>>
>> 2. ini_file module - It is not possible to declare host variables in a 
>> one liner:
>> [atlanta]
>> http_port=80
>> maxRequestsPerChild=808
>>
>> ansible docs:
>> [atlanta]
>> host1 http_port=80 maxRequestsPerChild=808
>>
>> Also it seems that the ini_file module does not support reading from the 
>> ini file only insert or update.
>>
>> What do you recommend for the best approach? is there any other ansible 
>> module I can use to manipulate data in my INI file or should I use a 
>> different approach? 
>>
>> Here is an example of my ini file:
>> # INI file
>> [data_storage]
>> data_storage name=name1 address1=12.12.12.12 path1=data_storage dc_name=
>> DC1
>>
>>
>> [data_storage_ver2]
>> data_storage_ver2 name=name2 address1=12.12.12.13 path1=data_storage2 
>> dc_name=DC2
>>
>>
>> [storage:children]
>> data_storage
>> data_storage_ver2
>>
>>
>> The playbook looks like this:
>> # main playbook 
>> ....
>> ....
>> - include: library/add_NFS_domain.yml storage={{ item }}
>>   with_inventory_hostnames: storage
>> ....
>>
>>
>> # task file
>> - ovirt_hosts_facts:
>>    pattern: "status=up and datacenter={{ hostvars[storage]['dc_name'] }}"
>>    auth: "{{ ovirt_auth }}"
>>
>>
>> - ovirt_storage_domains:
>>         name: "{{ hostvars[storage]['name'] }}"
>>         host: "{{ ovirt_hosts[0].name }}"
>>         data_center: "{{ hostvars[storage]['dc_name'] }}"
>>         auth: "{{ ovirt_auth }}"
>>         nfs:
>>                 address: "{{ hostvars[storage]['ip1'] }}"
>>                 path: "{{ hostvars[storage]['path1'] }}"
>>
>>
>>
>> -- 
>> 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] <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/3e4a9e25-1853-4963-95e8-b65e1cc85b69%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/3e4a9e25-1853-4963-95e8-b65e1cc85b69%40googlegroups.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/29efd5f5-00e8-4fdf-843c-b457db4419ad%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to