- From: Clif Smith <
>
- To:
- Subject: [chef] Re: Failing to configure a client via user-data on Amazon EC2
- Date: Thu, 28 Jul 2011 15:00:52 -0500
On Jul 28, 2011, at 11:30 AM, Daniel DeLeo wrote:
>
On Thursday, July 28, 2011 at 8:56 AM,
>
>
wrote:
>
> I'm failing to configure a client via user-data on Amazon EC2. The 2
>
> biggest
>
> issues I see in the log are "Cannot load environment prod" (i haven't
>
> setup an
>
> env yet, should i?) and "Connection refused connecting to localhost:4000"
>
> which
>
> isn't the server and not what's set in the client.rb.
>
You shouldn't need to worry about environments until you're ready to use
>
them.
>
>
> Here's my client.rb:
>
> log_level :info
>
> log_location "/var/log/chef/client.log"
>
> ssl_verify_mode :verify_none
>
> validation_client_name "chef-validator"
>
> validation_key "/etc/chef/validation.pem"
>
> client_key "/etc/chef/client.pem"
>
> chef_server_url "http://chef.pri.mydomain.com:4000"
>
> file_cache_path "/var/cache/chef"
>
> file_backup_path "/var/backups/chef"
>
> pid_file "/var/run/chef/client.pid"
>
> node_name "i-e5912c84"
>
> Chef::Log::Formatter.show_time = true
>
>
>
> Here's my client.log
>
> # Logfile created on Thu Jul 28 15:22:42 +0000 2011 by logger.rb/22285
>
> [Thu, 28 Jul 2011 15:22:42 +0000] INFO: Daemonizing..
>
> [Thu, 28 Jul 2011 15:22:42 +0000] INFO: Forked, in 6051. Priveleges: 0 0
>
> [Thu, 28 Jul 2011 15:22:44 +0000] INFO: *** Chef 0.10.2 ***
>
> [Thu, 28 Jul 2011 15:22:45 +0000] INFO: Client key /etc/chef/client.pem is
>
> not
>
> present - registering
>
> [Thu, 28 Jul 2011 15:22:47 +0000] INFO: HTTP Request Returned 404 Not
>
> Found:
>
> Cannot load node i-e5912c84
>
> [Thu, 28 Jul 2011 15:22:47 +0000] INFO: Setting the run_list to
>
> ["role[ubuntu-11_04-prod-worker-sched-mail]"] from JSON
>
> [Thu, 28 Jul 2011 15:22:47 +0000] INFO: Run List is
>
> [role[ubuntu-11_04-prod-worker-sched-mail]]
>
> [Thu, 28 Jul 2011 15:22:47 +0000] INFO: Run List expands to
>
> [ubuntu-11_04-prod-worker-sched-mail]
>
> [Thu, 28 Jul 2011 15:22:47 +0000] INFO: Starting Chef Run for i-e5912c84
>
> [Thu, 28 Jul 2011 15:22:47 +0000] INFO: HTTP Request Returned 404 Not
>
> Found:
>
> Cannot load environment prod
>
> [Thu, 28 Jul 2011 15:22:47 +0000] ERROR: Running exception handlers
>
> [Thu, 28 Jul 2011 15:22:47 +0000] FATAL: Saving node information to
>
> /var/cache/chef/failed-run-data.json
>
> [Thu, 28 Jul 2011 15:22:47 +0000] ERROR: Exception handlers complete
>
> [Thu, 28 Jul 2011 15:22:47 +0000] FATAL: Stacktrace dumped to
>
> /var/cache/chef/chef-stacktrace.out
>
> [Thu, 28 Jul 2011 15:22:47 +0000] FATAL: Net::HTTPServerException: 404 "Not
>
> Found"
>
> [Thu, 28 Jul 2011 15:22:50 +0000] INFO: *** Chef 0.10.2 ***
>
> [Thu, 28 Jul 2011 15:22:51 +0000] ERROR: Connection refused connecting to
>
> localhost:4000 for /nodes/ip-10-196-89-221.ec2.internal, retry 1/5
>
> [Thu, 28 Jul 2011 15:22:56 +0000] ERROR: Connection refused connecting to
>
> localhost:4000 for /nodes/ip-10-196-89-221.ec2.internal, retry 2/5
>
> [Thu, 28 Jul 2011 15:23:01 +0000] ERROR: Connection refused connecting to
>
> localhost:4000 for /nodes/ip-10-196-89-221.ec2.internal, retry 3/5
>
> [Thu, 28 Jul 2011 15:23:06 +0000] ERROR: Connection refused connecting to
>
> localhost:4000 for /nodes/ip-10-196-89-221.ec2.internal, retry 4/5
>
> [Thu, 28 Jul 2011 15:23:11 +0000] ERROR: Connection refused connecting to
>
> localhost:4000 for /nodes/ip-10-196-89-221.ec2.internal, retry 5/5
>
> [Thu, 28 Jul 2011 15:23:16 +0000] ERROR: Errno::ECONNREFUSED: Connection
>
> refused - Connection refused connecting to localhost:4000 for
>
> /nodes/ip-10-196-89-221.ec2.internal, giving up
>
> [Thu, 28 Jul 2011 15:23:16 +0000] FATAL: Stacktrace dumped to
>
> /var/chef/cache/chef-stacktrace.out
>
> [Thu, 28 Jul 2011 15:23:16 +0000] ERROR: Sleeping for 1800 seconds before
>
> trying again
>
It appears that a different configuration is being used between these two
>
runs. Could anything be changing the client.rb file? Also, how are you
>
invoking chef-client, i.e., what's the command line? And how are you
>
installing chef? Is it baked in to your AMI?
>
>
Thanks,
>
Dan
>
I don't think anything is changing the file:
# ls -al /etc/chef/client.rb
-rw-r----- 1 root root 484 2011-07-28 16:40 /etc/chef/client.rb
# head /var/log/chef/client.log
# Logfile created on Thu Jul 28 16:40:44 +0000 2011 by logger.rb/22285
I'm wanting to use a base Ubuntu AMI. Because of this I'm using the
following script which is passed to the system upon initial boot up (via
Amazon EC2's user-data):
#!/bin/bash
###################################################
## Setup our logfile
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console)
2>&1
###################################################
## Setup the OpsCode apt repo
echo "deb
http://apt.opscode.com/ `lsb_release -cs`-0.10 main" >>
/etc/apt/sources.list.d/opscode.list
mkdir -p /etc/apt/trusted.gpg.d
gpg --keyserver keys.gnupg.net --recv-keys 83EF826A
gpg --export
| tee /etc/apt/trusted.gpg.d/opscode-keyring.gpg > /dev/null
apt-get update
apt-get install opscode-keyring # permanent upgradeable keyring
###################################################
APT_GET="env DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get
-q"
#$APT_GET -y remove ruby1.8*
$APT_GET -y install ruby ruby-dev libruby
$APT_GET -y install build-essential
$APT_GET -y install chef
#ln -sf gem1.9.1 /usr/bin/gem
#gem install --no-rdoc --no-ri chef
#ln -sf ruby1.9.1 /usr/bin/ruby
mkdir -p /var/log/chef
mkdir -p /var/backups/chef
mkdir -p /var/run/chef
mkdir -p /var/cache/chef
mkdir -p /var/lib/chef
#mkdir /etc/chef
#ln -s /var/lib/gems/1.9.1/bin/chef-client /usr/bin/chef-client
cat - >/etc/chef/bootstrap.json <<EOF
{
"run_list": [
"role[ubuntu-11_04-prod-worker-sched-mail]"
],
"default_attributes": {
},
"override_attributes": {
}
}
EOF
cat - >/etc/chef/client.rb <<EOF
log_level :info
log_location "/var/log/chef/client.log"
ssl_verify_mode :verify_none
validation_client_name "chef-validator"
validation_key "/etc/chef/validation.pem"
client_key "/etc/chef/client.pem"
chef_server_url "
http://chef.pri.mydomain.com:4000"
file_cache_path "/var/cache/chef"
file_backup_path "/var/backups/chef"
pid_file "/var/run/chef/client.pid"
node_name "`curl
http://169.254.169.254/latest/meta-data/instance-id`"
Chef::Log::Formatter.show_time = true
EOF
cat - >/etc/chef/validation.pem <<EOF
-----BEGIN RSA PRIVATE KEY-----
<snip>
-----END RSA PRIVATE KEY-----
EOF
/usr/bin/chef-client -j /etc/chef/bootstrap.json
Archive powered by MHonArc 2.6.16.