Commit Graph

488 Commits

Author SHA1 Message Date
Seth Vargo 0b2804fbb0
guests/atomic: Use require_relative in plugin defn 2016-06-06 11:58:25 -04:00
Seth Vargo 31e02cddf5
guests/atomic: Do not use sudo when checking hostname
The `hostname` command does not require root to execute
2016-06-06 11:58:25 -04:00
Seth Vargo 4f0c3474f2
guests/atomic: Update hostname capability
This commit does a few things:

1. Make the hostname update idempotent with `grep -w`
2. Add the given hostname to `/etc/hosts` as recommended by the docs
3. Add missing tests
2016-06-06 11:58:25 -04:00
Seth Vargo 3a9ac19f7e
guests/arch: Use require_relative in plugin defn 2016-06-06 11:58:24 -04:00
Seth Vargo cb0e77692c
guests/arch: Do not use sudo when checking hostname
The `hostname` command does not require root to execute
2016-06-06 11:58:24 -04:00
Seth Vargo d77ad5c941
guests/arch: Configure networks in one command
This commit updates the procedure for configuring arch networks to occur
in a single command. Previously, each network was configured
independently. If, for some reason, one of the networks destroyed the
SSH connection, the box would be irrecoverable. This commit does not
alleviate that behavior, but attempts to mitigate it by running all
network-related configuration commands in a single communicator (SSH)
session.

The new procedure looks like this:

1. Upload a temp file to /tmp/vagrant-network-id... for each interface
  on the guest.
2. Compile a commands array (of bash) to execute after all network
  configurations have been uploaded.
3. Concatenate all the commands together in a single communicator
  session.

This was tested against `terrywant/archlinux` using the following Vagrantfile:

```ruby
Vagrant.configure(2) do |config|
  config.vm.box = "terrywang/archlinux"
  config.vm.hostname = "banana-ramama.example.com"

  config.vm.network "private_network", type: "dhcp"

  config.vm.network "private_network", ip: "33.33.33.10"

  config.vm.provision "file", source: "Vagrantfile", destination: "/tmp/vf"
  config.vm.provision "shell", inline: "echo hi"
end
```
2016-06-06 11:58:24 -04:00
Seth Vargo 41d61120a5
guests/arch: Change hostname in one command
This commit updates the procedure for changing the hostname on arch
guests to occur in a single command. Previously, setting the hostname
and adding the value of the hostname to the /etc/hosts file was done in
two different uploads. This reduces the cycle to a single upload, making
provisioning a bit faster.

Additionally, this changes the behavior of the /etc/hosts file to:

1. Not remove localhost as an alias of 127.0.0.1
2. Prepend our custom hostname before localhost

The resulting /etc/hosts file will look something like:

127.0.0.1 my-host.example.com my-host
127.0.0.1 localhost.mydomain localhost

Tested against `terrywang/archlinux` using the following Vagrantfile:

```ruby
Vagrant.configure(2) do |config|
  config.vm.box = "terrywang/archlinux"
  config.vm.hostname = "banana-ramama.example.com"

  config.vm.network "private_network", type: "dhcp"

  config.vm.network "private_network", ip: "33.33.33.10"

  config.vm.provision "file", source: "Vagrantfile", destination: "/tmp/vf"
  config.vm.provision "shell", inline: "echo hi"
end
```
2016-06-06 11:58:24 -04:00
Seth Vargo 49ce775b53
Prefix tempfiles with vagrant- 2016-05-31 00:18:16 -04:00
Seth Vargo 7014aa3bab
Remove custom tempfile class
This is not actually providing any additional utility and also causes
namespace conflicts with people trying to use the real Tempfile class.
2016-05-30 23:21:47 -04:00
Seth Vargo 5a4f345363
Use Util::Tempfile when configuring networks
This fixes a fairly large tempfile leak. Vagrant uses a template
renderer to write network configuration files locally to disk. Then,
that temporarily file is uploaded to the remote host and moved into
place. Since Vagrant is such a short-lived process, GC never came along
and cleaned up those tempfiles, resulting in many temporary files being
created through regular Vagrant usage.

The Util::Tempfile class uses a block to ensure the temporary file is
deleted when the block finishes. This API required small tweaks to the
usage, but provides more safety to ensure the files are deleted.
2016-05-28 23:22:34 -04:00
Seth Vargo 0505771481 Do not return an error if ifdown fails
Ubuntu versions prior to 16.04 always returned a successful exit status,
even if one tried to down an interface that does not exist. This
behavior changed in Ubuntu 16.04 to return an error. This commit
preserves the old behavior.

