ConoHaのDNSをCLI上で操作できるツール
3 min read
こんにちは、無能です。
ConoHaにNS移管と共に10ドメイン程度移管する必要になりました。
作りました
GitHub - haturatu/conoha-dns: ConoHaのDNSをCLIで操作できるツール
ConoHaのAPI Key自体の認証トークンの有効期間は24Hです。
環境変数にAPI Token発行に必要な情報があれば--auth
で認証が通せられます。 .conoha-env
:
CONOHA_USER_ID="your_user_id" # API ユーザー: ユーザID
CONOHA_PASSWORD="your_password" # API ユーザー: パスワード
TENANT_ID="your_tenant_id" # テナント情報: テナントID
CONOHA_AUTH_URL="https://identity.sample.conoha.io" # エンドポイント: Identity Service URL
CONOHA_DNS_API_URL="https://dns-service.sample.conoha.io" # エンドポイント: DNS Service URL
この状態で--auth
します。
$ conoha-dns --auth
APIトークンが見つからないため、認証して新しいトークンを取得します...
新しいAPIトークンを取得しました。
/home/haturatu/.conoha-envファイルにCONOHA_TOKENを追記しました。
認証に成功し、APIトークンが利用可能です。
その後、-l/--list
でそのままリスト表示とそのまま-l/--list
に引数を与えるとDNSのレコードが確認できます。
thepassenger:[haturatu]:~$ conoha-dns -l
ID Name
0e6f0695 soulminingrig.com.
4fb208de eyes4you.org.
~~~
thepassenger:[haturatu]:~$ conoha-dns -l soulminingrig.com
ID Name Type TTL Data
cc29e413 soulminingrig.com. SOA 3600 a.conoha-dns.com. postmaster.example.org. 1757988182 3600 600 86400 3600
5c0dcdbd soulminingrig.com. NS 3600 a.conoha-dns.com.
5c3aa1fd soulminingrig.com. NS 3600 b.conoha-dns.org.
ddd21438 soulminingrig.com. A 300 163.44.113.145
b5d8c8f7 www.soulminingrig.com. A 300 163.44.113.145
6124c6f7 git.soulminingrig.com. A 300 163.44.113.145
0a74b0bc a.soulminingrig.com. A 300 163.44.113.145
thepassenger:[haturatu]:~$ conoha-dns -l 0e6f0695
ID Name Type TTL Data
cc29e413 soulminingrig.com. SOA 3600 a.conoha-dns.com. postmaster.example.org. 1757988182 3600 600 86400 3600
5c0dcdbd soulminingrig.com. NS 3600 a.conoha-dns.com.
5c3aa1fd soulminingrig.com. NS 3600 b.conoha-dns.org.
ddd21438 soulminingrig.com. A 300 163.44.113.145
b5d8c8f7 www.soulminingrig.com. A 300 163.44.113.145
6124c6f7 git.soulminingrig.com. A 300 163.44.113.145
0a74b0bc a.soulminingrig.com. A 300 163.44.113.145
Help
$ conoha-dns -h
usage: conoha-dns [-h]
(--auth | -l [DOMAIN] | -ad NAME EMAIL | -dd DOMAIN | -ar DOMAIN NAME TYPE DATA | -ur DOMAIN RECORD_ID | -dr DOMAIN RECORD_ID)
[-t TTL] [-o {csv}] [--new-name NEW_NAME] [--new-type NEW_TYPE] [--new-data NEW_DATA] [--new-ttl NEW_TTL]
ConoHa DNS API (v1) を操作するCLIツール
options:
-h, --help show this help message and exit
--auth APIトークンを認証・取得する
-l [DOMAIN], --list [DOMAIN]
ドメイン一覧または指定ドメインのレコード一覧表示
-ad NAME EMAIL, --add-domain NAME EMAIL
ドメイン追加
-dd DOMAIN, --delete-domain DOMAIN
ドメインを名前またはIDで削除
-ar DOMAIN NAME TYPE DATA, --add-record DOMAIN NAME TYPE DATA
レコード追加
-ur DOMAIN RECORD_ID, --update-record DOMAIN RECORD_ID
レコード更新
-dr DOMAIN RECORD_ID, --delete-record DOMAIN RECORD_ID
レコード削除
-t TTL, --ttl TTL レコード追加時のTTL(秒)。デフォルト: 300
-o {csv}, --output {csv}
出力形式をCSVにします。'-l'での一覧表示時のみ有効です。
--new-name NEW_NAME 更新後のレコード名
--new-type NEW_TYPE 更新後のレコードタイプ
--new-data NEW_DATA 更新後のレコードデータ
--new-ttl NEW_TTL 更新後のTTL
使用例:
# APIトークンを認証・取得
conoha-dns --auth
# ドメイン一覧表示
conoha-dns -l
# レコード一覧をCSV形式で標準出力
conoha-dns -l example.com --output csv > records.csv
# Aレコード追加 (サブドメインtestを補完してtest.example.comを追加)
conoha-dns -ar example.com @ A 192.0.2.1
conoha-dns -ar example.com test A 192.0.2.1
# レコード更新 (レコードIDを指定し、新しいIPアドレスを設定)
conoha-dns -ur example.com <record_id> --new-data 192.0.2.2
# レコード削除 (レコードIDは -l example.com で確認)
conoha-dns -dr example.com <record_id>
ちなみに元のレコード/ドメイン自体のIDが長すぎていたので確認しやすいようにxxhash
でハッシュした値にして確認しやすいようにはしています。
よくよくおもったけど--renew
とかで古いAPI Key情報捨ててすぐに使えるようにすればよかったですかね^^;
現状dotfileである.conoha-env
のCONOHA_TOKEN
行を削除しないと使えません。それではまた。よろしくお願いします。