5528 Commits

Author SHA1 Message Date
Chris Roberts
c239e37b2f Force config value type and add test coverage
When extracting the config value from the data, force it to an Array
type for the size check. Include a test case that includes missing
configuration information to verify it does not produce an error.
2024-01-23 13:57:04 -08:00
Lars Tobias Skjong-Børsting
7d8b5e45fc Fix undefined method `size' for nil:NilClass in network_defined? 2024-01-20 12:59:47 +01:00
Chris Roberts
5a7fd6b302 Inspect guest for supported key types
Updates the SSH communicator to inspect the guest sshd configuration for
supported key types when creating a new key to replace the default
insecure public key. If the guest cannot be inspected, the connection
will be inspected. If the connection cannot be inspected, it will simply
fall back to the original behavior of using an rsa type key.
2024-01-18 11:53:00 -08:00
Chris Roberts
0a8f99df52 Open private key file in binary mode when writing
Prevent newlines from being converted to CRLF when writing private key
to file.
2024-01-12 16:01:23 -08:00
Chris Roberts
da8bdae003 Adjust string syntax 2024-01-10 16:47:59 -08:00
Chris Roberts
4b4cdfabc3
Merge pull request #13326 from alexgit2k/support-ansible-pip-for-rhel-8plus
Support ansible pip-installation for RHEL 8 and greater
2024-01-10 16:46:42 -08:00
Chris Roberts
96f2039bcd Use ssh key type defined by configuration
If key type is defined as :auto, detect best key type to use. If no
acceptable key type is detected as supported by the server, raise an
error. If unable to determine supported key types from the server,
fallback to original behavior of rsa type key.

If key type is defined as custom value, use that type if the server
supports it, or if the supported types cannot be read. Otherwise, raise
an error informing the user that the key type is not supported.
2024-01-10 11:52:46 -08:00
Chris Roberts
443ff01ab7 Add key_type configuration option for ssh
Adds a new `key_type` option to the Vagrantfile ssh configuration. It
defaults to :auto which allows auto detection of key type to use.
Otherwise it can be set to an explicit type supported by Vagrant.
2024-01-10 11:37:50 -08:00
alexgit2k
a4e3a71de6 Support ansible pip-installation for RHEL 8 and greater 2024-01-09 14:47:45 +01:00
Chris Roberts
51adb12547 Add architecture support for boxes
Introduce support for handling box architecture. Adds a new
`box_architecture` setting that defaults to `:auto` which will perform
automatic detection of the host system, but can be overridden with a
custom value. Can also be set to `nil` which will result in it fetching
the box flagged with the default architecture within the metadata.

Box collection has been modified to allow existing boxes already
downloaded and unpacked to still function as expected when architecture
information is not available.
2023-09-14 16:15:03 -07:00
Chris Roberts
6db640fb14 Adjust vbox hostonly config for ipv6
Check the type when an ipv6 address is being used. If the type does not
have a `6` suffix, append it.
2023-09-11 17:48:02 -07:00
Chris Roberts
f4142705ab
Merge pull request #13241 from lordgurke/fix-vagrant-13226-wrong-filename
Remove duplicate appending of "6" to network type
2023-09-11 17:45:34 -07:00
Chris Roberts
eb5aaed72d
Merge pull request #13259 from chrisroberts/remove-exps
Remove experimental checks
2023-09-11 17:31:58 -07:00
Chris Roberts
513be177d3 Remove experimental checks
Removes experimental checks on existing experimental features.
2023-09-08 14:15:34 -07:00
Chris Roberts
e958c6183a Adds initial HCP config support
Adds initial basic support for HCP based configuration in vagrant-go.
The initalization process has been updated to remove Vagrantfile parsing
from the client, moving it to the runner using init jobs for the basis
and the project (if there is one). Detection is done on the file based
on extension for Ruby based parsing or HCP based parsing.

Current HCP parsing is extremely simple and currently just a base to
build off. Config components will be able to implement an `Init`
function to handle receiving configuration data from a non-native source
file. This will be extended to include a default approach for injecting
defined data in the future.

Some cleanup was done in the state around validations. Some logging
adjustments were applied on the Ruby side for better behavior
consistency.

VirtualBox provider now caches locale detection to prevent multiple
checks every time the driver is initialized.
2023-09-07 17:26:10 -07:00
hashicorp-copywrite[bot]
36a312ee26
add missing license headers and update copyright file headers to BUS-1.1 2023-08-10 21:53:25 +01:00
Max
8ecfe32021
Remove duplicate appending of "6" to network type
To distinct between IPv4 and IPv6 configuration, a "6" was added to the network configuration type if an IPv6 address should be configured. This is now duplicate, as with pull 13024 the same thing is already done prior, thus leading to a duplicate "6" at the end of the network config type, i.e. "static66".
2023-07-30 17:33:58 +02:00
Chris Roberts
cebfb7a63b Use key type supported by server if possible
Check the key types supported by the server. If the data is not
available, default to the previous behavior which is using the rsa key
type.

Update insecure key check to match against any key files located within
the keys directory. For now, this effectively allows matching either rsa
or ed25519 insecure private keys.
2023-06-26 15:07:58 -07:00
Chris Roberts
d83bfc0d40 Perform best effort ssl revocation check on Windows
When performing a request via curl on Windows using schannel, ssl
certificate revocation checks does not handle verification failures
gracefully when an error is encountered that is unrelated to the actual
revocation of a certificate.

A new option is available to perform best effort revocation checks on
curl, so this is enabled by default on the Windows platform. A new
config option (`box_download_disable_ssl_revoke_best_effort`) has also
been added which can be optionally enabled to restore previous behavior
which results in a hard error if any error is encountered.
2023-06-20 16:37:00 -07:00
Chris Roberts
8e26495189 Project client and proc mapper fixes
Default the options for default provider so an options value is not
required when calling. The index for the proc lookup should use the key
method, not index.
2023-06-05 17:39:58 -07:00
Chris Roberts
1d991cb253 Rescue not found and return nil for machine box 2023-06-05 14:18:06 -07:00
Chris Roberts
6809812965
Merge pull request #13086 from dafyddj/fix/salt-highstate
Fix Salt provisioner for Windows guests
2023-06-02 17:44:49 -07:00
Chris Roberts
33bc24d9d7
Merge pull request #13194 from chrisroberts/ssh-comm-interactive
Remove keyboard-interactive authentication method
2023-06-02 17:14:23 -07:00
Chris Roberts
41342dceb3 Remove keyboard-interactive authentication method
The keyboard-interactive authentication method was added due to a
mis-reading of a reported issue where the box was not properly
configured for Vagrant. This removes the keyboard-interactive
authentication method which resolves a password prompting issue caused
by its addition.
2023-06-01 17:49:15 -07:00
Chris Roberts
0a20379b1a Enable deprecated key type and host key algorithm
Recent versions of OpenSSH remove support of ssh-rsa key types and host
key algorithms from the default conection configuration. Set options to
enable them and provide a configuration option which can disable them if
required.
2023-05-22 17:09:47 -07:00
Allison Larson
b651c65b54
Merge pull request #13166 from allisonlarson/verify_salt_download
Salt: Verify bootstrap-salt download
2023-05-22 09:54:00 -07:00
Allison Larson
7db87b9da3 Salt: Remove old bootstrap scripts 2023-05-19 16:09:46 -07:00
Allison Larson
2fa539e499 Salt: Download & verify shasum of default bootstrap-salt file 2023-05-19 16:09:46 -07:00
Allison Larson
ceddf2e6cd
Merge pull request #13153 from allisonlarson/docker_bridge_ip_update
Docker: Attempt using docker command for bridge ip
2023-05-19 09:14:04 -07:00
Chris Roberts
b0c5852145 Move constants to isolated file to be loaded on-demand
Since the protos are only loaded when the serve command is invoked, move
the constant alias definitions into an isolated file so they are only
loaded when needed by the serve command
2023-05-18 12:02:07 -07:00
Allison Larson
12b73a46b2 docker: attempt using docker command for bridge ip
Don't rely on `/sbin/ip` to fetch the docker bridge ip address, instead
first attempt to use the docker command to fetch it. If it fails, fall
back to previous behavior.
2023-05-18 10:54:38 -07:00
Chris Roberts
8e98c5ff1c Update locale preference for the virtualbox driver
Update the locale preference list to prefer UTF-8 variations of `C` when
available.
2023-05-17 11:59:05 -07:00
Chris Roberts
d53d8e61bc Fix LANG value used for VirtualBox driver
The VirtualBox driver sets the LANG env var to prevent localized output
being returned when executing CLI commands. If the `locale` command is
present, do a best effort lookup to determine the properly value to use
for the LANG environment variable.
2023-05-15 11:01:29 -07:00
Allison Larson
ec16a00560 docker: sync folders before preparing nfs settings
Re-order the `SyncedFolders` to occur before `PrepareNFSSettings`, ensuring that
the host & machine ips are set appropriately.
2023-05-12 11:04:05 -07:00
Allison Larson
10e45f1df1 Ignore inactive docker containers when assigning ports
Checks to make sure that a docker container is running before determining
whether or not the port is in use. This prevents the a port on an inactive
container from being treated as if it is use.

Fixes https://github.com/hashicorp/vagrant/issues/13110
2023-05-09 16:44:58 -07:00
Chris Roberts
7ab4deb8e2 Remove protobuf related loading from config
The final proto related constants were removed in #13031 but the proto
loading still remained. This removes the loading to prevent protos from
being loaded when not in server mode.
2023-05-02 08:48:52 -07:00
Sophia Castellarin
bc1e00fc50
Merge pull request #13052 from soapy1/password-auth-ssh
Update connection settings when using a password to connect ssh
2023-02-22 14:15:46 -08:00
Sophia Castellarin
9efc3521d1
Merge pull request #13090 from soapy1/remove-virtualbox-hyperv-check
Removes check for hyperv being enabled when verifying virtualbox is usable on windows.
2023-02-21 17:17:51 -08:00
Sophia Castellarin
ec396ec842
Merge pull request #13054 from moritzheiber/fix_ansible_pip_install_version_mismatch
Fix installing Ansible provisioner with version and pip
2023-02-21 17:12:32 -08:00
Sophia Castellarin
58d629d9af
Merge pull request #13055 from Penaz91/artix-support
Artix Linux Host Support
2023-02-21 16:49:02 -08:00
Sophia Castellarin
a5983aabe1
Merge pull request #12280 from RudiMT/bugfix20210302/hyperv-enhanced-sessionmode-crash-2012R2
HyperV enhanced sessionmode crash on Windows Server 2012R2
2023-02-21 16:47:11 -08:00
sophia
38e6e86d80 Removes check for hyperv being enabled when verifying virtualbox
is usable on windows. Virtualbox has supported running with hyperv
since version 6.0.0 https://www.virtualbox.org/wiki/Changelog-6.0.
(Virtualbox 6.0 is currently EOL) So, this check is no longer
required.
2023-02-17 11:38:28 -08:00
Dafydd Jones
0c0b208741
fix(salt): fix highstate on Salt minions v3004+ 2023-02-15 18:53:07 +00:00
Dafydd Jones
26c227c978
fix(salt): prevent reinstalling of Salt minion on Windows
* fix minion detection on Windows
 * use new command-line option `-ConfigureOnly` to tell
   bootstrap not to try installing minion (on Windows)

Fixes GH-10531
2023-02-15 18:53:07 +00:00
sophia
2e7116cfc3 Log ignoring of EnhancedSessionTransportType for debugging 2023-02-14 15:49:47 -08:00
RudiMT
431d91593a Output message in json
Would limit new console output to systems that do not already support EnhancedSessionTransportType. The vast majority of systems supports it and should not print additional messages.
2023-02-14 15:49:46 -08:00
RudiMT
ba562f273b Add check if EnhancedSessionTransportType is supported by the current version of HyperV 2023-02-14 15:49:46 -08:00
RudiMT
e14aa1e430 Formatting as in main 2023-02-14 15:49:46 -08:00
RudiMT
0867fbd9d8 Add check if EnhancedSessionTransportType is supported by the current version of HyperV 2023-02-14 15:49:46 -08:00
sophia
5f2ea0486e Update connection settings when using a password to connect ssh
When connecting over ssh using net-ssh use the non_interactive
argument must be set when authenticating with a password.

Add the keyboard-interactive default auth method
ref: 8a176a6ea0/lib/net/ssh/config.rb (L52)
2023-02-14 13:56:38 -08:00