Fixes GH-7155
2016-03-20 18:21:03 +02:00
Lars Christensen a6565199ff Restart network after reconfiguration
Fixes #7119.
2016-03-08 16:24:24 +01:00
Altex 9e9909536c fix 2016-03-07 19:25:57 +03:00
Altex e998d6b0f4 Fixed centos 7 networks if using more than 3 ethernet adapters. 2016-03-05 22:25:59 +03:00
Andres Montalban 492ba40fd1 [MOD] Change the way FreeBSD network interfaces are configured. Fixes #5852 2016-03-01 19:28:09 -03:00
Seth Vargo fbd765acc1 Do not interpolate in SMB linux heredoc
Fixes GH-6906
2016-02-29 07:19:45 -05:00
Dennis dd541b93b9 ooops missed something while branching 2016-02-04 17:22:28 +01:00
Dennis 833f2d0ef7 added tinycore nfs mount cap 2016-02-04 16:27:53 +01:00
Dennis 25b913e1c1 added tinycore nfs mount cap 2016-02-04 16:26:37 +01:00
Dennis a7bdfd682e added tinycore nfs mount cap 2016-02-04 16:21:07 +01:00
Dennis c4776e4e1d added tinycore nfs mount cap 2016-02-04 16:19:53 +01:00
Seth Vargo a38dba0d4f Merge pull request #6610 from jharshman/vagrant-6608
Vagrant Issue #6608
2016-02-03 10:14:35 -05:00
Seth Vargo fe49c05ed0 Merge pull request #6843 from velocity303/trisquel_6842
Add trisquel guest plugin as derivative of ubuntu - Issue #6842
2016-02-03 10:12:24 -05:00
Seth Vargo e7ff8df256 Merge pull request #6867 from jlduran/freebsd-hostname-string
FreeBSD: Use quotes around hostname in rc.conf
2016-02-03 09:59:11 -05:00
Seth Vargo 9a93930fa9 Merge pull request #6760 from petems/patch-1
Change to use pkgng
2016-02-03 09:50:19 -05:00
Seth Vargo 1166800b65 Use SSL and HTTPS links where appropriate 2016-01-25 13:14:54 -05:00
Jose Luis Duran 0844b49c7a FreeBSD: Use quotes around hostname in rc.conf
Use double quotes around the hostname value in /etc/rc.conf
2016-01-13 07:28:42 -02:00
James Jones 6c861065de add trisquel guest plugin as derivative of ubuntu - Issue #6842 2016-01-10 08:21:16 -06:00
Peter Souter b3dd933afd Change to use pkgng
Old pkg_* is now EOL: https://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-February/000077.html
2015-12-29 14:35:49 +00:00
Mitchell Hashimoto 72f60aff65 whitespace 2015-12-24 12:44:58 -08:00
Joshua Harshman 652b4dac55 Vagrant Issue #6608
Refactor and repair regular expression attempting to match present interfaces.
The refactored regular expression will match on enp* ens* eth* variants.
2015-11-27 13:13:44 -08:00
Seth Vargo de1bd061f1 Merge pull request #6582 from LalatenduMohanty/fedora-guest-detection
Making the Fedora guest detection search string generic
2015-11-23 17:04:03 -05:00
Lalatendu Mohanty 7bb57c6f83 Making the Fedora guest detection search string generic
Signed-off-by: Lalatendu Mohanty <lmohanty@redhat.com>
2015-11-24 01:36:17 +05:30
Mitchell Hashimoto 601f7d41e5 synced_folders/smb: use cred files [GH-4230] 2015-11-23 11:11:50 -08:00
Mikhail Zholobov 4e4029a076 Fix permissions on "~/.ssh/authorized_keys" 2015-11-22 19:24:33 +02:00
Mitchell Hashimoto f5cadc93fa guests/linux: POSIX sed [GH-6104] 2015-11-19 18:35:18 -08:00
Mitchell Hashimoto 4988298b0b guests/arch: configure networks should enable device [GH-5737] 2015-11-19 11:39:04 -08:00
Seth Vargo 82f620ed13 Fix upstart detection and event emit 2015-11-18 16:18:32 -08:00
Seth Vargo f95b7914f7 Merge pull request #6515 from oliviermeurice/slack_net_conf
Slack net conf
2015-11-18 16:04:17 -08:00
Seth Vargo 1f6e5aa081 Check if the network manager is before reloading 2015-11-18 15:55:11 -08:00
Mitchell Hashimoto d69d7047b2 Merge pull request #6386 from legal90/fix-osx-nic-order
Fix network configuration in OS X (Darwin) guests
2015-11-18 14:33:51 -08:00
Mitchell Hashimoto a31f505731 Merge pull request #6288 from rickard-von-essen/dnf
Use dnf on Fedora guests instead of yum if available.
2015-11-18 13:37:22 -08:00
Mitchell Hashimoto b34db6a433 Merge pull request #6219 from jgoldschrafe/f-better-ubuntu-systemd-detection
Better Ubuntu systemd detection
2015-11-18 13:10:09 -08:00
Mitchell Hashimoto b7a610a808 Merge pull request #6203 from dustymabe/master
Fix Fedora /etc/hosts bug
2015-11-18 12:55:23 -08:00
Mitchell Hashimoto 7345c67b98 Merge pull request #6160 from lonniev/lonniev_rsync_issue_6115_branch
Scrub Guest Paths for Windows Rsync leaving Dirty Paths for Winrm Mkdir
2015-11-18 12:10:09 -08:00
Mitchell Hashimoto 4ccf83de44 Merge pull request #6172 from glensc/pld/networking
fix network detection on pld-linux
2015-11-18 12:08:53 -08:00
Mitchell Hashimoto aa0f57f7b7 Merge branch 'master' of https://github.com/apertoso/vagrant into apertoso-master 2015-11-18 12:00:12 -08:00
Mitchell Hashimoto d0ad747914 Merge pull request #5986 from denisbr/master
Specify time and don't do -h -H which is not really a valid usage.
2015-11-18 11:02:43 -08:00
Olivier Meurice 80021ceafb Add network configuration plugin for Slackware Linux 2015-11-12 14:33:04 +01:00
Tadej Janež 29e60882ca Fixes Fedora network issues when biosdevname command is not present.
Previously, configuring and enabling network interfaces failed with:

"The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/usr/sbin/biosdevname --policy=all_ethN -i bash: /usr/sbin/biosdevname:
No such file or directory

Stdout from the command:

bash: /usr/sbin/biosdevname: No such file or directory"

The previous attempt to fix this (ccc4162) doesn't work since it doesn't
properly parse the 'bash: /usr/sbin/biosdevname: No such file or
directory' error message.

This patch works around that problem and adds a comment explaining the
meaning of the return codes.
2015-10-11 23:10:26 +02:00