Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vagrant-landrush/landrush

A Vagrant plugin that provides a simple DNS server for Vagrant guests
https://github.com/vagrant-landrush/landrush

dns plugin ruby vagrant

Last synced: about 1 month ago
JSON representation

A Vagrant plugin that provides a simple DNS server for Vagrant guests

Awesome Lists containing this project

README

        

= Landrush: DNS for Vagrant
:toc:
:toc-placement!:

image:https://travis-ci.org/vagrant-landrush/landrush.svg?branch=master["Build Status", link="https://travis-ci.org/vagrant-landrush/landrush"]
https://ci.appveyor.com/project/hferentschik/landrush-3agrx/branch/master[image:https://ci.appveyor.com/api/projects/status/3iv8sv5v73s15mt6/branch/master?svg=true[Build Status]]
image:https://badge.fury.io/rb/landrush.svg["Gem Version", link="https://badge.fury.io/rb/landrush"]

Landrush is a simple cross-platform DNS for Vagrant VMs that is visible
on both, the guest and the host.

It spins up a small DNS server and redirects DNS traffic from your VMs
to use it, automatically registering/unregistering IP addresses of
guests as they come up and go down.

[NOTE]
====
This project is currently _unmaintained_ and looking for maintainers! Anybody interested in helping out please contact @hferentschik.

I'd be happy to help coach anybody who wants to drop in and pick up the maintainer role for this plugin!
====

'''
toc::[]
'''

== Installation

Install under Vagrant (1.1 or later):

....
$ vagrant plugin install landrush
....

== Getting started

. Enable the plugin in your `Vagrantfile`:
+
....
config.landrush.enabled = true
....
. Bring up a machine.
+
....
$ vagrant up
....
. You are able to get your VM's hostname resolved on your host:
+
....
$ dig -p 10053 @localhost myhost.vagrant.test
....
. If you shut down your guest, the entries associated with it will be removed.

Landrush retrieves your VM's hostname from either the vagrant config or
it uses the system's actual hostname by running the `hostname` command.
A default hostname of "guest-vm" is assumed if the hostname is otherwise not
available.

A Landrush example configuration could look like this:

....
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"

config.landrush.enabled = true

config.vm.hostname = "myhost.vagrant.test"

config.landrush.host 'static1.example.com', '1.2.3.4'
config.landrush.host 'static2.example.com', '2.3.4.5'
end
....

See the link:doc/Usage.adoc[Usage guide] for further information.

== Available CLI commands

Check out `vagrant landrush help` for the available commands.

....
vagrant landrush

commands:
{start|stop|restart|status}
control the landrush server daemon
list, ls
list all DNS entries known to landrush
dependentvms, vms
list vms currently dependent on the landrush server
set { | }
adds the given host-to-ip or alias-to-hostname mapping.
Existing host ip addresses will be overwritten
rm, del { | | --all }
delete the given hostname or alias from the server.
--all removes all entries
help
you're lookin at it!
....

== Troubleshooting

See the link:doc/Troubleshooting.adoc[Troubleshooting guide] to resolve issues you face while using Landrush.

== Help Out!

This project needs your feedback and help! Please do not hesitate to open issues or submit pull requests. We welcome your input.
If you wish to contribute to the development of Landrush, refer to the link:CONTRIBUTING.adoc[Contributing guide] for details
on how you can contribute. The link:doc/Development.adoc[Development guide] will help you setup your development environment.