Hi,

That did the job:
etcd_cluster: # recommendation: 3 or 5-7 nodes 
      hosts: 
        demo_postgres1: 
            etcd_ip: '***' 

I don't know why I used vars, maybe because I read a lot of ansible 
documentation like How to build your inventory and that cursed my brain ^^

atlanta:
  hosts:
    host1:
    host2:
  vars:
    ntp_server: ntp.atlanta.example.com
    proxy: proxy.atlanta.example.com


Thanks again Racke !

Le mardi 14 avril 2020 11:39:36 UTC+2, Baptiste Doublet a écrit :
>
> Hi Everybody,
>
> I have a problem that I can't resolve on my own.
> I want to deploy an etcd cluster with postgresql on the same servers
> I have three servers and this is my inventory file:
>
> ```
> all:
> children:
> etcd_cluster: # recommendation: 3 or 5-7 nodes
> hosts:
> demo_postgres1:
> vars:
> etcd_ip: '***'
> demo_postgres2:
> vars:
> etcd_ip: '***'
> demo_postgres3:
> vars:
> etcd_ip: '***'
> master:
> hosts:
> demo_postgres1:
> vars:
> postgres_ip: '***'
> postgresql_exists: 'false'
> replica:
> hosts:
> demo_postgres2:
> vars:
> postgres_ip: '***'
> postgresql_exists: 'false'
> demo_postgres3:
> vars:
> postgres_ip: '***'
> postgresql_exists: 'false'
> balancers:
> hosts:
> demo_haproxy1:
> vars:
> haproxy_ip: '***'
> demo_haproxy2:
> vars:
> haproxy_ip: '***'
> demo:
> vars:
> ansible_ssh_common_args: "-F ../../ssh_config/demo_config"
> children:
> balancers:
> etcd_cluster: 
> postgres_cluster:
> children:
> master:
> replica:
> ```
> I have the demo_postgres[0-3] servers that run etcd and postgres. Just to 
> prepare an external instance for etcd cluster, I have separated its in two 
> distinct groups: etcd_cluster and postgres_cluster.
> I have etcd_ip vars and postgres_ip vars respectively on these groups.
>
> My problem is when I run my playbook with hosts: etcd_cluster and I print 
> hostvars, I get the hostvars of postgres_cluster:
>
> ```
> PLAY [etcd_cluster] 
> ***************************************************************************************************************************************************************************
>
> TASK [Gathering Facts] 
> ************************************************************************************************************************************************************************
> ok: [demo_postgres1]
> ok: [demo_postgres3]
> ok: [demo_postgres2]
>
> TASK [Ansible | List all known variables and facts] 
> *******************************************************************************************************************************************
> ok: [demo_postgres1] => {
>     "hostvars[inventory_hostname]['vars']": {
>         "postgres_ip": "***",
>         "postgresql_exists": "false"
>     }
> }
> ok: [demo_postgres2] => {
>     "hostvars[inventory_hostname]['vars']": {
>         "postgres_ip": "***",
>         "postgresql_exists": "false"
>     }
> }
> ok: [demo_postgres3] => {
>     "hostvars[inventory_hostname]['vars']": {
>         "postgres_ip": "***",
>         "postgresql_exists": "false"
>     }
> }
>
> ```
> I didn't find any information about the merging of hostvars when the host 
> is in multiple groups and when I have tested to remove the postgres_cluster 
> group, I get the correct hostvars:
>
> ```
> PLAY [etcd_cluster] 
> ***************************************************************************************************************************************************************************
>
> TASK [Gathering Facts] 
> ************************************************************************************************************************************************************************
> ok: [demo_postgres1]
> ok: [demo_postgres3]
> ok: [demo_postgres2]
>
> TASK [Ansible | List all known variables and facts] 
> *******************************************************************************************************************************************
> ok: [demo_postgres1] => {
>     "hostvars[inventory_hostname]['vars']": {
>         "etcd_ip": "***"
>     }
> }
> ok: [demo_postgres2] => {
>     "hostvars[inventory_hostname]['vars']": {
>         "etcd_ip": "***"
>     }
> }
> ok: [demo_postgres3] => {
>     "hostvars[inventory_hostname]['vars']": {
>         "etcd_ip": "***"
>     }
> }
> ```
>
> I would expect that my etcd_ip was merged with postgres_ip ? I can resolve 
> this by adding the etcd_ip in postgres_cluster hostvars but I want to 
> understand why merge is not working.
>
> If you need more information, feel free to ask.
>
> Best regards,
>
> BDO
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/c455f9f0-ff4a-4d15-b7c1-d0f9ff06bc37%40googlegroups.com.

Reply via email to