This blog post contains common issues and resolutions related to setting up the solution instance in vCloud Application Director. Register a Solution Instance documentation contains general information related to setting up a solution instance for puppet based application deployment using Application Director.
vCloud Application Director uses mcollective to communicate with puppet master for the deployment of nodes with puppet modules. Its advisable to use the 'Test Connection' feature on solution instance page after you setup the solution instance to make sure there is no issue with connecting to puppet master from Application Director before proceeding with deployment of puppet based application.
Common Issues and Resolution Steps
Common steps to resolve issue with 'Test Connection' for solution instance are:
1. Check the error message shown on the application director.
2. Verify the log file on puppet master. This may give you more information related to 'Test Connection' failure. For puppet enterprise on a CentOS machine, mcollective log is generally available at /var/log/pe-mcollective/mcollective.log. For community version of puppet master, it can be found in /var/log directory.
Timestamp mismatch between vCloud Application Director appliance server and Puppet Master server
If Application Director appliance and puppet master timestamp are not in sync, it will result in failure in communication between Application Director and Puppet Master. This issue was evident from the mcollective log file message that there is some time difference between the time on puppet master and message received time.
Log file Message:
`rescue in block in run' Message 8a75016cd4b354d790bc753ae4d54dc6 from cert=vmware-appd@localhost.localdom created at 1390936371 is 62 seconds old, TTL is 60
Solution:
To resolve this issue, you can use the ntp service to synchronize the date and time of the machines.
Issue with RegisterWithAppD.rb script on CentOS 6.5x64
Reference section contains link to KB article to use the RegisterWithAppD script details to register a solution instance in a deployment environment. If you see issues as shown below, it may be related to the openssl of CentOS65x64 build that it only support limited algorithms.
https://www.centos.org/forums/viewtopic.php?f=14&t=43803
https://bugzilla.redhat.com/show_bug.cgi?id=1022468
[root@c65x64-pe311 tmp]# ruby RegisterWithAppD.rb -i <ipAddress> -u <userName> -p <password> -d <deploymentEnvironmentName> -s
"Finding deployment environment Puppet 3.1.0 on CentOS 6.5 x64"
/usr/lib/ruby/1.8/net/http.rb:586:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server key exchange B: EC lib (OpenSSL::SSL::SSLError)
from /usr/lib/ruby/1.8/net/http.rb:586:in `connect'
from /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
from /usr/lib/ruby/1.8/net/http.rb:542:in `start'
from /usr/lib/ruby/1.8/net/http.rb:1035:in `request'
from RegisterWithAppD.rb:94:in `sendApiRequestAndParseInt'
from RegisterWithAppD.rb:80:in `sendApiRequestAndParse'
from RegisterWithAppD.rb:144:in `findDE'
from RegisterWithAppD.rb:215
Solution:
The solution is to do yum downgrade on openssl, or upgrade if there is a newer version out in the repository for this fix.
References:
1. General guidelines related to VMware vCloud application director, using puppet module in an application blueprint and deployment instructions can be found here @ Using VMware vCloud Application Director. Search for puppet in this official documentation.
2. Quick start guid for using puppet in application blueprint posted here is also very useful.
3. RegisterWithAppD script details: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2068342