hello

why you are doing this?

can you share the idea or requirements behind this?

vagrant is aim to help developers to create environments by code so they
can focus on the code.

Alvaro

On Fri, Dec 1, 2017 at 11:34 AM, Marcin Dulak <marcin.du...@gmail.com>
wrote:

> I'm not sure if it's about any existing bug, or a completely new
> enhancement, or whether what I'm trying to do is against the vagrant design.
>
>
>> I want to change the sshd port on the guest dynamically.
> I start with a box setup with sshd on port 22, change the port to let's
> say 222, restart sshd.
> I want vagrant to be able to interact with that guest on the new port.
>
> ### Vagrant version
>
> $ VBoxManage -version
> 5.1.30r118389
>
>
> $ vagrant --version
> Vagrant 2.0.1
>
>
> $ vagrant plugin list
> vagrant-share (1.1.9, system)
>
> ### Host operating system
>
> $ cat /etc/*release | grep 'VERSION='
> VERSION="16.04.3 LTS (Xenial Xerus)"
>
>
> ### Guest operating system
>
> https://app.vagrantup.com/centos/boxes/7
>
> ### Vagrantfile
>
> # -*- mode: ruby -*-
> # vi: set ft=ruby :
>
>
> SSH_GUEST_PORT = ENV.fetch('SSH_GUEST_PORT', 22)
>
>
> # 1. vagrant up
> # 2. vagrant ssh -c 'sudo netstat -ntlp | grep ssh'
> # 3. vagrant ssh -c 'sudo sed -i "s/#Port 22/Port 222/"
> /etc/ssh/sshd_config'
> # 4. vagrant ssh -c 'sudo sed -i "s/^SELINUX=.*/SELINUX=permissive/"
> /etc/selinux/config'
> # 5. vagrant ssh -c 'getenforce&& sudo service sshd restart&& sudo netstat
> -ntlp | grep ssh&& sudo sync && sudo grep 222 /etc/ssh/sshd_config'
> # 6. SSH_GUEST_PORT=222 GUI=1 vagrant reload
>
>
> BOX = ENV.fetch('BOX', 'centos/7')
>
>
> # http://stackoverflow.com/questions/23926945/specify-
> headless-or-gui-from-command-line
> def gui_enabled?
>   !ENV.fetch('GUI', '').empty?
> end
>
>
> Vagrant.configure(2) do |config|
>   config.vm.define 'centos7' do |machine|
>     machine.vm.box = BOX
>     machine.vm.box_url = machine.vm.box
>     machine.vm.provider 'virtualbox' do |p|
>       p.memory = 256
>       p.cpus = 1
>       p.gui = gui_enabled?
>     end
>     # https://realguess.net/2015/10/06/overriding-the-default-
> forwarded-ssh-port-in-vagrant/
>     machine.vm.network :forwarded_port, guest: SSH_GUEST_PORT, host: 2200,
> id: 'ssh', auto_correct: true
>     machine.ssh.guest_port = SSH_GUEST_PORT
>     puts 'SSH_GUEST_PORT ' + SSH_GUEST_PORT.to_s
>   end
>   config.vm.define 'centos7' do |machine|
>     machine.vm.provision :shell, :inline => 'hostnamectl set-hostname
> centos7'
>     machine.vm.provision :shell, :inline => 'yum -y install net-tools
> lsof'
>     machine.vm.provision :shell, :inline => 'setenforce 0', run: 'always'
>   end
> end
>
>
> ### Debug output
>
> ### Expected behavior
>
> vagrant connects to the guest over the new sshd port
>
> ### Actual behavior
>
> Note the unexpected `Port 22` reported by `vagrant ssh-config`.
>
> Vagrant is unable to connect to the box.
>
> Verify in the Virtualbox GUI that sshd is actually listening on 222 after
> reboot,
> since it happens sometimes that `/etc/ssh/sshd_config` is empty after
> `vagrant reload` reboot and sshd starts on the default `Port 22`.
>
> ### Steps to reproduce
>
> $ unset SSH_GUEST_PORT
>
>
> $ BOX='bento/centos-7.4' vagrant up
> Bringing machine 'centos7' up with 'virtualbox' provider...
> ==> centos7: Importing base box 'bento/centos-7.4'...
> ==> centos7: Matching MAC address for NAT networking...
> ==> centos7: Checking if box 'bento/centos-7.4' is up to date...
> ==> centos7: Setting the name of the VM: vagrant_other_sshd_centos7_
> 1512054292366_34932
> ==> centos7: Fixed port collision for 22 => 2200. Now on port 2202.
> ==> centos7: Clearing any previously set network interfaces...
> ==> centos7: Preparing network interfaces based on configuration...
>     centos7: Adapter 1: nat
> ==> centos7: Forwarding ports...
>     centos7: 22 (guest) => 2202 (host) (adapter 1)
> ==> centos7: Running 'pre-boot' VM customizations...
> ==> centos7: Booting VM...
> ==> centos7: Waiting for machine to boot. This may take a few minutes...
>     centos7: SSH address: 127.0.0.1:2202
>     centos7: SSH username: vagrant
>     centos7: SSH auth method: private key
>
>
> $ vagrant ssh -c 'sudo netstat -ntlp | grep ssh'
> tcp        0      0 0.0.0.0:22              0.0.0.0:*
> LISTEN      958/sshd
> tcp6       0      0 :::22                   :::*
>  LISTEN      958/sshd
>
>
> $ vagrant ssh -c 'sudo sed -i "s/#Port 22/Port 222/" /etc/ssh/sshd_config'
> $ vagrant ssh -c 'sudo sed -i "s/SELINUX=.*/SELINUX=permissive/"
> /etc/selinux/config'
>
>
> $ vagrant ssh-config
> Host centos7
>   HostName 127.0.0.1
>   User vagrant
>   Port 2202
>   UserKnownHostsFile /dev/null
>   StrictHostKeyChecking no
>   PasswordAuthentication no
>   IdentityFile /vagrant/vagrant_other_sshd/.vagrant/machines/centos7/
> virtualbox/private_key
>   IdentitiesOnly yes
>   LogLevel FATAL
>
>
> $ vagrant ssh -c 'getenforce&& sudo service sshd restart&& sudo netstat
> -ntlp | grep ssh&& sudo sync && sudo grep 222 /etc/ssh/sshd_config'
> Permissive
> Redirecting to /bin/systemctl restart sshd.service
> tcp        0      0 0.0.0.0:222             0.0.0.0:*
> LISTEN      2931/sshd
> tcp6       0      0 :::222                  :::*
>  LISTEN      2931/sshd
> Port 222
>
>
> $ SSH_GUEST_PORT=222 GUI=1 BOX='bento/centos-7.4' vagrant reload
> ==> centos7: Attempting graceful shutdown of VM...
>     centos7: Guest communication could not be established! This is
> usually because
>     centos7: SSH is not running, the authentication information was
> changed,
>     centos7: or some other networking issue. Vagrant will force halt, if
>     centos7: capable.
> ==> centos7: Forcing shutdown of VM...
> ==> centos7: Checking if box 'centos/7' is up to date...
> ==> centos7: Clearing any previously set forwarded ports...
> ==> centos7: Fixed port collision for 222 => 2200. Now on port 2201.
> ==> centos7: Clearing any previously set network interfaces...
> ==> centos7: Preparing network interfaces based on configuration...
>     centos7: Adapter 1: nat
> ==> centos7: Forwarding ports...
>     centos7: 222 (guest) => 2201 (host) (adapter 1)
> ==> centos7: Running 'pre-boot' VM customizations...
> ==> centos7: Booting VM...
> ==> centos7: Waiting for machine to boot. This may take a few minutes...
>     centos7: SSH address: 127.0.0.1:222
>     centos7: SSH username: vagrant
>     centos7: SSH auth method: private key
>     centos7: Warning: Connection refused. Retrying...
>
>
> $ vagrant ssh-config
> Host centos7
>   HostName 127.0.0.1
>   User vagrant
>   Port 22
>   UserKnownHostsFile /dev/null
>   StrictHostKeyChecking no
>   PasswordAuthentication no
>   IdentityFile /vagrant/vagrant_other_sshd/.vagrant/machines/centos7/
> virtualbox/private_key
>   IdentitiesOnly yes
>   LogLevel FATAL
>
>
>
>
> ### References
>
> --
> This mailing list is governed under the HashiCorp Community Guidelines -
> https://www.hashicorp.com/community-guidelines.html. Behavior in
> violation of those guidelines may result in your removal from this mailing
> list.
>
> GitHub Issues: https://github.com/mitchellh/vagrant/issues
> IRC: #vagrant on Freenode
> ---
> You received this message because you are subscribed to the Google Groups
> "Vagrant" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to vagrant-up+unsubscr...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/vagrant-up/1a3d3fd8-af51-46da-af5a-22baeb8d5378%40googlegroups.com
> <https://groups.google.com/d/msgid/vagrant-up/1a3d3fd8-af51-46da-af5a-22baeb8d5378%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Alvaro

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/vagrant/issues
IRC: #vagrant on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vagrant-up+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vagrant-up/CAHqq0eyH5Bbn1ftN1xGD%2BKr%3DW4aEv_GpiggYdKL_6EtVoPmo2w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to