unable configure haproxy.cfg through ansible using template

700 views
Skip to first unread message

Milind Sisodiya

unread,
Aug 13, 2017, 8:14:43 AM8/13/17
to Ansible Project
We are getting following error which is not letting us to configure or paste the haproxy.cfg from template file. Do we need any specific modules to replace with variable as we have in our playbook below?

Error:

TASK [Copying config files] ********************************************************************************************************************************************
fatal: [172.31.22.4]: FAILED! => {"changed": true, "exit_status": 1, "failed": true, "msg": "failed to validate", "stderr": "[ALERT] 224/120802 (6071) : parsing [/root/.ansible/tmp/ansible-tmp-1502626081.81-189349085727202/source:29] : server nginx1 has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.\n[ALERT] 224/120802 (6071) : parsing [/root/.ansible/tmp/ansible-tmp-1502626081.81-189349085727202/source:30] : server nginx2 has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.\n[ALERT] 224/120802 (6071) : Error(s) found in configuration file : /root/.ansible/tmp/ansible-tmp-1502626081.81-189349085727202/source\n[ALERT] 224/120802 (6071) : Fatal errors found in configuration.\n", "stderr_lines": ["[ALERT] 224/120802 (6071) : parsing [/root/.ansible/tmp/ansible-tmp-1502626081.81-189349085727202/source:29] : server nginx1 has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.", "[ALERT] 224/120802 (6071) : parsing [/root/.ansible/tmp/ansible-tmp-1502626081.81-189349085727202/source:30] : server nginx2 has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.", "[ALERT] 224/120802 (6071) : Error(s) found in configuration file : /root/.ansible/tmp/ansible-tmp-1502626081.81-189349085727202/source", "[ALERT] 224/120802 (6071) : Fatal errors found in configuration."], "stdout": "", "stdout_lines": []}
        to retry, use: --limit @/etc/ansible/roles/task/lb.retry
===============================================================


yml file


   haproxy_chroot: '/var/lib/haproxy'
   haproxy_user: 'haproxy'
   haproxy_group: 'haproxy'
   haproxy_version: '1.5'

  # Frontend settings.
   haproxy_frontend_name: 'hafrontend'
   haproxy_frontend_bind_address: '*'
   haproxy_frontend_port: 80
   haproxy_frontend_mode: 'http'

  # Backend settings.

   haproxy_backend_name: 'habackend'
   haproxy_backend_mode: 'http'
   haproxy_backend_balance_method: 'roundrobin'
   haproxy_backend_httpchk: 'HEAD / HTTP/1.1\r\nHost:localhost'

  # List of backend servers.
   haproxy_backend_servers:
     - {name: nginx1, address: 172.31.25.133}
     - {name: nginx2, address: 172.31.25.145}

  tasks:
   - name: install proxy
     yum:
       name: haproxy
       state: present

   - name: enable proxy
     service:
       name: haproxy
       enabled: yes
       state: started

   - name: Copying config files
     template:
       src: /etc/ansible/roles/template/haproxy.cfg.j2
       dest: /etc/haproxy/haproxy.cfg
       backup: yes
       mode: 0644
       validate: haproxy -f %s -c -q

=================================================================================================
File:---- haproxy.cfg.j2



global
  log /dev/log  local0
  log /dev/log  local1 notice
{% if haproxy_socket != '' %}
  stats socket {{ haproxy_socket }} level admin
{% endif %}
{% if haproxy_chroot != '' %}
  chroot {{ haproxy_chroot }}
{% endif %}
  user {{ haproxy_user }}
  group {{ haproxy_group }}
  daemon
{% for global_var in haproxy_global_vars %}
  {{ global_var }}
{% endfor %}
nbcore 2
defaults
  log global
  mode  http
  option  httplog
  option  dontlognull
{% if haproxy_version == '1.4' %}
        contimeout 5000
        clitimeout 50000
        srvtimeout 50000
{% else %}
        timeout connect 5000
        timeout client 50000
        timeout server 50000
{% endif %}

frontend {{ haproxy_frontend_name }}
    bind {{ haproxy_frontend_bind_address }}:{{ haproxy_frontend_port }}
    mode {{ haproxy_frontend_mode }}
    default_backend {{ haproxy_backend_name }}

backend {{ haproxy_backend_name }}
    mode {{ haproxy_backend_mode }}
    balance {{ haproxy_backend_balance_method }}
    option forwardfor
{% if haproxy_backend_httpchk != '' %}
    option httpchk {{ haproxy_backend_httpchk }}
{% endif %}
    cookie SERVERID insert indirect
{% for backend in haproxy_backend_servers %}
    server {{ backend.name }} {{ backend.address }} cookie {{ backend.name }} check
{% endfor %}



Thomas

unread,
Aug 14, 2017, 2:27:59 AM8/14/17
to Ansible Project
Quite less information for the used role.
But mabybe only the ports are missing for the backends?
   - {name: nginx1, address: 172.31.25.133:80}
     - {name: nginx2, address: 172.31.25.145:8080}
...

Reply all
Reply to author
Forward
0 new messages