Hi,
As I understand etc_ip and postgresql_ip are variable specific for each
host, and so they should be in hosts parts of your inventory file (Here
you are doing a mix).
postgresql_existscan be setup in a your postgresql group, but I'm not
sure if it is really necessary to have it
See there for example :
https://docs.ansible.com/ansible/latest/plugins/inventory/yaml.html
If you want further help, please provide your playbooks used for your
outputs.
And for the record, no needs to use a playbook to list variables,
command "ansible-inventory" can be used successfully for this
Regards,
Le 14/04/2020 à 11:39, 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 varsrespectivelyon 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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/d674a6d6-6640-4abb-ba52-51a5f2369692%40googlegroups.com
<https://groups.google.com/d/msgid/ansible-project/d674a6d6-6640-4abb-ba52-51a5f2369692%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
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/1badb29e-33f5-c6ed-bde4-3610c90cb571%40lenhof.eu.org.