BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
S_S
Obsidian | Level 7 S_S
Obsidian | Level 7

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.

SAS Viya Installation Error.png

 

 

I would appreciate if anyone can guide me on how to go about troubleshooting or provide me the solution.

Thanks in advance.

1 ACCEPTED SOLUTION

Accepted Solutions
alexal
SAS Employee

@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

View solution in original post

8 REPLIES 8
alexal
SAS Employee

@S_S,

 

I would like to see the most recent Consul log from /opt/sas/viya/config/var/log/consul/default directory.

S_S
Obsidian | Level 7 S_S
Obsidian | Level 7

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.

S_S
Obsidian | Level 7 S_S
Obsidian | Level 7

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.

alexal
SAS Employee

@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:

 

  • multiple network adapters that have been assigned private IP addresses.
  • no private IP address.


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.

S_S
Obsidian | Level 7 S_S
Obsidian | Level 7

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.

alexal
SAS Employee

@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
Obsidian | Level 7 S_S
Obsidian | Level 7

Hi  Alexal,

 

Thank you. I really appreciate your help and advice.

alexal
SAS Employee

@S_S,

 

You are welcome!