Skip to content

Instantly share code, notes, and snippets.

@odinuv
Last active March 24, 2021 19:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save odinuv/0d50083e5462ea2f00e6c5b2e615b0da to your computer and use it in GitHub Desktop.
Save odinuv/0d50083e5462ea2f00e6c5b2e615b0da to your computer and use it in GitHub Desktop.
test
#!/usr/bin/env bash
set -Eeuo pipefail
printf "\nSetting up disk\n"
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo mkfs.xfs -f /dev/sdc1
sudo partprobe /dev/sdc1
block_record=$(sudo blkid | grep "xfs")
uuid=$(printf "$block_record" | gawk 'match($0, /UUID="([a-zA-Z0-9\-]*)"/, a) {print a[1]}')
printf "UUID=$uuid /datadrive xfs defaults,nofail 0 2\n" | sudo tee -a /etc/fstab
sudo mkdir /datadrive
sudo mount /datadrive
# Install docker https://docs.docker.com/engine/install/ubuntu/
printf "\nInstaling docker\n"
sudo apt-get update -qq
sudo apt-get install -y -qq \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get install -y -qq docker-ce docker-ce-cli containerd.io
# Setup docker https://docs.docker.com/engine/install/linux-postinstall/
#sudo groupadd docker
sudo usermod -aG docker testadmin
printf "{\"data-root\": \"/datadrive/docker\"}" | sudo tee -a /etc/docker/daemon.json
printf "\nInstall docker compose\n"
# https://docs.docker.com/compose/install/
sudo curl -s -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Enable Swap limit capabilities
#https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities
printf "\nGRUB_CMDLINE_LINUX=\"cgroup_enable=memory swapaccount=1\"\n" | sudo tee -a /etc/default/grub
sudo update-grub
printf "\nSetting up agent\n"
cd /home/testadmin
curl -s https://vstsagentpackage.azureedge.net/agent/2.183.1/vsts-agent-linux-x64-2.183.1.tar.gz -o agent.tar.gz
mkdir azagent && cd azagent
tar zxvf ./../agent.tar.gz > /dev/null
rm ../agent.tar.gz
sudo chown testadmin /home/testadmin/azagent/
printf "/home/testadmin/azagent/config.sh --unattended --url https://dev.azure.com/keboola-dev/ --auth pat --token $1 --pool default --agent $2 --work /datadrive/_work" > /home/testadmin/azagent/wrap.sh
sudo chmod a+x /home/testadmin/azagent/wrap.sh
runuser -l testadmin -c '/home/testadmin/azagent/wrap.sh'
sudo mkdir /datadrive/_work
sudo chown testadmin /datadrive/_work
sudo /home/testadmin/azagent/svc.sh install
printf "\nFinished successfully\n"
sudo shutdown -r +1 "Rebooting."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment