Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shupp/VegaDNS-CLI
A python wrapper and command line interface to VegaDNS-API
https://github.com/shupp/VegaDNS-CLI
Last synced: 17 days ago
JSON representation
A python wrapper and command line interface to VegaDNS-API
- Host: GitHub
- URL: https://github.com/shupp/VegaDNS-CLI
- Owner: shupp
- License: other
- Created: 2015-09-21T17:50:50.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T06:08:34.000Z (about 2 years ago)
- Last Synced: 2024-08-08T18:20:10.536Z (4 months ago)
- Language: Python
- Size: 128 KB
- Stars: 4
- Watchers: 2
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - shupp/VegaDNS-CLI - A python wrapper and command line interface to VegaDNS-API (others)
README
# VegaDNS CLI
VegaDNS CLI is a command line interface for [VegaDNS-API](https://github.com/shupp/VegaDNS-API) written in python. It is comprised of a thin REST wrapper with [OAuth2 section 4.4](https://tools.ietf.org/html/rfc6749#section-4.4) support, vegadns_client, and a [Click](http://click.pocoo.org/5/) 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](https://github.com/shupp/VegaDNS-CLI/blob/master/integration_tests/test_domain.py) for example usage.
## Installation and upgrades
Installation should be done through [pip3](https://pip.pypa.io/en/stable/). 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
```## Configuring
To connect to your VegaDNS2 API, you'll need to set the host url, your api key, and api secret.
### From a brand new api install
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 \
--key 6d145840921dabcc85907bff35e607289abdad04b7900196ee45f5a4e12ac369 \
--secret b1163b6387318dbfebaca5740ddb024ad61fa18831bb887ea085036f8df9c180
```### From email/password
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 : /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.## Using the _vdns_ cli tool
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.
## Support
For support or feedback, please use [GitHub issues](https://github.com/shupp/VegaDNS-CLI/issues)