Last active
March 27, 2018 07:23
-
-
Save mrhillsman/96aa910521aaf2ff79eae93d7de2ee82 to your computer and use it in GitHub Desktop.
Get Ubuntu 16.04 cloud server ready after launch
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
#!/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