77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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;
 |