Created
May 7, 2012 22:34
-
-
Save cmaitchison/2631079 to your computer and use it in GitHub Desktop.
Ubuntu 12.04 Chef-Solo bootstrap
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 -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