Skip to content

Instantly share code, notes, and snippets.

@mrhillsman
Last active March 27, 2018 07:23
Show Gist options
  • Save mrhillsman/96aa910521aaf2ff79eae93d7de2ee82 to your computer and use it in GitHub Desktop.
Save mrhillsman/96aa910521aaf2ff79eae93d7de2ee82 to your computer and use it in GitHub Desktop.
Get Ubuntu 16.04 cloud server ready after launch
#!/bin/bash
set -x
if [ ! -f $HOME/.ssh/id_rsa ]; then
ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N ''
fi
sudo apt update
sudo apt install -y \
git \
tmux \
build-essential \
libssl-dev \
libffi-dev \
python3-dev \
python3-pip \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
sudo ln -s \
/usr/bin/python3 \
/usr/bin/python
sudo ln -s \
/usr/bin/pip3 \
/usr/bin/pip
sudo -H pip install -U pip
sudo -H pip install ansible
sudo -H pip install asciinema
wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz
tar xzf go1.10.linux-amd64.tar.gz
sudo mv go /usr/local
sudo tee -a /etc/profile > /dev/null <<EOF
export PATH=\$PATH:/usr/local/go/bin
EOF
git config --global user.name 'Melvin Hillsman'
git config --global user.email [email protected]
sudo add-apt-repository -y ppa:masterminds/glide
sudo apt update
sudo apt install -y glide
## Add official Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository -y \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# Install Docker CE
sudo apt update
sudo apt install -y docker-ce
# Verify installation via 'hello-world' container
sudo docker run hello-world
if [ $? -eq 0 ]; then
sudo docker stop $(sudo docker ps -aq)
sudo docker rm $(sudo docker ps -aq)
fi
sudo docker rmi $(sudo docker images -q)
get_latest_release() {
curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api
grep '"tag_name":' | # Get tag line
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
}
export DOCKER_MACHINE_RELEASE=$(get_latest_release "docker/machine")
curl -L https://github.com/docker/machine/releases/download/$DOCKER_MACHINE_RELEASE/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
scripts=( docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash )
for i in "${scripts[@]}"
do
sudo wget https://raw.githubusercontent.com/docker/machine/$DOCKER_MACHINE_RELEASE/contrib/completion/bash/${i} -P /etc/bash_completion.d
done
export DOCKER_COMPOSE_RELEASE=$(get_latest_release "docker/compose")
curl -L https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_RELEASE/docker-compose-`uname -s`-`uname -m` >/tmp/docker-compose
sudo install /tmp/docker-compose /usr/local/bin/docker-compose
echo "PREP DONE - INSTALL hub.github.com suggested (as root user)"
echo "git clone https://github.com/github/hub"
echo "cd hub && script/build -o /usr/local/bin/hub"
echo "Add alias git=hub to /etc/profile"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment