On 4/15/20 8:41 PM, Baptiste Doublet wrote:
> 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 ?

Try to remove vars: from your inventory when you specify host variables, e.g.

etcd_cluster: # recommendation: 3 or 5-7 nodes
      hosts:
        demo_postgres1:
            etcd_ip: '***'

Regards
         Racke

> 
> 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 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/06ffcbeb-5d83-4e03-a792-803049b68545%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/06ffcbeb-5d83-4e03-a792-803049b68545%40googlegroups.com?utm_medium=email&utm_source=footer>.


-- 
Ecommerce and Linux consulting + Perl and web application programming.
Debian and Sympa administration. Provisioning with Ansible.

-- 
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/d3fc9188-ea9b-f3af-e06a-79b93fb124f6%40linuxia.de.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to