#!/bin/bash # IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html #------------------------------------------------------------------------------- #=head1 config_chef_client #=head2 This command configures the chef client on a xCAT node. # It is used by install_chef_client on Ubuntu and chef kit on RH. #=cut #------------------------------------------------------------------------------- echo "Configuring chef client....." #the chef server can be passed as an argument or as an environmental variable #the default is $SITEMASTER ARGNUM=$#; if [ $ARGNUM -gt 1 ]; then if [ $1 = "-s" ]; then chef_server=$2 fi fi if [ -z "$chef_server" ]; then if [ -n "$CFGSERVER" -a -n "$CFGMGR" ]; then if [ $CFGMGR = "chef" ]; then chef_server=$CFGSERVER fi fi if [ -z "$chef_server" ] then chef_server=$CHEFSERVER fi if [ -z "$chef_server" ]; then chef_server=$MASTER fi fi mkdir -p /etc/chef mkdir -p /etc/chef-server_tmp mount $chef_server:/etc/chef-server /etc/chef-server_tmp if [ $? -ne 0 ] then errmsg="Failed to run 'mount $chef_server:/etc/chef-server /etc/chef-server_tmp' on $node" logger -t xcat -p local4.err $errmsg echo $errmsg exit 1 fi # copy the validator.pem to chef client #scp root@$chef_server:/etc/chef-server/chef-validator.pem /etc/chef/validation.pem cp /etc/chef-server_tmp/chef-validator.pem /etc/chef/validation.pem umount /etc/chef-server_tmp rmdir /etc/chef-server_tmp # Add the info to /etc/chef/client.rb echo -e "log_level :auto log_location STDOUT chef_server_url 'https://$chef_server' validation_client_name 'chef-validator'" > /etc/chef/client.rb node=`hostname` # run the command on the client to register the client on the chef-server /opt/chef/bin/chef-client if [ $? -ne 0 ] then errmsg="Failed to run /opt/chef/bin/chef-client on $node" logger -t xcat -p local4.err $errmsg echo $errmsg exit 1 fi exit 0;