Aquesta és una revisió antiga del document
DevOps Sesión 9 (2022-03-09) Vagrant
Documentación relacionada
- 3-Topic 703 Machine Deployment/1-Material Curso Vagrant/
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
- montar entornos en local (pensado para desarrollo)
- hypervisores (providers): VirtualBox (100%), VMWare, Parallels, Hyperv, cloud…
- box: máquina virtual que me puedo descargar (para uno a varios providers, no intercambiable)
lab (escenario)
vagrant init: crea fichero Vagrantfilevagrant 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 sshvagrant port
vagrant statusvagrant haltvagrant destroy -frm -rf .vagrant: directorio de trabajo
vagrant global-status
vagrant box
vagrant box listvagrant 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
package
VBoxManage list vmsvagrant package –base «…» –output maquina-vitual.box- subir a repositorio local
provisionamiento
- métodos:
- inline
- sh
- pupper/ansible
... 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 ...
network
- pag
- reenvio de puertos
- sencillo de configurar, suficiente en la mayoría de casos
carpetas compartidas
- 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
Vagrantfile
- ruby
config.vm.box: box a usarconfig.vm.box_url: dirección donde se puede encontrar este box. No necesario en el hub de Vagrantconfig.vm.box_check_update: si TRUE, comprueba y actualiza el BOX cada vez que se hacevagrant up
provision
config.vm.provision "shell", inline <<-SHELL comando comando SHELL
network
config.vm.network «forwarded_port», guest: 80, host: 8080config.vm.network «forwarded_port», guest: 80, host: 8080, host_ip: «127.0.0.1»
synced_folder
config.vm.synced_folder «host_folder», «vm_folder»config.vm.synced_folder "sql", "/sql", owner: "root", group: "root", mount_options: ["dmode=700,fmode=644"]
TODO
Extra
- 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)