GNU/Linux >> Linux Esercitazione >  >> Linux

Cartelle sincronizzate perse durante il riavvio di una macchina Vagrant utilizzando il provisioner Ansible

Non c'è modo per Vagrant di sapere che la macchina viene riavviata durante il provisioning.

Se possibile, la cosa migliore sarebbe evitare del tutto il riavvio qui. Ad esempio, gli aggiornamenti del kernel dovrebbero essere già stati eseguiti durante la creazione della scatola base.

Un altro modo semplice (ma non molto conveniente) è gestirlo con l'output del log o la documentazione, o con uno script wrapper che invoca vagrant up && vagrant reload .

E infine, potresti scrivere un plug-in che inietta tutte le azioni di montaggio necessarie ecc. Nello stack del middleware Vagrant dopo il provisioning, ma dovresti comunque pensare a come far sapere al plug-in che la macchina è stata avviata. Un'altra sfida è che questo diventa facilmente specifico del provider.


Dovresti essere in grado di aggiungere i filesystem a /etc/fstab da montare all'avvio.

Ecco il mio esempio:

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

La tua directory vagabonda dovrebbe contenere una directory nascosta .vagrant, e lì dovresti trovare un percorso per il file "synced_folders" (nel mio caso:/vagrant/.vagrant/machines/default/virtualbox/synced_folders ).

Quel file dovrebbe aiutarti a capire cosa sono le etichette e i loro punti di montaggio:

{"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}}}

Non è il più facile da leggere ma, usando la terminologia di Python, le etichette sembrano essere le chiavi del dizionario interno, con / tradotto in _ (es:la chiave /home/vagrant/presenter-src è diventata l'etichetta home_vagrant_presenter-src).

In realtà non sono sicuro del perché vagabondo non usi solo /etc/fstab per le cartelle condivise, ma immagino che ci sia una buona ragione.


Linux
  1. Windows:come impedire a Windows di sovrascrivere Grub quando si utilizza una macchina a doppio avvio?

  2. Quando si utilizza Vlc, perché lo screen saver continua a svegliarsi?

  3. Linux:il valore appropriato di Vm.swappiness quando si utilizza Zram?

  4. quando uso CPAN in Linux Ubuntu dovrei eseguirlo usando sudo / come root o come utente predefinito

  5. Copiare un file solo quando è più recente della destinazione

Vagrant si blocca durante il montaggio di cartelle condivise NFS:come risolverlo?

Come automatizzare i riavvii del sistema utilizzando il modulo di riavvio di Ansible

Come lavorare con Ansible Provisioner in Vagrant

Terraform vs Ansible:qual è la differenza e quale dovresti usare?

Tempo scaduto durante l'attesa dell'avvio della macchina durante il vagabondaggio

Devo smettere di usare Ifconfig?