Created
October 21, 2010 19:29
-
-
Save tavisrudd/639143 to your computer and use it in GitHub Desktop.
This file contains 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
#!/bin/bash | |
$(dirname $0)/bootstrap-portage.sh | |
# keyword chef and dependencies | |
cat <<EOF > /etc/portage/package.keywords/chef | |
=app-admin/chef-0.9.8 | |
=dev-ruby/abstract-1.0.0 | |
=dev-ruby/bunny-0.6.0 | |
=dev-ruby/erubis-2.6.5 | |
=dev-ruby/extlib-0.9.15 | |
=dev-ruby/highline-1.5.2-r1 | |
=dev-ruby/json-1.4.6 | |
=dev-ruby/mime-types-1.16-r2 | |
=dev-ruby/mixlib-authentication-1.1.4 | |
=dev-ruby/mixlib-cli-1.2.0 | |
=dev-ruby/mixlib-config-1.1.2 | |
=dev-ruby/mixlib-log-1.1.0 | |
=dev-ruby/moneta-0.6.0-r1 | |
=dev-ruby/ohai-0.5.6-r1 | |
=dev-ruby/rest-client-1.5.1 | |
=dev-ruby/rubygems-1.3.7-r1 | |
=dev-ruby/systemu-1.2.0 | |
=dev-ruby/uuidtools-2.1.1-r1 | |
EOF | |
emerge chef -nk |
This file contains 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
#!/bin/bash | |
cat <<"EOF" > /etc/make.conf | |
# portage directories | |
PORTDIR="/usr/portage" | |
DISTDIR="/usr/portage/distfiles" | |
PKGDIR="/usr/portage/packages/${ARCH}" | |
# compiler settings | |
CFLAGS="-march=athlon64 -O2 -pipe" | |
CXXFLAGS="${CFLAGS}" | |
# build-time flags | |
USE="bash-completion bzip2 caps -cups fontconfig gs idn jpeg png svg tiff truetype urandom vhosts vim-syntax " | |
# advanced masking | |
ACCEPT_LICENSE="*" | |
# mirror settings | |
GENTOO_MIRRORS="ftp://ftp.spline.de/pub/gentoo http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo" | |
SYNC="rsync://rsync.spline.de/gentoo-portage" | |
# advanced features | |
EMERGE_DEFAULT_OPTS="--quiet-build --with-bdeps=y --binpkg-respect-use=y --rebuilt-binaries=n --keep-going --usepkg" | |
MAKEOPTS="-j1" | |
PORTAGE_NICENESS="15" | |
EBEEP_IGNORE="yes" | |
FEATURES="collision-protect noinfo parallel-fetch preserve-libs sfperms strict unmerge-orphans userpriv usersandbox buildpkg" | |
# logging related variables: | |
PORTAGE_ELOG_SYSTEM="save echo" | |
PORTAGE_ELOG_CLASSES="warn error info log qa" | |
# language support | |
LINGUAS="en" | |
# configuration file protection | |
CONFIG_PROTECT="" | |
CONFIG_PROTECT_MASK="" | |
EOF | |
# create /etc/portage/package.* directories | |
for i in keywords mask unmask use; do | |
if [[ -f /etc/portage/package.$i ]]; then | |
mv /etc/portage/package.$i /etc/portage/package.$i.bak | |
mkdir /etc/portage/package.$i | |
mv /etc/portage/package.$i.bak /etc/portage/package.$i/local | |
elif [[ ! -d /etc/portage/package.$i ]]; then | |
mkdir /etc/portage/package.$i | |
fi | |
done | |
# just remerge the damn fucker because of its bindist license crap | |
emerge --oneshot --usepkg=n openssl |
This file contains 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
#!/bin/bash | |
$(dirname $0)/bootstrap-client.sh | |
GIT_REPO=$1 | |
# keyword chef and dependencies | |
cat <<EOF > /etc/portage/package.keywords/chef-server | |
=app-admin/chef-server-0.9.8 | |
=app-admin/chef-server-api-0.9.8 | |
=app-admin/chef-server-webui-0.9.8 | |
=app-admin/chef-solr-0.9.8 | |
=dev-ruby/bundler-0.9.26 | |
=dev-ruby/coderay-0.9.3 | |
=dev-ruby/daemons-1.0.10-r1 | |
=dev-ruby/eventmachine-0.12.10-r2 | |
=dev-ruby/haml-2.2.24 | |
=dev-ruby/hpricot-0.8.2-r1 | |
=dev-ruby/libxml-1.1.4 | |
=dev-ruby/merb-assets-1.1.2 | |
=dev-ruby/merb-core-1.1.2 | |
=dev-ruby/merb-haml-1.1.2 | |
=dev-ruby/merb-helpers-1.1.2 | |
=dev-ruby/merb-param-protection-1.1.2 | |
=dev-ruby/rack-1.1.0 | |
=dev-ruby/rake-0.8.7-r5 | |
=dev-ruby/rake-compiler-0.7.0-r1 | |
=dev-ruby/ruby-openid-2.1.7-r2 | |
=net-misc/rabbitmq-server-2.1.0 | |
=www-servers/thin-1.2.5-r1 | |
EOF | |
emerge chef-server chef-server-webui -nk | |
# setup RabbitMQ | |
/etc/init.d/rabbitmq start && sleep 5 | |
AMQP_PASS=$(dd if=/dev/urandom count=50 2>/dev/null | md5sum | awk '{print $1}') | |
rabbitmqctl add_vhost /chef | |
rabbitmqctl add_user chef ${AMQP_PASS} | |
rabbitmqctl set_permissions -p /chef chef ".*" ".*" ".*" | |
echo "amqp_pass '${AMQP_PASS}'" >> /etc/chef/server.rb | |
echo "amqp_pass '${AMQP_PASS}'" >> /etc/chef/solr.rb | |
echo "${AMQP_PASS}" >> /etc/chef/amqp_pass | |
chown chef:chef /etc/chef/{amqp_pass,server.rb,solr.rb,webui.rb} | |
chmod 0600 /etc/chef/{amqp_pass,server.rb,solr.rb,webui.rb} | |
# start chef-server | |
for i in solr solr-indexer server-api server-webui; do | |
rc-update add chef-$i default | |
/etc/init.d/chef-$i start | |
sleep 2 | |
done | |
# configure knife client for root | |
mkdir -p /root/.chef | |
cat <<EOF > /root/.chef/knife.rb | |
log_level :info | |
log_location STDOUT | |
node_name 'chef-webui' | |
client_key '/etc/chef/webui.pem' | |
validation_client_name 'chef-validator' | |
validation_key '/etc/chef/validation.pem' | |
chef_server_url 'http://localhost:4000' | |
cookbook_path [ '/usr/src/chef/cookbooks', '/usr/src/chef/site-cookbooks' ] | |
EOF | |
# initial cookbook upload | |
mkdir -p /usr/src && cd /usr/src | |
git clone ${GIT_REPO} chef && cd ./chef | |
rake init && rake deploy | |
# initial chef server convergence | |
chef-client -V | |
knife node run_list add $(hostname -f) 'role[chef]' | |
chef-client -V | |
# cleanup | |
rm -rf /usr/src/chef |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment