Introduction
This document describes how to solve the error "Connection refused" in the CiscoCloud Orchestrator (CCO) when is trying to connect to Rabbit
Prerequisites
Requirements
- The information in this document is based in CloudCenter 4.x
- CiscoCloud Orchestrator (CCO)
- Rabbit server (AMQP)
- root access to CCO and AMQP
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Problem
In new deployments or after a change in the Rabbit server hostname, the CCO receives an error at the moment to establish the handshake with Rabbit with the following ERROR
2018-04-17 23:58:52,180 ERROR listener.SimpleMessageListenerContainer [rabbitListenerContainer-1] - Failed to check/redeclare auto-delete queue(s).
org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused (Connection refused)
at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:62) ~[spring-rabbit-1.7.4.RELEASE.jar!/:?]
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:368) ~[spring-rabbit-1.7.4.RELEASE.jar!/:?]
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:573) ~[spring-rabbit-1.7.4.RELEASE.jar!/:?]
at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1430) ~[spring-rabbit-1.7.4.RELEASE.jar!/:?]
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1411) ~[spring-rabbit-1.7.4.RELEASE.jar!/:?]
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1387) ~[spring-rabbit-1.7.4.RELEASE.jar!/:?]
at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:336) ~[spring-rabbit-1.7.4.RELEASE.jar!/:?]
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.redeclareElementsIfNecessary(SimpleMessageListenerContainer.java:1171) [spring-rabbit-1.7.4.RELEASE.jar!/:?]
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1422) [spring-rabbit-1.7.4.RELEASE.jar!/:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_162]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_162]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_162]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_162]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_162]
at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_162]
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:673) ~[?:1.8.0_162]
at com.rabbitmq.client.impl.SocketFrameHandlerFactory.create(SocketFrameHandlerFactory.java:50) ~[amqp-client-4.0.3.jar!/:4.0.3]
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:907) ~[amqp-client-4.0.3.jar!/:4.0.3]
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:859) ~[amqp-client-4.0.3.jar!/:4.0.3]
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:799) ~[amqp-client-4.0.3.jar!/:4.0.3]
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:352) ~[spring-rabbit-1.7.4.RELEASE.jar!/:?]
... 8 more
Solution
Step 1. Log in in the Rabbit server
Step 2. list the connections in Rabbit server
[root@rabbit-490 ~]# rabbitmqctl list_connections -p /cliqr
Listing connections
Step 3. Locate the RABBITINSTALLED file
[root@rabbit-490 ~]# ls -lrt /usr/local/osmosix/etc/.RABBITINSTALLED
-rw-r--r-- 1 root root 0 Apr 17 23:40 /usr/local/osmosix/etc/.RABBITINSTALLED
Step 4. Remove the file.
[root@rabbit-490 ~]# rm -rf /usr/local/osmosix/etc/.RABBITINSTALLED
[root@rabbit-490 ~]# ls -lrt /usr/local/osmosix/etc/.RABBITINSTALLED
[root@rabbit-490 ~]#
Step 5. Run the file rabbit_config.sh
[root@rabbit-490 ~]# cd /usr/local/cliqr/bin/
root@rabbit-490 bin]# ls -lrt
total 80
-rwxr-xr-x 1 cliqruser cliqruser 23235 Apr 9 16:12 wizard_util.sh
-rwxr-xr-x 1 cliqruser cliqruser 12133 Apr 9 16:12 props_migration_481_to_482.sh
-rw-r--r-- 1 cliqruser cliqruser 236 Apr 9 16:12 props_481_to_482_rabbit.csv
-rwxr-xr-x 1 cliqruser cliqruser 4004 Apr 9 16:12 gua_config_wizard.sh
-rwxr-xr-x 1 cliqruser cliqruser 3553 Apr 9 16:12 gua_config_cli.sh
-rwxr-xr-x 1 cliqruser cliqruser 8966 Apr 10 02:40 rabbit_config_cli.sh
-rwxr-xr-x 1 cliqruser cliqruser 9394 Apr 10 02:40 rabbit_config_wizard.sh
-rwxr-xr-x 1 cliqruser cliqruser 1290 Apr 10 02:41 rabbit_config.sh
-rwxr-xr-x 1 cliqruser cliqruser 279 Apr 10 02:41 startup_services.sh
[root@rabbit-490 bin]# ./rabbit_config.sh
Adding vhost /cliqr
Creating vhost "/cliqr"
Adding user cliqr
Creating user "cliqr"
Setting permissions for user "cliqr" in vhost "/cliqr"
Setting cliqr as admin
Setting tags for user "cliqr" to [administrator]
Enable management plugin
Plugin configuration unchanged.
Applying plugin configuration to rabbit@rabbit-490... nothing to do.
Adding cliqr_worker
Creating user "cliqr_worker"
Setting permissions for user "cliqr_worker" in vhost "/cliqr"
Step 6. Log in in CCO as root
Step 7. Restart CCO service
[root@cco-490 ~]# systemctl start cco
[root@cco-490 ~]#
Step 8. Verify CCO is running
[root@cco-490 ~]# systemctl status cco
● cco.service - Cloud Center Orchestrator
Loaded: loaded (/etc/systemd/system/cco.service; enabled; vendor preset: disabled)
Active: active (exited) since Wed 2018-04-18 22:02:09 UTC; 5min ago
Process: 3329 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 3329 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CGroup: /system.slice/cco.service
Apr 18 22:02:09 cco-490 systemd[1]: Starting Cloud Center Orchestrator...
Apr 18 22:02:09 cco-490 systemd[1]: Started Cloud Center Orchestrator.
[root@cco-490 ~]#
Step 9. Log in in rabbit as root
Step 10. List the number of connections
[root@rabbit-490 bin]# rabbitmqctl list_connections -p /cliqr
Listing connections
cliqr_worker 10.31.127.24 50556 running
cliqr 10.31.127.24 50568 running
Now you can see to connection from CCO, cliqr_worker and cliqr.