devopsgroup-io / vagrant-digitalocean

:droplet: A Vagrant provider plugin that manages DigitalOcean droplets.
Mozilla Public License 2.0
1.71k stars 182 forks source link

provision ssh username set #183

Open nchokoev opened 9 years ago

nchokoev commented 9 years ago

Hello,

How can I change the SSH Username when provisioning? It appears to be hardcoded to 'root'...

In my vagrantfile I have set 'config.ssh.username = "freebsd" ', but when vagrant try to connect via SSH it seems to use username 'root':

INFO retryable: Retryable exception raised: # DEBUG ssh: Checking whether SSH is ready... INFO ssh: Attempting SSH connection... INFO ssh: Attempting to connect to SSH... INFO ssh: - Host: xxx.xxx.xxx.xxx INFO ssh: - Port: 22 INFO ssh: - Username: root INFO ssh: - Password? false INFO ssh: - Key Path: ["C:/Work/Dropbox/Dropbox/DigitalOcean/keys/ssh-prv-key .openssh"]

The 'vagrant ssh' works fine.

harmoniqpunk commented 9 years ago

+1 Unfortunately is hardcoded. Here is my version: https://github.com/georgepoenaru/vagrant-digitalocean

Until will be merged you can use it like this: $ gem install bundler $ git clone git@github.com:georgepoenaru/vagrant-digitalocean.git $ cd vagrant-digitalocean $ bundle
$ bundle exec vagrant up --provider digital_ocean

hamiltont commented 9 years ago

+1. Here's a workaround that provisions with the value of config.ssh.username

$ vagrant up --provider digital_ocean --no-provision
$ vagrant provision

Just for kicks, I had my provision script spit out the environment. During vagrant up the environment looks like this:

==> default: Running provisioner: shell...
    default: Running: /var/folders/b8/rkpz3m117qzgpl4xg26c44l00000gn/T/vagrant-shell20150425-9071-mye5tt.sh
==> default: stdin: is not a tty
==> default: Printing environment seen by droplet...
==> default: HOME=/root
==> default: LANG=en_US.UTF-8
==> default: LOGNAME=root
==> default: MAIL=/var/mail/root
==> default: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
==> default: PWD=/root
==> default: SHELL=/bin/bash
==> default: SHLVL=3
==> default: SSH_CLIENT=98.249.9.52 56363 22
==> default: SSH_CONNECTION=98.249.9.52 56363 107.170.152.15 22
==> default: TERM=vt100
==> default: USER=root
==> default: _=/usr/bin/env
==> default: XDG_RUNTIME_DIR=/run/user/0
==> default: XDG_SESSION_ID=1

Whereas during vagrant provision the environment looks like this:

==> default: Running provisioner: shell...
    default: Running: /var/folders/b8/rkpz3m117qzgpl4xg26c44l00000gn/T/vagrant-shell20150425-9250-zsq81w.sh
==> default: Printing environment seen by droplet...
==> default: HOME=/home/ubuntu
==> default: LANG=en_US.UTF-8
==> default: LOGNAME=ubuntu
==> default: MAIL=/var/mail/ubuntu
==> default: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
==> default: PWD=/home/ubuntu
==> default: SHELL=/bin/bash
==> default: SHLVL=3
==> default: SSH_CLIENT=98.249.9.52 56681 22
==> default: SSH_CONNECTION=98.249.9.52 56681 107.170.152.15 22
==> default: TERM=vt100
==> default: USER=ubuntu
==> default: _=/usr/bin/env
==> default: XDG_RUNTIME_DIR=/run/user/1000
==> default: XDG_SESSION_ID=3
seth-reeser commented 9 years ago

Please submit a pull request with your proposal.

webhive commented 7 years ago

+1