Communication issues between agent and server

DNS issues

If one of the following problems happen:

  • the agent does not manage to get its configuration back from the server with weird errors
  • the server complains about being unable to resolve the node hostname
  • when starting or restarting Rudder (or rudder-agent) service, cf-serverd start hangs

You probably have a name resolution problem. Please keep in mind that Rudder needs a working name resolution environment to operate properly, and therefore every machine should be at least able to resolve the name of their peer.

You have two options:

  • Fix your DNS server or the /etc/hosts on both the server and the node, so they can resolve each other (you can check using nslookup). You need to restart rudder-agent on the server to apply it
  • Disable hostname checking on the server in AdministrationSettingsUse reverse DNS lookups on nodes to reinforce authentication to policy server. This is the preferred solution if you have nodes behind a NAT.

Inventory issues

If you cannot send inventories to the server, it may be because of a proxy configured in /etc/profile or shell configuration. Rudder agents use cURL to send inventories to their server, and the server actually uses it too to send received inventories to the inventory web application. There are two solutions usable to prevent this problem:

  • Disable the proxy temporarily in your shell session, so Rudder can operate freely:
unset http_proxy; unset https_proxy; unset ftp_proxy; unset ftps_proxy; unset HTTP_PROXY; unset HTTPS_PROXY; unset FTP_PROXY; unset FTPS_PROXY
  • If you are using the Squid proxy, you are in luck, as the workaround might simply be to add this entry to your /etc/squid/squid.conf: ignore_expect_100 on, it will make Squid more tolerant to programs like cURL than send some terse http requests. (Thanks to Albaro A. for this tip!)