DevOps Sesión 10 (2022-03-14) Vagrant + Packer

  • 3-Topic 703 Machine Deployment/1-Material Curso Vagrant/
  • ./2-Uso básico de vagrant.pdf
  • ./Clase Resumen Vagrant.txt
  • ./Herramientas Devops entornos de desarrollo en local, para programadores con Docker y Vagrant .pdf
  • ./Herramientas Devops entornos de desarrollo en local, para programadores con Docker y Vagrant .pdf pàg 153
  • ./ejemplos-iaw-practica-vagrant
  • ./ejemplos-vagrantfiles-multimaquina
  • ./ejemplos-iaw-practica-vagrant/ejemplo-10
# -*- mode: ruby -*-
# vi: set ft=ruby :
 
Vagrant.configure("2") do |config|
 
  config.vm.box = "ubuntu/xenial64"
 
  # Load Balancer
  config.vm.define "web-balancer" do |app|
    app.vm.hostname = "web-balancer"
    app.vm.network "private_network", ip: "192.168.33.10"
    app.vm.provision "shell", path: "provision/provision-for-balancer.sh"
  end
 
  # Nginx
  config.vm.define "web-1" do |app|
    app.vm.hostname = "web-1"
    app.vm.network "private_network", ip: "192.168.33.11"
    app.vm.provision "shell", path: "provision/provision-for-nginx.sh"
  end
 
  # Nginx
  config.vm.define "web-2" do |app|
    app.vm.hostname = "web-2"
    app.vm.network "private_network", ip: "192.168.33.12"
    app.vm.provision "shell", path: "provision/provision-for-nginx.sh"
  end
end
# -*- mode: ruby -*-
# vi: set ft=ruby :
 
#https://www.vagrantup.com/docs/other/enviromental-variables
ENV['VAGRANT_NO_PARALLEL'] = 'yes'
 
Vagrant.configure(2) do |config|
 
  NodeCount = 1
 
  (1..NodeCount).each do |i|
    config.vm.define "centosvm0#{i}" do |node|
      node.vm.box = "centos/7"
      node.vm.hostname = "centosvm0#{i}.example.com"
      node.vm.network "private_network", ip: "172.42.42.10#{i}"
      node.vm.provider "virtualbox" do |v|
        v.name = "centosvm0#{i}"
        v.memory = 2048
        v.cpus = 1
      end
    end
  end
 
end
# -*- mode: ruby -*-
# vi: set ft=ruby :
 
ENV['VAGRANT_NO_PARALLEL'] = 'yes'
 
Vagrant.configure(2) do |config|
 
  CentosNodes = 1
 
  (1..CentosNodes).each do |i|
    config.vm.define "centosvm0#{i}" do |node|
      node.vm.box = "centos/7"
      node.vm.hostname = "centosvm0#{i}.example.com"
      node.vm.network "private_network", ip: "172.16.16.10#{i}"
      node.vm.provider "virtualbox" do |v|
        v.name = "centosvm0#{i}"
        v.memory = 1024
        v.cpus = 1
      end
      node.vm.provision "shell", path: "bootstrap_centos.sh"
    end
  end
 
  UbuntuNodes = 1
 
  (1..UbuntuNodes).each do |i|
    config.vm.define "ubuntuvm0#{i}" do |node|
      node.vm.box = "ubuntu/focal64"
      node.vm.hostname = "ubuntuvm0#{i}.example.com"
      node.vm.network "private_network", ip: "172.16.16.20#{i}"
      node.vm.provider "virtualbox" do |v|
        v.name = "ubuntuvm0#{i}"
        v.memory = 1024
        v.cpus = 1
      end
      node.vm.provision "shell", path: "bootstrap_ubuntu.sh"
    end
  end
end

AWS Provider

  • ./vagrant-aws
  • ./Clase Resumen Vagrant.txt lin 200

https://github.com/mitchellh/vagrant-aws

  • ./2-Laboratorios Packer
  • ./Laboratorio packer resumido.txt
  • ./Labortatorio Packer para crear imágenes de máquinas virtuales.pdf

Packer es una herramienta de software libre desarrollada por Hashicorp que nos permite crear imágenes de sistema operativo de forma automatizada y utilizando archivos de configuración para tal efecto.

  • ficheros de configuración JSON o HCL2
  • builders (constructores)
  • providers
  • instalación desatendida (propia de cada fabricante)
    • RedHat/Centos: ks.cfg
    • Debian: preseed.cfg
    • Windows: autounattend.xml
cd ./packer-centos7-master
packer build -only=virtualbox-iso centos7-packer-version1.6.json
# genera: centos71-x64-virtualbox.box
vagrant box list
vagrant box add --name centos71-lab centos71-x64-virtualbox.box
vagrant box list
vagrant up
vagrant box remove centos71-lab
  • registro para Vagrant
  • artifactory
  • info/cursos/pue/devops2022/s10.txt
  • Darrera modificació: 14/03/2022 12:37
  • per mate