Example using Packer.
{
"builders": [
{
"organization_id": "",
"api_token": "",
"server_name": "cloud-courses",
"image_name": "cloud-courses-image",
"snapshot_name": "cloud-courses-snapshot",
"type": "scaleway",
"image": "",
"region": "ams1",
"commercial_type": "DEV1-S",
"ssh_private_key_file": "",
"ssh_username": "root"
}
],
"provisioners": [
{
"type": "shell",
"script": "ubuntu_install.sh"
},
{
"type": "shell",
"inline": ["sync"]
}
],
"variables": {
"organization_id": "",
"api_token": "",
"image": "9444d178-2285-4842-ac35-5e86eda8da91",
"ssh_private": "/.ssh/id_rsa"
}
}
#!/bin/sh
export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
tzdata tzdata/Areas select Europe
tzdata tzdata/Zones/Europe select Paris
# Install system-wide packages
apt update
apt dist-upgrade -y
apt install -y git-core vim-nox htop tree tmux zsh curl python-pip python3-pip golang sudo
# Install Docker-CE
apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt update
apt install -y docker-ce
docker run hello-world
# Install oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
sed -i s/robbyrussell/ys/ .zshrc
echo 'export PATH=$HOME/go/bin:$PATH' >> $HOME/.zshrc
# Install Packer
go get -v github.com/hashicorp/packer
# Install Terraform
go get -v github.com/hashicorp/terraform
# Install ansible
python3 -m pip install ansible
# Install the courses content
git clone https://github.com/remyleone/cloud-courses