Created
October 10, 2011 19:50
-
-
Save benjaminws/1276345 to your computer and use it in GitHub Desktop.
joyent-smartos.erb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 | |
' |
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
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