Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
info:cursos:pue:devops2022:s10 [09/03/2022 12:57] – [TODO] mateinfo:cursos:pue:devops2022:s10 [14/03/2022 12:37] (actual) mate
Línia 1: Línia 1:
-= DevOps Sesión 10 (2022-03-14)+= DevOps Sesión 10 (2022-03-14) Vagrant + Packer
 == Documentación relacionada == Documentación relacionada
-== Clase+<callout type="info" icon="true"> 
 +  * 3-Topic 703 Machine Deployment/1-Material Curso Vagrant/ 
 +</callout> 
 + 
 +== Vagrant 
 +<callout type="info" icon="true"> 
 +  * ./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 
 +</callout> 
 + 
 +=== multimaquina 
 +<callout type="info" icon="true"> 
 +  * ./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 
 +</callout> 
 + 
 +<code ruby> 
 +# -*- 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 
 +</code> 
 +<code ruby > 
 +# -*- 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 
 +</code> 
 +<code ruby> 
 +# -*- 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 
 +</code> 
 + 
 +  * [[https://www.vagrantup.com/docs/other/environmental-variables]] 
 + 
 +=== plugins 
 +[[https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins]] 
 +==== AWS Provider 
 +<callout type="info" icon="true"> 
 +  * ./vagrant-aws 
 +  * ./Clase Resumen Vagrant.txt lin 200 
 +</callout> 
 + 
 +[[https://github.com/mitchellh/vagrant-aws]] 
 + 
 +== packer 
 +<callout type="info" icon="true"> 
 +  * ./2-Laboratorios Packer 
 +  * https://www.packer.io/downloads 
 +  * ./Laboratorio packer resumido.txt 
 +  * ./Labortatorio Packer para crear imágenes de máquinas virtuales.pdf 
 +</callout> 
 +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) 
 +    * [[https://www.packer.io/plugins]] 
 +  * providers 
 +  * instalación desatendida (propia de cada fabricante) 
 +    * RedHat/Centos: ks.cfg 
 +    * Debian: preseed.cfg 
 +    * Windows: autounattend.xml 
 +  *  
 + 
 +=== lab 
 +<code bash> 
 +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 
 +</code> 
 + 
 + 
 + 
 + 
 == TODO == TODO
   * registro para Vagrant   * registro para Vagrant
   * artifactory   * artifactory
 <callout type="info" icon="true"></callout> <callout type="info" icon="true"></callout>
  • info/cursos/pue/devops2022/s10.1646859471.txt.gz
  • Darrera modificació: 09/03/2022 12:57
  • per mate