2016-11-26 1 views
2

Je cours peu de scripts en ligne à la fin de chaque vagrant up.Scripts en ligne Ubuntu box vagabonds émettant "mesg ttyname failed ioctl inapproprié pour le périphérique"

Vagrant.configure(2) do |config| 
    config.vm.box = "bento/ubuntu-16.04" 

    ... omitting all the other steps related to networking, folders, etc 

    config.vm.provision "shell", inline: "service nginx restart", run: "always" 

    config.vm.post_up_message = "Done!" 
end 

Et je reçois dans mes journaux:

==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision` 
==> default: flag to force provisioning. Provisioners marked to run always will still run. 
==> default: Running provisioner: shell... 
    default: Running: inline script 
==> default: mesg: 
==> default: ttyname failed 
==> default: : 
==> default: Inappropriate ioctl for device 

==> default: Machine 'default' has a post `vagrant up` message. This is a message 
==> default: from the creator of the Vagrantfile, and not from Vagrant itself: 
==> default: 
==> default: Done! 

D'après ce que j'ai été trouver à ce jour - il devrait être quelque chose dans la configuration Ubuntu, pas Vagrant lui-même. J'ai trouvé et essayé cette solution sans succès: https://github.com/mitchellh/vagrant/issues/7368

Cependant, si pertinent - je cours le dernier Vagrant 1.8.7 et macOS Sierra.

+0

Cela se produit avec Vagrant 1.8.7 et Ubuntu 16.04 avec le provisionneur de shell. Cela m'est arrivé à chaque fois et vous pouvez simplement l'ignorer parce que la commande réussit toujours. –

+0

Oui, exactement. Je sais que la commande réussit et qu'elle est déclenchée par le fournisseur de shell. Mais je demande pourquoi et comment y remédier :) – ddinchev

+0

Ignorez-le et attendez un correctif de Hashicorp ou Canonical. –

Répondre

5

Peut-être qu'il est trop tard pour une réponse à cette question, mais cela peut aider quelqu'un d'autre, il est bon de partager ce que j'ai essayé:

# Prevent TTY Errors (copied from laravel/homestead: "homestead.rb" file)... By default this is "bash -l". 
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'" 

Comme vous pouvez le voir dans la ligne commentée ci-dessus - la "mesg: ttyname failed ioctl Inapproprié pour l'appareil" a été empêché de l'équipe laravel.

La plupart des développeurs aimeraient éviter les erreurs/avertissements lorsque nous faisons du développement, donc cela semble être la solution dont nous avions besoin.

Note importante: Je n'ai pas trop testé cette solution, mais la boîte démarre sans l'erreur "mesg: ttyname failed ioctl Inapproprié pour l'appareil"! Vous êtes libre de l'essayer et si vous rencontrez des problèmes, laissez tomber un commentaire pour sauver le temps de quelqu'un d'autre!