Skip to content

Instantly share code, notes, and snippets.

@benjaminws
Created October 10, 2011 19:50
  • Star 8 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save benjaminws/1276345 to your computer and use it in GitHub Desktop.
joyent-smartos.erb
# shove this in ~/.chef/bootstrap/joyent-smartos.erb
# run knife bootstrap <hostname> -d joyent-smartos
bash -c '
if [ ! -f /opt/local/bin/chef-client ]; then
cd /tmp
pkgin install gcc-compiler gcc-runtime gcc-tools-0 ruby19 scmgit-base scmgit-docs gmake sun-jdk6
wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.10.tgz
tar -xzf rubygems-1.8.10.tgz
cd rubygems-1.8.10
ruby setup.rb --no-format-executable
gem install --no-ri --no-rdoc json_pure
gem install --no-ri --no-rdoc -v=0.9.18 chef
mv /opt/local/lib/ruby/gems/1.9/gems/json-1.4.6 /tmp/
ln -s /opt/local/lib/ruby/gems/1.9/gems/json_pure-1.6.1 /opt/local/lib/ruby/gems/1.9/gems/json-1.4.6
fi
mkdir -p /etc/chef
(
cat <<'EOP'
<%= validation_key %>
EOP
) > /tmp/validation.pem
awk NF /tmp/validation.pem > /etc/chef/validation.pem
rm /tmp/validation.pem
(
cat <<'EOP'
<%= config_content %>
EOP
) > /etc/chef/client.rb
(
cat <<'EOP'
<%= { "run_list" => @run_list }.to_json %>
EOP
) > /etc/chef/first-boot.json
'
@gflarity
Copy link

Hi,

I'm trying to get Chef working with a Joyent SmartOS zone.Was hoping to use your bootstrap template. I've install the chef gem follow your instructions and get:

WARNING: No knife configuration file found
Bootstrapping Chef on 0edd613
ERROR: Errno::ENOENT: No such file or directory - /etc/chef/validation.pem

I must be missing something?

@benjaminws
Copy link
Author

You know, I created this before Joyent rebooted the brand and released the newest smartos. I'm not sure if it will even work anymore.

However, I'll give it a quick shot. You're running this in server mode, not with chef-solo, right? It seems like it's not creating the chef validation.pem. Can you make sure the user you're running it as can create /etc/chef? Just a shot in the dark.

@gflarity
Copy link

Thanks for the info. I'm just starting to learn Chef and was thinking from a Chef-solo perspective if that makes any sense. I now understand that knife bootstrap is for bootstraping nodes when you already have a Chef server (and hence a pem). Need to read more, but I'm glad someone else has tried this:

FYI: I'm actually running my own SmartOS servers, but this was essentially in a SmartMachine. http://smartos.org.

Cheers,
GF

@ulfmagnetics
Copy link

Hey thanks for this. I just ran it successfully on a new SmartOS node after making a couple of small tweaks (see my fork at https://gist.github.com/1753987 -- had to add '-y' to pkgin to avoid interactive prompts, and removed sun-jdk6 because I couldn't come up with a way to get it to run non-interactively.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment