Vendor agnostic DNS front-end for streamlining DNS operations and enabling self-service for your DNS infrastructurehttp://vinyldns.io/
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:
- AWS Sig4 signing of all messages to ensure that the message that was sent was not altered in transit
- Throttling of DNS updates to rate limit concurrent updates against your DNS systems
- Encrypting user secrets and TSIG keys at rest and in-transit
- Recording every change made to DNS records and zones
Integration is simple with first-class language support including:
- java
- ruby
- python
- go-lang
- javascript
Table of Contents
- Quickstart
- Code of Conduct
- Developer Guide
- Contributing
- Roadmap
- Contact
- Maintainers and Contributors
- Credits
Quickstart
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:
- Ensure that you have docker and docker-compose
- Clone the repo:
git clone https://github.com/vinyldns/vinyldns.git
- Navigate to repo:
cd vinyldns
- Run
.bin/docker-up-vinyldns.sh
. This will start up the api atlocalhost:9000
and the portal atlocalhost:9001
- See Developer Guide for how to load a test DNS zone
- To stop the local setup, run
./bin/remove-vinyl-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
Things to try in the portal
- View the portal at http://localhost:9001 in a web browser
- Login with the credentials testuser and testpassword
- Navigate to the
groups
tab: http://localhost:9001/groups - Click on the New Group button and create a new group, the group id is the uuid in the url after you view the group
- View zones you connected to in the
zones
tab: http://localhost:9001/zones (Note, see Developer Guide for creating a zone) - You will see that some records are preloaded in the zoned already, this is because these records are preloaded in the local docker DNS server and VinylDNS automatically syncs records with the backend DNS server upon zone connection
- From here, you can create DNS record sets in the Manage Records tab, and manage zone settings and ACL rules in the Manage Zone tab
- To try creating a DNS record, click on the Create Record Set button under Records,
Record Type = A, Record Name = my-test-a, TTL = 300, IP Addressess = 1.1.1.1
- Click on the Refresh button under Records, you should see your new record created
Other things to note
- Upon connecting to a zone for the first time, a zone sync is ran to provide VinylDNS a copy of the records in the zone
- Changes made via VinylDNS are made against the DNS backend, you do not need to sync the zone further to push those changes out
- If changes to the zone are made outside of VinylDNS, then the zone will have to be re-synced to give VinylDNS a copy of those records
- If you wish to modify the url used in the creation process from
http://localhost:9000
, to sayhttp://vinyldns.yourdomain.com:9000
, you can modify thebin/.env
file before execution. - A similar
docker/.env
can be modified to change the default ports for the Portal and API. You must also modify their config files with the new port: https://www.vinyldns.io/operator/config-portal & https://www.vinyldns.io/operator/config-api
Code of Conduct
This project and everyone participating in it are governed by the VinylDNS Code Of Conduct. By participating, you agree to this Code. Please report any violations to the code of conduct to vinyldns-core@googlegroups.com.
Developer Guide
See DEVELOPER_GUIDE.md for instructions on setting up VinylDNS locally.
from https://github.com/vinyldns/vinyldns
from https://github.com/vinyldns/vinyldns
No comments:
Post a Comment