Skip to content

Instantly share code, notes, and snippets.

@cmaitchison
Created May 7, 2012 22:34
Show Gist options
  • Save cmaitchison/2631079 to your computer and use it in GitHub Desktop.
Save cmaitchison/2631079 to your computer and use it in GitHub Desktop.
Ubuntu 12.04 Chef-Solo bootstrap
#!/bin/bash -xe
#THIS SCRIPT MUST BE RUN AS ROOT
#Set locale
echo "export LANGUAGE=en_AU.UTF-8" > /tmp/locale
echo "export LANG=en_AU.UTF-8" >> /tmp/locale
echo "export LC_ALL=en_AU.UTF-8" >> /tmp/locale
cat /etc/bash.bashrc >> /tmp/locale
cp /tmp/locale /etc/bash.bashrc
locale-gen en_AU.UTF-8
dpkg-reconfigure locales
#add admin group
(cat /etc/group | grep -E '\badmin\b') || sudo groupadd admin
#add admin user
ADMIN_USER=cmaitchison
(cat /etc/passwd | grep -E "\b$ADMIN_USER\b") || useradd -m -s /bin/bash -b /home -G admin $ADMIN_USER
sudo usermod -G admin $ADMIN_USER
#sudoless access for admin user
(cat /etc/sudoers | grep -E "\b$ADMIN_USER\b") || echo "$ADMIN_USER ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
#configure SSH
SSH_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuwaDITgrsmxVvSJ+HEir4iW2eBb8XqB3wIxCWJwmhiB2S6MkdX1CFcj8boHL2RIYgKN0yiTCVlOdQFjhyRpnd8NbS0RW7753SE1hzkgOg+2e1B15lf1PCSD5OPWAtpb1eYlLcs6hns+yFhYCFeQrKLBL2/si8D8OcQcTR7BjjFQEWdhjl4cYiT68cr57yFT+c/f32ZTynEWukC2YIGMjJ1nACUOYF8CSp6RUrD2kY3C1Pb1Q5V3jwi0lhay4aF5AWp28hPVtYASBe2BrYXp8uErhnmWxgXNV19P0NSHE7TBXd9nXz/njI2SDP/p2N/vHquz/Ybxs4F+kGGXknUFitQ== cmaitchison@gmail.com"
SSH_DIR=/home/$ADMIN_USER/.ssh
mkdir -p -m 700 $SSH_DIR
echo $SSH_KEY > $SSH_DIR/authorized_keys
chmod 600 $SSH_DIR/authorized_keys
chown -R $ADMIN_USER:admin $SSH_DIR
#disable password access
sed -E -i 's/.*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -E -i 's/.*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config
restart ssh
apt-get update
apt-get upgrade -y --force-yes
#install ruby
RUBY_PATCH=p194
apt-get -y update
apt-get -y install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev
cd /tmp
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-$RUBY_PATCH.tar.gz
tar -xvzf ruby-1.9.3-$RUBY_PATCH.tar.gz
cd ruby-1.9.3-$RUBY_PATCH/
./configure --prefix=/usr/local
make
make install
#install chef
gem install chef ruby-shadow --no-ri --no-rdoc
mkdir -p /var/chef
chown $ADMIN_USER:admin /var/chef/
#init git repo
apt-get install -y git-core
APP_NAME=homehelpnow
mkdir -p /var/git/$APP_NAME.git
cd /var/git/$APP_NAME.git
git init --bare
chown -R $ADMIN_USER:admin /var/git/
chmod -R 755 /var/git/
#set up directories for deployment
cd /home/$ADMIN_USER
git clone /var/git/$APP_NAME.git
chown -R $ADMIN_USER:admin /home/$ADMIN_USER
mkdir -p /var/www/releases
chown -R $ADMIN_USER:admin /var/www
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment