Warning
This page refers to command that use the V1 API, which is currently disabled, and will be removed in a future release
The python-designateclient package comes with a command line tool (installed as designate), this can be used to access a Designate API without having to manipulate JSON by hand, it can also produce the output in a variety of formats (JSON, CSV) and allow you to select columns to be displayed.
As with any OpenStack utility, designate requires certain information to talk to the REST API, username, password, auth url (from where the other required endpoints are retrieved once you are authenticated).
To provide your access credentials (username, password, tenant name or tenant id)
you can pass them on the command line with the --os-username
, --os-password
, --os-tenant-name
or --os-tenant-id
params, but it’s easier to just set them as environment variables:
export OS_USERNAME=openstack
export OS_PASSWORD=yadayada
export OS_TENANT_NAME=myproject
export OS_TENANT_ID=123456789
You will also need to define the authentication url with --os-auth-url
or set is as an environment variable as well:
export OS_AUTH_URL=https://example.com:5000/v2.0/
Since Keystone can return multiple regions in the Service Catalog, you
can specify the one you want with --os-region-name
(or
export OS_REGION_NAME
). It defaults to the first in the list returned.
With enough details now in the environment, you can use the designate client to create a domain and populate it with some records:
$ designate domain-create --name example.com. --email admin@example.com
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| description | None |
| created_at | 2013-09-19T11:45:25.295355 |
| updated_at | None |
| email | admin@example.com |
| ttl | 3600 |
| serial | 1379591125 |
| id | eacbe2a5-95f1-4a9f-89f5-b9c58009b163 |
| name | example.com. |
+-------------+--------------------------------------+
Now that the domain has been created, we can start adding records.
You’ll note that the name (www.example.com) has a trailing .
, as per the DNS standard, we didn’t set a TTL and we had to specify the parent
zone/domain by domain_id eacbe2a5-95f1-4a9f-89f5-b9c58009b163
.
$ designate record-create eacbe2a5-95f1-4a9f-89f5-b9c58009b163 --name www.example.com. --type A --data 1.2.3.4
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| name | www.example.com. |
| data | 1.2.3.4 |
| created_at | 2013-09-19T13:44:42.295428 |
| updated_at | None |
| id | 147f6082-8466-4951-8d13-37a10e92b11e |
| priority | None |
| ttl | None |
| type | A |
| domain_id | eacbe2a5-95f1-4a9f-89f5-b9c58009b163 |
| description | None |
+-------------+--------------------------------------+
We’ve already seen the domain-create
and record-create
subcommands, here the full list of subcommands:
subcommand | Notes | Admin Required |
---|---|---|
complete | print bash completion command | |
diagnostics-ping | Ping a service on a given host | |
domain-create | Create Domain | |
domain-delete | Delete Domain | |
domain-get | Get Domain | |
domain-list | List Domains | |
domain-servers-list | List Domain Servers | |
domain-update | Update Domain | |
help | print detailed help for another command | |
quota-get | Get Quota | |
quota-reset | Reset Quota | |
quota-update | Update Quota | |
record-create | Create Record | |
record-delete | Delete Record | |
record-get | Get Record | |
record-list | List Records | |
record-update | Update Record | |
report-count-all | Get count totals for all tenants, domains and records | |
report-count-domains | Get counts for total domains | |
report-count-records | Get counts for total records | |
report-count-tenants | Get counts for total tenants | |
report-tenant-domains | Get a list of domains for given tenant | |
report-tenants-all | Get list of tenants and domain count for each | |
server-create | Create Server | |
server-delete | Delete Server | |
server-get | Get Server | |
server-list | List Servers | |
server-update | Update Server | |
sync-all | Sync Everything | |
sync-domain | Sync a single Domain | |
sync-record | Sync a single Record | |
touch-domain | Touch a single Domain |
You’ll find complete documentation on the shell by running
designate --help
:
Designate Client
--version | show program’s version number and exit |
-v, --verbose | Increase verbosity of output. Can be repeated. |
--log-file LOG_FILE | |
Specify a file to log output. Disabled by default. | |
-q, --quiet | Suppress output except warnings and errors. |
-h, --help | Show this help message and exit. |
--debug | Show tracebacks on errors. |
--os-username OS_USERNAME | |
Name used for authentication with the OpenStack Identity service. Defaults to env[OS_USERNAME]. | |
--os-user-id OS_USER_ID | |
User ID used for authentication with the OpenStack Identity service. Defaults to env[OS_USER_ID]. | |
--os-user-domain-id OS_USER_DOMAIN_ID | |
Defaults to env[OS_USER_DOMAIN_ID]. | |
--os-user-domain-name OS_USER_DOMAIN_NAME | |
Defaults to env[OS_USER_DOMAIN_NAME]. | |
--os-password OS_PASSWORD | |
Password used for authentication with the OpenStack Identity service. Defaults to env[OS_PASSWORD]. | |
--os-tenant-name OS_TENANT_NAME | |
Tenant to request authorization on. Defaults to env[OS_TENANT_NAME]. | |
--os-tenant-id OS_TENANT_ID | |
Tenant to request authorization on. Defaults to env[OS_TENANT_ID]. | |
--os-project-name OS_PROJECT_NAME | |
Project to request authorization on. Defaults to env[OS_PROJECT_NAME]. | |
--os-domain-name OS_DOMAIN_NAME | |
Project to request authorization on. Defaults to env[OS_DOMAIN_NAME]. | |
--os-domain-id OS_DOMAIN_ID | |
Defaults to env[OS_DOMAIN_ID]. | |
--os-project-id OS_PROJECT_ID | |
Project to request authorization on. Defaults to env[OS_PROJECT_ID]. | |
--os-project-domain-id OS_PROJECT_DOMAIN_ID | |
Defaults to env[OS_PROJECT_DOMAIN_ID]. | |
--os-project-domain-name OS_PROJECT_DOMAIN_NAME | |
Defaults to env[OS_PROJECT_DOMAIN_NAME]. | |
--os-auth-url OS_AUTH_URL | |
Specify the Identity endpoint to use for authentication. Defaults to env[OS_AUTH_URL]. | |
--os-region-name OS_REGION_NAME | |
Specify the region to use. Defaults to env[OS_REGION_NAME]. | |
--os-token OS_TOKEN | |
Specify an existing token to use instead of retrieving one via authentication (e.g. with username & password). Defaults to env[OS_SERVICE_TOKEN]. | |
--os-endpoint OS_ENDPOINT | |
Specify an endpoint to use instead of retrieving one from the service catalog (via authentication). Defaults to env[OS_DNS_ENDPOINT]. | |
--os-endpoint-type OS_ENDPOINT_TYPE | |
Defaults to env[OS_ENDPOINT_TYPE]. | |
--os-service-type OS_SERVICE_TYPE | |
Defaults to env[OS_DNS_SERVICE_TYPE], or ‘dns’. | |
--os-cacert OS_CACERT | |
CA certificate bundle file. Defaults to env[OS_CACERT]. | |
--insecure | Explicitly allow ‘insecure’ SSL requests. |
--all-tenants | Allows to list all domains from all tenants. |
--edit-managed | Allows to edit records that are marked as managed. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.