public
Last active

joyent-smartos.erb

  • Download Gist
joyent-smartos.erb
HTML+ERB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
# 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
'

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?

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.

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

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.)

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.