Skip to content

Enhancement Request: Disable Vagrant Communicator #13619

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Wenzel opened this issue Mar 15, 2025 · 1 comment
Open

Enhancement Request: Disable Vagrant Communicator #13619

Wenzel opened this issue Mar 15, 2025 · 1 comment

Comments

@Wenzel
Copy link

Wenzel commented Mar 15, 2025

Is your feature request related to a problem? Please describe.

I'm currently unable to use Vagrant purely as a VM manager without a communicator. My use case involves using Vagrant to manage a VM under test with kAFL (a fuzzer for OS kernels). Since the harness runs inside the kernel at boot time, I cannot rely on SSH becoming available. However, Vagrant enforces the presence of a communicator, making it impossible to proceed without workarounds.

I've also noticed community interest in this feature:

Describe the solution you'd like
I propose adding an option to explicitly disable the communicator in the Vagrantfile, for example:

Vagrant.configure("2") do |config|
  config.vm.communicator = "none"  # New option to disable SSH/WinRM
end

This would:

  • Prevent Vagrant from expecting SSH/WinRM to be available.
  • Allow VM lifecycle management without unnecessary connection attempts.

Describe alternatives you've considered
I've explored using custom communicators, but existing solutions (e.g., vagrant-none-communicator, vagrant-dummy-communicator) are unofficial and may not be fully maintained. The alternative is to manually manage the VM outside of Vagrant, which defeats the purpose of using Vagrant for orchestration.

Additional context
If this feature aligns with Vagrant’s roadmap, I’d appreciate guidance on contributing:

  1. What components need modification? Which parts of the Vagrant codebase enforce communicators?
  2. Where should the none communicator be implemented? Should it be a built-in option, or would extending the plugin API be a better approach?
  3. Estimated effort and complexity? Would implementing this require deep changes to Vagrant’s internals, or is it a relatively isolated modification?

Let me know if this is feasible, and if there's an existing design pattern that should be followed for such an addition.

Thanks !


Environment Details

  • Vagrant Version: Latest
  • Provider: vagrant-libvirt
  • Guest OS: Windows 10 or Ubuntu 24.04
  • Host OS: Ubuntu 24.04
@rreye
Copy link

rreye commented Apr 16, 2025

I am also interested in this enhancement

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants