A CLI tool to manage ConoHa DNS.
Project description
ConoHa DNS CLI
ConoHa DNSをコマンドラインから操作するためのツールです。
デフォルトでは見やすいテーブル形式で一覧表示し、--output csv オプションを指定することでCSV形式で標準出力することもできます。
$ conoha-dns -h
usage: main.py [-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>
インストール
はじめに、ConoHaの認証情報を記述した~/.conoha-envファイルをホームディレクトリに作成します。
APIエンドポイントはConoHaのリージョンによって異なるため、適宜変更してください。
ConoHaコントロールパネル の「API情報」から確認できます。
~/.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
次に、Makefileを使ってビルドとインストールを実行します。
make install
これにより、conoha-dnsコマンドがインストールされます。
使い方
このコマンドは、実行したい操作をフラグで指定します。一度に指定できる操作は1つだけです。
ドメインを指定する引数 (DOMAIN) には、ドメイン名 (example.com) またはドメインID (ba9b5b9dなど) の両方を使用できます。
一般的なコマンド
ヘルプ表示
conoha-dns -h
認証
認証情報を使って新しいAPIトークンを取得し、~/.conoha-envファイルに保存します。
なお、ConoHa APIトークンの有効期限は24時間です。
conoha-dns --auth
ドメイン・レコード管理
ドメイン一覧・レコード一覧
-l フラグを使用すると、一覧がテーブル形式で表示されます。
# ドメイン一覧
conoha-dns -l
# レコード一覧 (ドメイン名またはIDで指定)
conoha-dns -l <ドメイン名/ID>
実行例:
$ conoha-dns -l
ID Name
0e6f0695 soulminingrig.com.
4fb208de eyes4you.org.
...
CSV形式での標準出力
--output csv オプションを追加すると、一覧をCSV形式で標準出力します。リダイレクト(>)を使えばファイルに保存できます。
# ドメイン一覧をCSVで標準出力
conoha-dns -l --output csv
# レコード一覧をCSVファイルとして保存
conoha-dns -l <ドメイン名/ID> --output csv > records.csv
実行例:
$ conoha-dns -l example.com --output csv
ID,Name,Type,Data,TTL
5057adde,eye4u.org.,SOA,"a.conoha-dns.com. taro.eyes4you.org. 1757833524 3600 600 86400 3600",3600
2eff1245,eye4u.org.,NS,a.conoha-dns.com.,3600
...
ドメイン追加
conoha-dns -ad <ドメイン名> <メールアドレス>
ドメイン削除
conoha-dns -dd <ドメイン名/ID>
レコード管理
内部的に、ConoHa APIから取得したレコードIDは長いため、xxhashを用いて短いハッシュ値に変換して表示・利用しています。
レコード追加
conoha-dns -ar <ドメイン名/ID> <レコード名> <種別> <値> [--ttl <秒数>]
レコード更新
record_id(conoha-dns -l <ドメイン名/ID>で確認可能)と、少なくとも1つの--new-*オプションを指定する必要があります。
conoha-dns -ur <ドメイン名/ID> <record_id> [--new-name <名前>] [--new-type <種別>] [--new-data <値>] [--new-ttl <TTL>]
レコード削除
conoha-dns -dr <ドメイン名/ID> <record_id>
応用例:xargsを使った一括操作
xargsと組み合わせることで、ファイルに記載されたドメインリストに対して一括で操作を実行できます。
例えば、以下のようなドメインリストが書かれたdomain-list.txtがあるとします。
domain-list.txt
example1.com
example2.com
example3.com
このファイル内の各ドメインに対して、一括でルートAレコードを追加するには、以下のコマンドを実行します。
cat domain-list.txt | xargs -I{} conoha-dns -ar {} @ A 192.0.2.1
これにより、domain-list.txtの各行が{}に代入され、ドメインごとにレコード追加コマンドが実行されます。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file conoha_dns_cli-0.1.0.tar.gz.
File metadata
- Download URL: conoha_dns_cli-0.1.0.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8b26a8175a1fb65f417307c73ff508b9f72d00f24bef4b2f6aae8645ccd433e
|
|
| MD5 |
554407e159f73b64fe1036b476cc09be
|
|
| BLAKE2b-256 |
e5a9c13eff7aa814c2cee674302f4add3a554257d54ea2f7d9854dff4443ab5e
|
File details
Details for the file conoha_dns_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: conoha_dns_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6aaa2d09f8ac7add5f6aa8c3c5740729dd1add5189a39afa47f4a1c0eb47f761
|
|
| MD5 |
cba896fa84541b682e19b060128e634a
|
|
| BLAKE2b-256 |
7f44f559115f3982774aee7b521a2e0758ff5c23d3b4806295bcba32413c85b6
|