This is a simple example command line client that creates a node in a ComputeService provider and installs an Apache web server on everything in its group using Chef.
Ensure you have maven 3.02 or higher installed, then execute 'mvn install' to build the example. Note you also need an ssh key setup in your home directory.
If you don't already have ~/.ssh/id_rsa present, generate a key with the command 'ssh-keygen -t rsa' and leave the passphrase blank.
Also make sure you have the private keys for the client and validator if you are using a Chef Server.
Invoke the jar, passing the name of the cloud provider you with to access (ex. aws-ec2, gogrid), identity (ex. accesskey, username), credential (ex. secretkey, password), then the name of the group you'd like to add the node to. The 5th parameter must be add, chef or destroy, noting that destroy will destroy all nodes in the group. If the 5th parameter is chef or solo, you must provide the list of recipes to install, separated by commas.
Also, if the 5th parameter is 'chef', you must provide the connection details to the chef server. See the examples below:
java -jar target/chef-basics-jar-with-dependencies.jar provider identity credential mygroup add
java -Dchef.endpoint=http://chefendpoint -Dchef.client=clientname -Dchef.validator=validatorname -jar target/chef-basics-jar-with-dependencies.jar provider identity credential mygroup chef apache2
java -jar target/chef-basics-jar-with-dependencies.jar provider identity credential mygroup solo apache2
java -jar target/chef-basics-jar-with-dependencies.jar provider identity credential mygroup destroy
Ex. for Amazon EC2
java -jar target/chef-basics-jar-with-dependencies.jar aws-ec2 accesskey secretkey mygroup add
Ex. for HP Cloud
java -jar target/chef-basics-jar-with-dependencies.jar hpcloud-compute tenantId:accesskey secretkey mygroup add
Ex. for TryStack.org
java -jar target/chef-basics-jar-with-dependencies.jar trystack-nova tenantId:user password mygroup add
Ex. for Abiquo
java -Dabiquo.endpoint=http://abiquohost/api -jar target/chef-basics-jar-with-dependencies.jar abiquo user password mygroup add
Ex. for your own OpenStack Nova
java -Dopenstack-nova.image-id=RegionOne/15 -Dopenstack-nova.login-user=ubuntu -Djclouds.trust-all-certs=true -Djclouds.keystone.credential-type=passwordCredentials -Dopenstack-nova.endpoint=https://keystone:35357 -jar target/chef-basics-jar-with-dependencies.jar openstack-nova tenantId:user password mygroup add
Ex. for Virtualbox java -jar target/chef-basics-jar-with-dependencies.jar virtualbox vboxwebsrv-username vboxwebsrv-password mygroup add
Ex. for your own OpenStack Nova emulating EC2
java -Dopenstack-nova-ec2.image-id=nova/ami-00000009 -Dopenstack-nova-ec2.login-user=ubuntu -Djclouds.trust-all-certs=true -Dopenstack-nova-ec2.endpoint=https://novahost/services/Cloud -jar target/chef-basics-jar-with-dependencies.jar openstack-nova-ec2 tenantId:accesskey secretkey mygroup add
Copyright (C) 2009-2014 The Apache Software Foundation
Licensed under the Apache License, Version 2.0