DevOps Sesión 9 (2022-03-09) Vagrant

  • 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
  • vagrant init: crea fichero Vagrantfile
  • vagrant up:
    • descarga box
    • crea VM en provider
    • natea red
    • crea llaves públicas-privadas
    • ssh en puerto 2222 (o superior si hay más máquinas)
  • vagrant ssh
    • vagrant port
  • vagrant status
  • vagrant halt
  • vagrant destroy -f
    • rm -rf .vagrant: directorio de trabajo
  • vagrant global-status
  • vagrant box list
  • vagrant box remove …
  • vagrant box outdated:
    • actualiza versiones de las boxes del escenario
    • --global: de todos los escenarios
  • vagrant reload: halt + up
    • no aplica cambios de provisioning
  • vagrant provision: halt + up + cambios
  • VBoxManage list vms
  • vagrant package –base «…» –output maquina-vitual.box
  • subir a repositorio local
  • pág 149 (Herramientas Devops entornos de desarrollo en local, para programadores con Docker y Vagrant .pdf)
  • se aplica con:
    • vagrant provision
    • vagrant reload --provision
  • métodos:
    • inline:
      ...
        config.vm.provision "shell", inline: <<-SHELL
          yum install httpd* mariadb* php php-mysql mod_ssl -y
          systemctl restart httpd
          systemctl enable httpd
          mkdir /codigo
          systemctl stop firewalld
          systemctl disable firewalld
          systemctl restart mariadb
          systemctl enable mariadb
          cd /var/www/html
          wget https://github.com/vrana/adminer/releases/download/v4.3.1/adminer-4.3.1-mysql.php
          mv adminer-4.3.1-mysql.php adminer.php
        SHELL
      ...
    • script
    • puppet/ansible/chef
  • pag 136 (Herramientas Devops entornos de desarrollo en local, para programadores con Docker y Vagrant .pdf)
  • reenvio de puertos
    • sencillo de configurar, suficiente en la mayoría de casos, solo expone los puertos especificados
    • ojo si los puertos ya están en uso en el host
    • no se pueden usar puertos por debajo del 1024 (a menos que vagrant se ejecute como root - no recomendado)
  • private network
    • redes para compartir con el anfitrion
    • podemos añadir todas las VMs que queramos
    • más complejo de configurar
    • atención al direccionamiento estático
    • Vagrant podría ser que no configurase los interfaces en el anfitrion (depende del SO)
  • public network (modo bridge)
    • acceso a la red de la VM como si fuese una máquina física
    • la opción más potente para acceder desde el exterior
  • pag 124 (Herramientas Devops entornos de desarrollo en local, para programadores con Docker y Vagrant .pdf)
  • compartir datos entre el anfitrion y la máquina virtual
  • config.vm.synced_folder
    • config.vm.synced_folder «.», «/vagrant», disabled: true: deshabilita la carpeta compartida /vagrant
    • mount options:
      • fmode = file mode
      • dmode = directory mode
  • NFS, CIFS
  • vagrant snapshot
  • vagrant snapshot save <nombre>
  • vagrant snapshot restore <nombre>
  • vagrant snapshot list
  • vagrant snapshot delete <nombre>
  • vagrant snapshot push
  • vagrant snapshot pop
  • ruby
  • config.vm.box: box a usar
  • config.vm.box_url: dirección donde se puede encontrar este box. No necesario en el hub de Vagrant
  • config.vm.box_check_update: si TRUE, comprueba y actualiza el BOX cada vez que se hace vagrant up
  • config.vm.hostname: nombre de la máquina
  • pag 149
  • config.vm.provision "shell", inline <<-SHELL
      	comando
            comando
        SHELL
  • config.vm.provision «shell», path:«miscript.sh»
  • config.vm.provision "ansible_local" do |ansible|
      ansible.playbook = "playbook_centos_install_docker.yaml"
    end
  • config.vm.network «forwarded_port», guest: 80, host: 8080
  • config.vm.network «forwarded_port», guest: 80, host: 8080, host_ip: «127.0.0.1»
  • config.vm.network «private_network», ip: 192.168.1.1: ip estática
  • config.vm.network «private_network», type:«dhcp»: las IPs la reparte el provisioner
  • config.vm.network «public_network»
  • config.vm.network «public_network», ip: «192.168.1.1»
  • config.vm.network «public_network», use_dhcp_assigned_default_route: true
  • config.vm.synced_folder «host_folder», «vm_folder»
  • config.vm.synced_folder "sql", "/sql",
          owner: "root",
           group: "root",
           mount_options: ["dmode=700,fmode=644"]
  • Dashboard k8s (mejor que portainer)
    • 2-Despliegue de Aplicaciones Kubernetes/kubernetes-Helm3-API-Metrics-Server
  • Ingress/LoadBalancer
    • 2-Despliegue de Aplicaciones Kubernetes/Laboratorio ingress kubernetes con Traefick.txt
    • 2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf pag 197
  • RBAC
    • documentación oficial (no docs)
  • info/cursos/pue/devops2022/s9.txt
  • Darrera modificació: 17/03/2022 03:09
  • per mate