Created
May 5, 2021 09:28
-
-
Save mprokopov/f396868dfa24258fede03831121da191 to your computer and use it in GitHub Desktop.
prep vagrant for devops courses with ansible, k8s and jenkins
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
Vagrant.configure("2") do |config| | |
## VM for target deployments | |
config.vm.define "target", autostart: false do |target| | |
target.vm.box = "centos/7" | |
target.vm.network "forwarded_port", guest: 8000, host: 8000 | |
target.vm.network "private_network", ip: "10.10.50.3" | |
target.vm.provider "virtualbox" do |vb| | |
vb.memory = "512" | |
end | |
#target.vm.synced_folder "../target_home_folder", "/home/vagrant/target" | |
#target.vm.synced_folder "../target_www_folder", "/var/www/target" | |
target.vm.provision "shell", inline: <<-SHELL | |
hostnamectl set-hostname target | |
# yum install -y java-1.8.0-openjdk-devel git yum-utils unzip ansible | |
SHELL | |
end | |
## VM with Jenkins, Ansible, Docker | |
config.vm.define "toolbox" do |target| | |
target.vm.box = "centos/7" | |
# jenkins port | |
target.vm.network "forwarded_port", guest: 8080, host: 8080 | |
# docker port | |
target.vm.network "forwarded_port", guest: 2375, host: 2375 | |
# ngrok port | |
target.vm.network "forwarded_port", guest: 4040, host: 4040 | |
target.vm.network "private_network", ip: "10.10.50.2" | |
target.vm.provider "virtualbox" do |vb| | |
vb.memory = "2048" | |
end | |
#target.vm.synced_folder "../toolbox_folder", "/home/vagrant/toolbox" | |
target.vm.provision "shell", inline: <<-SHELL | |
hostnamectl set-hostname toolbox | |
yum install -y java-1.8.0-openjdk-devel git yum-utils unzip ansible | |
# jenkins install | |
curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | tee /etc/yum.repos.d/jenkins.repo | |
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key | |
yum install -y jenkins | |
systemctl enable jenkins && systemctl start jenkins | |
# docker install | |
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo | |
yum install -y docker-ce.x86_64 | |
systemctl enable docker && systemctl start docker | |
usermod -aG docker vagrant | |
usermod -aG docker jenkins | |
# docker composer | |
curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
chmod +x /usr/local/bin/docker-compose | |
# ngrok | |
curl -LO https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip && unzip ngrok-stable-linux-amd64.zip -d /usr/local/bin && rm ngrok-stable-linux-amd64.zip | |
# kubectl | |
curl -L https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl | |
SHELL | |
end | |
## VM for K8S testing with Kind, Docker, Helm | |
config.vm.define "k8s", autostart: false do |target| | |
target.vm.box = "centos/7" | |
target.vm.network "forwarded_port", guest: 6443, host: 6443 | |
target.vm.network "private_network", ip: "10.10.50.4" | |
target.vm.provider "virtualbox" do |vb| | |
vb.memory = "2048" | |
end | |
target.vm.provision "shell", inline: <<-SHELL | |
hostnamectl set-hostname k8s | |
yum install -y java-1.8.0-openjdk-devel git yum-utils unzip | |
# docker install | |
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo | |
yum install -y docker-ce.x86_64 | |
systemctl enable docker && systemctl start docker | |
usermod -aG docker vagrant | |
# kubectl | |
curl -L https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl | |
# kind | |
curl -L "https://github.com/kubernetes-sigs/kind/releases/download/v0.7.0/kind-$(uname)-amd64" -o /usr/local/bin/kind && chmod +x /usr/local/bin/kind | |
curl -LO "https://gist.githubusercontent.com/mprokopov/4a22b2282104ca955f54acfccacf0a83/raw/27632d994c27e4c78987d3066c7ac008dc17b8dd/kind.yml" | |
/usr/local/bin/kind create cluster --config=kind.yml | |
# helm | |
curl -LO https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz && tar xzf helm-v3.1.2-linux-amd64.tar.gz && mv ./linux-amd64/helm /usr/local/bin/ | |
#helm repo add stable https://kubernetes-charts.storage.googleapis.com/ | |
SHELL | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment