DNS automation and governance for streamlining DNS operations and enabling safe and secure DNS self-service
VinylDNS is a vendor-agnostic front-end for enabling self-service DNS and streamlining DNS operations. VinylDNS manages millions of DNS records supporting thousands of engineers in production at Comcast. The platform provides fine-grained access controls, auditing of all changes, a self-service user interface, secure RESTful API, and integration with infrastructure automation tools like Ansible and Terraform. It is designed to integrate with your existing DNS infrastructure, and provides extensibility to fit your installation.
VinylDNS helps secure DNS management via:
Integration is simple with first-class language support including:
Docker images for VinylDNS live on Docker Hub at https://hub.docker.com/u/vinyldns/. To start up a local instance of VinylDNS on your machine with docker:
git clone https://github.com/vinyldns/vinyldns.git
cd vinyldns
./quickstart/quickstart-vinyldns.sh
. This will start up the api at localhost:9000
and the portal
at localhost:9001
./utils/clean-vinyldns-containers.sh
.There exist several clients at https://github.com/vinyldns that can be used to make API requests, using the
endpoint http://localhost:9000
.
If you are experimenting with Quickstart, you may encounter a delay each time you run it. This is because the API and Portal are rebuilt every time you launch Quickstart. If you'd like to cache the builds of the API and Portal, you may want to first run:
Script | Description |
---|---|
build/assemble_api.sh |
This will create the API jar file which will then be used by Quickstart |
build/assemble_portal.sh |
This will create the Portal zip file which will then be used by Quickstart |
Once these scripts are run, the artifacts are placed into the artifacts/
directory and will be reused for each
Quickstart launch. If you'd like to regenerate the artifacts, simply delete them and rerun the scripts above.
professor
and professor
groups
tab: http://localhost:9001/groups
zones
tab: http://localhost:9001/zones.
-> Connect
buttonZone Name
enter ok
with an email of [email protected]
Admin Group
, choose a group you created from the previous stepConnect
button at the bottom of the formok
should appear in your My Zones
tab (you may need to refresh your browser)
Record Type = A, Record Name = my-test-a, TTL = 300, IP Addressess = 1.1.1.1
VinylDNS will synchronize with the DNS backend. For the Quickstart this should be running on port 19001
on localhost
.
To verify your changes, you can use a DNS resolution utility like dig
$ dig @127.0.0.1 -p 19001 +short my-test-a.ok
1.1.1.1
This tells dig
to use 127.0.0.1
as the resolver on port 19001
. The +short
just makes the output a bit less
verbose. Finally, the record we're looking up is my-test-a.ok
. You can see the returned output of 1.1.1.1
matches
the record data we entered.
http://localhost:9000
, to
say http://vinyldns.yourdomain.com:9000
, you can modify the quickstart/.env
file before execution.This project, and everyone participating in it, are governed by the VinylDNS Code Of Conduct. By participating, you agree to this Code.
See DEVELOPER_GUIDE.md for instructions on setting up VinylDNS locally.
See the Contributing Guide.
The current maintainers (people who can merge pull requests) are:
See AUTHORS.md for the full list of contributors to VinylDNS.
See MAINTAINERS.md for documentation specific to maintainers
VinylDNS would not be possible without the help of many other pieces of open source software. Thank you open source world!
Given the Apache 2.0 license of VinylDNS, we specifically want to call out the following libraries and their corresponding licenses shown below.