I am trying install SAS Viya and I encountered the error: Consul service was not successfully started. There is no listener on port 8500 or 8501.
I would appreciate if anyone can guide me on how to go about troubleshooting or provide me the solution.
Thanks in advance.
@S_S,
If the deployment target has more than one network adapter, add a parameter that specifies which one should be used for Consul. Without the parameter, a deployment target that has multiple private IP addresses will fail. Here are examples that use the parameter:
For a local machine:
deployTarget ansible_connection=local consul_bind_adapter=eth0
For a remote machine:
deployTarget ansible_host=host1.example.com consul_bind_adapter=eth0
SAS® Viya® 3.4 for Linux: Deployment Guide -> Edit the Inventory File
@S_S,
I would like to see the most recent Consul log from /opt/sas/viya/config/var/log/consul/default directory.
Hi Alex,
Thank you for helping.
The log is as follow:
==> WARNING: BootstrapExpect Mode is specified as 1; this is the same as Bootstrap mode.
==> WARNING: Bootstrap mode enabled! Do not enable unless necessary
==> Starting Consul agent...
==> Error starting agent: Failed to get advertise address: Multiple private IPs found. Please configure one.
Regards,
Yong Chuan.
Update:
As there is error starting agent (based on the log), I restart it using the command:
/etc/init.d/sas-viya-consul-default restart
I reinstall SAS Viya and the following error is return:
"msg": "The conditional check 'sas_vars.internal_deployment_ipv4_override | trim != ''' failed. The error was: error while evaluating conditional (sas_vars.internal_deployment_ipv4_override | trim != ''): 'ansible.vars.unsafe_proxy.AnsibleUnsafeText object' has no attribute 'internal_deployment_ipv4_override'\n\nThe error appears to have been in '/sas/install/sas_viya_playbook/internal/gather-host-facts.yml': line 37, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: Set internal_deployment_ipv4 into sas_vars when the override is defined\n ^ here\n"
}
Once again I would appreciate any help or pointer to resolve this issue.
Thanks in advance.
@S_S,
Consul requires each machine to have a single, private IP address. It does not bind to a public IP address by default. A machine target that is specified in your inventory file has one of the following conditions:
You can resolve a problem by configuring an adapter for the Consul bind parameter in /etc/sysconfig/sas/sas-viya-consul-default. Note: This file was installed by the Ansible playbook. This problem can be avoided by specifying the consul bind adapter in the inventory file during deployment.
Locate the following section of the file:
# Consul option: -bind
# Specify the desired name of a network interface or IPv4 address.
export CONSUL_BIND_EXTERNAL=adapter-name
For adapter-name, supply the name of the adapter that Consul should use to locate the machine.
It is stated that the problem can be avoided by specifying the consul bind adapter in the inventory file during deployment. I would like to know the location and filename of this inventory file. I am not sure if this refer to the inventory.ini file as I cannot find CONSUL_BIND_EXTERNAL in the file.
Thank you.
@S_S,
If the deployment target has more than one network adapter, add a parameter that specifies which one should be used for Consul. Without the parameter, a deployment target that has multiple private IP addresses will fail. Here are examples that use the parameter:
For a local machine:
deployTarget ansible_connection=local consul_bind_adapter=eth0
For a remote machine:
deployTarget ansible_host=host1.example.com consul_bind_adapter=eth0
SAS® Viya® 3.4 for Linux: Deployment Guide -> Edit the Inventory File
Hi Alexal,
Thank you. I really appreciate your help and advice.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!