VegaDNS CLI is a command line interface for VegaDNS-API written in python. It is comprised of a thin REST wrapper with OAuth2 section 4.4 support, vegadns_client, and a Click based cli wrapper, vegadns_cli. If you wish, you can write your own integration with the API using the vegadns_client wrapper. See the integration tests for example usage.
Installation should be done through pip3. For a first time global installation, you can do the following:
sudo pip3 install https://github.com/shupp/VegaDNS-CLI/archive/master.zip
For subsequent updates, you can use the builtin upgrade command:
sudo vdns upgrade
To connect to your VegaDNS2 API, you'll need to set the host url, your api key, and api secret.
For a brand new installation, you can start with the seeded account information and change it later when you create accounts:
vdns config set --host <your_api_url> \
--key 6d145840921dabcc85907bff35e607289abdad04b7900196ee45f5a4e12ac369 \
--secret b1163b6387318dbfebaca5740ddb024ad61fa18831bb887ea085036f8df9c180
If someone created an account for you, and you need to create api keys from a given email/password, you can currently use curl and basic auth to generate the keys:
curl -X POST -u <email>:<password> <api_host>/1.0/apikeys
In the response JSON response you'll see a key and secret. Use those values and follow the config set example above.
The vdns tool should be self explanatory. To see the list of commands available, you can call it without any arguments:
Usage: vdns [OPTIONS] COMMAND [ARGS]...
A command line interface for managing VegaDNS
Options:
-e, --environment TEXT Which environment config to use, default is
'default'
-d, --debug Enables HTTP debug logs
--help Show this message and exit.
Commands:
accounts Manage accounts
apikeys Manage account api keys
audit_logs List audit logs
config Manage the config for the current environment
default_records Manage default records
domaingroupmaps Manage domain to group mappings/permissions
domains Manage domains
export Export active domains in tinydns data format
groupmembers Manage group members
groups Manage groups
records Manage a domain's records
update_data Update tinydns data (local to VegaDNS only)
upgrade Upgrade VegaDNS CLI client
As you can see, if you work with multiple VegaDNS2 installations, you can use -e as a global argument to all commands specify which api to talk to. The default is default.
Note that you can always use --help with any command to see its usage:
$ vdns records --help
Usage: vdns records [OPTIONS] COMMAND [ARGS]...
Manage a domain's records
Options:
--help Show this message and exit.
Commands:
create_a Create A record
create_aaaa Create a AAAA record
create_aaaaptr Create a AAAA+PTR record
create_aptr Create A+PTR record
create_cname Create a CNAME record
create_mx Create an MX record
create_ns Create an NS record
create_ptr Create a PTR record
create_soa Create an SOA record (limit one per domain)
create_spf Create an SPF record
create_srv Create an SRV record
create_txt Create a TXT record
delete Delete a record
edit_a Edit an A record
edit_aaaa Edit a AAAA record
edit_aaaaptr Edit a AAAA+PTR record
edit_aptr Edit an A+PTR record
edit_cname Edit a CNAME record
edit_mx Edit an MX record
edit_ns Edit an NS record
edit_ptr Edit a PTR record
edit_soa Edit an SOA record
edit_spf Edit an SPF record
edit_srv Edit an SRV record
edit_txt Edit a TXT record
list List all records for a domain
$ vdns accounts --help
Usage: vdns accounts [OPTIONS] COMMAND [ARGS]...
Manage accounts
Options:
--help Show this message and exit.
Commands:
create Create an account
delete Delete an account
edit Edit an account
get Get a single account
list List all accounts
set_password Set the password for an account
While some arguments can be omitted resulting in a prompt for their values, you'll likely find the most success by knowing the arguments you need, and being explicit.
For support or feedback, please use GitHub issues