GNU/Linux >> Tutoriales Linux >  >> Linux

Carpetas sincronizadas perdidas al reiniciar una máquina Vagrant usando el aprovisionador Ansible

No hay forma de que Vagrant sepa que la máquina se está reiniciando durante el aprovisionamiento.

Si es posible, lo mejor sería evitar reiniciar aquí por completo. Por ejemplo, las actualizaciones del kernel ya deberían estar hechas al construir la caja base.

Otra forma fácil (pero no muy conveniente) es manejarlo con salida de registro o documentación, o con una secuencia de comandos contenedora que invoca vagrant up && vagrant reload .

Y finalmente, podría escribir un complemento que inyecte todas las acciones de montaje, etc. necesarias en la pila de middleware de Vagrant después del aprovisionamiento, pero aún tendría que pensar cómo hacer que el complemento sepa que la máquina se ha iniciado. Otro desafío es que esto fácilmente se vuelve específico del proveedor.


Debería poder agregar los sistemas de archivos a /etc/fstab para montarlos en el arranque.

Aquí está mi ejemplo:

vagrant /vagrant    vboxsf  defaults    0   0
home_vagrant_src    /home/vagrant/src   vboxsf  defaults    0   0
home_vagrant_presenter-src  /home/vagrant/presenter-src vboxsf  defaults    0   0

Su directorio vagabundo debe tener un directorio oculto .vagrant, y allí debe encontrar una ruta al archivo "synced_folders" (en mi caso:/vagrant/.vagrant/machines/default/virtualbox/synced_folders ).

Ese archivo debería ayudarlo a descubrir cuáles son las etiquetas y sus puntos de montaje:

{"virtualbox":{"/home/vagrant/src":{"guestpath":"/home/vagrant/src","hostpath":"/home/rkomorn/src","disabled":false,"__vagrantfile":true},"/home/vagrant/presenter-src":{"guestpath":"/home/vagrant/presenter-src","hostpath":"/home/presenter/src","disabled":false,"__vagrantfile":true},"/vagrant":{"guestpath":"/vagrant","hostpath":"/home/rkomorn/vagrant","disabled":false,"__vagrantfile":true}}}

No es el más fácil de leer pero, utilizando la terminología de Python, las etiquetas parecen ser las claves del diccionario interno, con / traducida a _ (p. ej.:la clave /home/vagrant/presenter-src se convirtió en la etiqueta home_vagrant_presenter-src).

De hecho, no estoy seguro de por qué Vagrant no solo usa /etc/fstab para las carpetas compartidas, pero supongo que hay una buena razón.


Linux
  1. Al usar Vlc, ¿por qué el protector de pantalla sigue activándose?

  2. cuando uso CPAN en linux ubuntu, ¿debería ejecutarlo usando sudo / como root o como mi usuario predeterminado?

  3. ¿Debo colocar una barra diagonal después de la fuente y el destino al copiar carpetas?

  4. ¿Cómo evitar el mensaje de advertencia 'son el mismo archivo' cuando se usa cp en Linux?

  5. No se puede acceder a las carpetas montadas por sshfs después de la suspensión (o cuando se pierde la conexión)

Vagrant Up se cuelga al montar carpetas compartidas NFS:¿cómo solucionarlo?

Cómo automatizar reinicios del sistema usando el módulo de reinicio de Ansible

Cómo trabajar con Ansible Provisioner en Vagrant

Terraform vs Ansible:¿Cuál es la diferencia y cuál deberías usar?

Se agotó el tiempo mientras se esperaba que la máquina se iniciara cuando vagabundeaba

Copiar un archivo solo cuando es más nuevo que el destino