Probablement une question stupide mais
J'ai déjà utilisé la boîte trusty64 avec vagrant et j'essayais la boîte xenial64 mais il n'accepte pas l'utilisateur habituel: mot de passe vagrant: login vagrant?
Probablement une question stupide mais
J'ai déjà utilisé la boîte trusty64 avec vagrant et j'essayais la boîte xenial64 mais il n'accepte pas l'utilisateur habituel: mot de passe vagrant: login vagrant?
Comme mentionné par l'utilisateur @prometee dans cette discussion du tableau de bord # 1569237 , vous pouvez trouver le mot de passe. dans:
~/.vagrant.d/ubuntu-VAGRANTSLASH-xenial64/20161221.0.0/virtualbox/Vagrantfile
ou:
~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20161221.0.0/virtualbox/Vagrantfile
en fonction de votre version de Vagrant. (Notez que la partie 20161221.0.0
du chemin varie en fonction du moment où la boîte a été téléchargée. Il peut également y en avoir plusieurs dans votre répertoire.)
Voici le mien (ligne 8):
# Front load the includes
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)
Vagrant.configure("2") do |config|
config.vm.base_mac = "022999D56C03"
config.ssh.username = "ubuntu"
config.ssh.password = "fbcd1ed4fe8c83b157dc6e0f"
config.vm.provider "virtualbox" do |vb|
vb.customize [ "modifyvm", :id, "--uart1", "0x3F8", "4" ]
vb.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "ubuntu-xenial-16.04-cloudimg-console.log") ]
end
end
Pour votre information, l'utilisateur @racb a mentionné dans la même discussion que le this bug report having been filed
ubuntu et jusqu'à présent no [...] decision has been made yet
à ce sujet.
Je me suis cogné la tête contre le mur pendant une demi-journée hier jusqu'à ce que je réalise que je disposais d'une ancienne version de Virtualbox (5.0.x) et de Vagrant (1.8.0)
Mise à jour vers VirtualBox 5.1.x et Vagrant 1.8.7 pour obtenir de meilleurs résultats
En gros, les images ubuntu/xenial32
et ubuntu/xenial64
sont défectueuses car elles ne sont pas livrées avec l'utilisateur vagrant
. "/ p>
C’est contre les spécifications Vagrant
J'ai finalement utilisé v0rtex/xenial64
comme recommandé dans le rapport de bogue . Vous ne savez pas pourquoi canonical
ne résout pas ce problème
Mon fichier vagrant est le suivant
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "v0rtex/xenial64"
config.vm.network :private_network, ip: "10.10.10.10"
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.vm.provider :virtualbox do |vb|
vb.name = "supercool"
vb.customize ["modifyvm", :id, "--memory", "768"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
end
Si vous souhaitez toujours utiliser les images fournies par canonical
, il est possible d'utiliser l'approche suivante
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network :private_network, ip: "10.10.10.10"
config.ssh.insert_key = true
config.ssh.forward_agent = true
config.vm.provider :virtualbox do |vb|
vb.name = "supercool"
vb.customize ["modifyvm", :id, "--memory", "768"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
end
Si vous faites cela, le dossier /vagrant
appartiendra à ubuntu:ubuntu
au lieu de vagrant:vagrant
. Si vous avez des scripts qui dépendent de l'utilisateur vagrant
, ils se casseront
Une solution consiste à installer expect et à lancer un changement de mot de passe. L'exemple ci-dessous définit le mot de passe ubuntu sur utilisateur ubuntu.
Vagrant.configure("2") do |config|
apt-get install -y expect
echo '#!/usr/bin/expect
set timeout 20
spawn sudo passwd ubuntu
expect "Enter new UNIX password:" {send "ubuntu\r"}
expect "Retype new UNIX password:" {send "ubuntu\r"}
interact' > change_ubuntu_password
chmod +x change_ubuntu_password
./change_ubuntu_password
end
La nouvelle image ubuntu/xenial64
ne vient pas avec un nom d'utilisateur et un mot de passe par défaut. Cependant, vous pouvez utiliser ssh avec une clé ssh générée dans votre dossier vagrant.
Disons que votre fichier Vagrant est à /vagrant/vm01/Vagrantfile
, la clé ssh serait dans /vagrant/vm01/.vagrant/machines/..../private_key
Vous pouvez vous connecter à votre machine virtuelle errante à l’aide de ce private_key
. Si l'ordinateur invité demande la phrase secrète de la clé, appuyez simplement sur ENTER
(en spécifiant une phrase secrète vierge). Par exemple, sur mon Mac:
ssh -i /vagrant/vm01/.vagrant/..../private_key <your vm ip> <your vm port>
Si vous souhaitez toujours vous connecter à l'aide d'un nom d'utilisateur et d'un mot de passe, vous pouvez ajouter votre propre utilisateur pour vous connecter ultérieurement:
# create a user for log in
sudo useradd yourusername
# specify a password
sudo passwd yourusername
# then type your password when prompted
# add the user to sudo group
sudo adduser yourusername sudo
# create a home folder for your user
sudo mkdir /home/yourusername
# add a shell command for your user (normally /bin/bash)
sudo vim /etc/passwd
# find yourusername line, and add /bin/bash to the end.
# the end result would look like this:
yourusername:x:1020:1021::/home/yourusername:/bin/bash
Vous pouvez maintenant utiliser SSH avec le nouveau nom d'utilisateur et le nouveau mot de passe.
Vous pouvez exporter la configuration valide OpenSSH pour vous connecter à la machine en tapant vagrant ssh-config
dans votre dossier Vagrantfile. La sortie vous montrera que l’authentification par mot de passe est désactivée, mais vous pouvez pointer vers le fichier de clé privée:
Host default
HostName 127.0.0.1
User ubuntu
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /path/to/project/folder/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
Vous pouvez maintenant:
ssh -i /path/to/project/folder/.vagrant/machines/default/virtualbox/private_key [email protected]
Si vous n'êtes pas intéressé par la boîte ubuntu/xenial64
mais par une autre boîte 16,04 LTS, j'ai utilisé le bento qui fonctionne avec le nom d'utilisateur et le mot de passe habituels vagrant
:
config.vm.box = 'bento/ubuntu-16.04'
config.vm.box_version = "201708.22.0"
J'utilise Vagrant sous Windows et une image de ubuntu / xenial64 sans mot de passe configuré pour cela.
Vous pouvez vous connecter à votre machine virtuelle via la commande:
vagrant ssh
ou par
ssh -i private_key vagrant:127.0.0.1 -p 2222