Hi,
thanks for your reply.
Yeah that's it. etcd_ip and postgresql_ip are in separate host. But I don't
understand, there are already on the host part, aren't it ?
what is the syntax you think of ?
This is the playbook which should get the etcd_ip
```
- hosts: etcd_cluster
become: true
become_method: sudo
any_errors_fatal: true
gather_facts: true
vars_files:
- vars/main.yml
- vars/system.yml
- "vars/{{ ansible_os_family }}.yml"
tasks:
- meta: flush_handlers
- import_tasks: tasks/sysctl.yml
tags: [ sysctl, kernel ]
- import_tasks: tasks/timezone.yml
when: timezone is defined and timezone | length > 0
ignore_errors: yes
tags: [ timezone, configure ]
- import_tasks: tasks/ntp.yml
when: ntp_enabled is defined and ntp_enabled == "true"
ignore_errors: yes
tags: [ ntp, configure ]
- import_tasks: tasks/etcd.yml
when: dcs_exists == "false" and dcs_type == "etcd"
tags: [ etcd, etcd_cluster ]
```
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/06ffcbeb-5d83-4e03-a792-803049b68545%40googlegroups.com.