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
Següent revisió
Revisió prèvia
info:cursos:pue:devops2022:s9 [09/03/2022 08:58] – [TODO] mateinfo:cursos:pue:devops2022:s9 [17/03/2022 03:09] (actual) – [TODO] mate
Línia 3: Línia 3:
 <callout type="info" icon="true"> <callout type="info" icon="true">
   * 3-Topic 703 Machine Deployment/1-Material Curso Vagrant/   * 3-Topic 703 Machine Deployment/1-Material Curso Vagrant/
-  *  
 </callout> </callout>
-== Clase + 
-<callout type="info" icon="true"></callout> +== Vagrant 
-== TODO +<callout type="info" icon="true"> 
-<callout type="infoicon="true"></callout>+  * ./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> 
 +  * montar entornos en local (pensado para desarrollo) 
 +  * hypervisores (providers): VirtualBox (100%), VMWare, Parallels, Hyperv, cloud... 
 +    * [[https://www.vagrantup.com/docs/providers/basic_usage]] 
 +  * box: máquina virtual que me puedo descargar (para uno a varios providers, no intercambiable) 
 +    * [[https://app.vagrantup.com/boxes/search]] 
 + 
 +=== primeros comandos 
 +  * ''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 
 +  * ''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 
 + 
 +=== package 
 +  * ''VBoxManage list vms'' 
 +  * ''vagrant package --base "..." --output maquina-vitual.box'' 
 +  * subir a repositorio local 
 + 
 +=== provisionamiento 
 +  * pág 149 (Herramientas Devops entornos de desarrollo en local, para programadores con Docker y Vagrant .pdf) 
 +  * [[https://www.vagrantup.com/docs/provisioning]] 
 +  * se aplica con: 
 +    * ''vagrant provision'' 
 +    * ''vagrant reload %%--%%provision'' 
 +  * métodos: 
 +    * inline:<code ruby> 
 +... 
 +  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 
 +... 
 +</code> 
 +    * script 
 +    * puppet/ansible/chef 
 + 
 +=== network  
 +  * 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 
 + 
 +=== 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 
 +  * NFS, CIFS 
 + 
 +=== provider 
 +  * aplicar cambios en la máquina virtual 
 +  * [[https://www.vagrantup.com/docs/providers/virtualbox/configuration]] 
 +  * **check_guest_additions** 
 +  * **customize** 
 +  * **memory** 
 +  * **cpus** 
 +  * **linked_clone** 
 +  * **default_nic_type** 
 +  * **name** 
 + 
 +=== snapshots 
 +  * ''vagrant snapshot'' 
 +  * ''vagrant snapshot save <nombre>'' 
 +  * ''vagrant snapshot restore <nombre>'' 
 +  * ''vagrant snapshot list'' 
 +  * ''vagrant snapshot delete <nombre>'' 
 +  * ''vagrant snapshot push'' 
 +  * ''vagrant snapshot pop'' 
 +== Vagrantfile 
 +  * 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 
 +=== provider 
 +  * [[https://www.vagrantup.com/docs/providers/virtualbox/configuration]] 
 +  * <code ruby>config.vm.provider "virtualbox" do |vb| 
 +  vb.gui = true 
 +  vb.name = "nombre-maquina-virtual" 
 +  vb.memory = "1024" 
 +end</code> 
 +=== provision 
 +  * pag 149 
 +  * <code ruby>config.vm.provision "shell", inline <<-SHELL 
 +  comando 
 +        comando 
 +    SHELL 
 +</code> 
 +  * ''config.vm.provision "shell", path:"miscript.sh"'' 
 +  * <code ruby>config.vm.provision "ansible_local" do |ansible| 
 +  ansible.playbook = "playbook_centos_install_docker.yaml" 
 +end 
 +</code> 
 +=== network 
 +  * ''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'' 
 + 
 +=== synced_folder 
 +  * ''config.vm.synced_folder "host_folder", "vm_folder"'' 
 +  * <code ruby>config.vm.synced_folder "sql", "/sql", 
 +      owner: "root", 
 +       group: "root", 
 +       mount_options: ["dmode=700,fmode=644"]</code> 
 + 
  
 == Extra == 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)
 +
  
  • info/cursos/pue/devops2022/s9.1646845087.txt.gz
  • Darrera modificació: 09/03/2022 08:58
  • per mate