Skip to main content

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]
               [--priority PRIORITY] [--weight WEIGHT] [--port PORT]
               [--new-data NEW_DATA] [--new-ttl NEW_TTL] [--new-priority NEW_PRIORITY]
               [--new-weight NEW_WEIGHT] [--new-port NEW_PORT]

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'での一覧表示時のみ有効です。
  --priority PRIORITY   MX/SRVレコード追加時の優先度
  --weight WEIGHT       SRVレコード追加時の重み
  --port PORT           SRVレコード追加時のポート番号
  --new-name NEW_NAME   更新後のレコード名
  --new-type NEW_TYPE   更新後のレコードタイプ
  --new-data NEW_DATA   更新後のレコードデータ
  --new-ttl NEW_TTL     更新後のTTL
  --new-priority NEW_PRIORITY
                        更新後の優先度
  --new-weight NEW_WEIGHT
                        更新後の重み
  --new-port NEW_PORT   更新後のポート番号

使用例:
  # 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
  conoha-dns -ar example.com mail MX mail.example.net. --priority 10
  conoha-dns -ar example.com _sip._tcp SRV sip.example.net. --priority 10 --weight 20 --port 5060

  # レコード更新 (レコード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 <秒数>] [--priority <数値>] [--weight <数値>] [--port <数値>]

MX では --priority が必須です。SRV では --priority, --weight, --port が必須です。

レコード更新 record_id(conoha-dns -l <ドメイン名/ID>で確認可能)と、少なくとも1つの--new-*オプションを指定する必要があります。

conoha-dns -ur <ドメイン名/ID> <record_id> [--new-name <名前>] [--new-type <種別>] [--new-data <値>] [--new-ttl <TTL>] [--new-priority <数値>] [--new-weight <数値>] [--new-port <数値>]

レコード削除

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の各行が{}に代入され、ドメインごとにレコード追加コマンドが実行されます。

Metadata

Release files for conoha-dns-cli 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for conoha-dns-cli 0.1.2
File Size Uploaded
conoha_dns_cli-0.1.2.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for conoha-dns-cli 0.1.2
File Interpreter ABI Platform
conoha_dns_cli-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 25.8 kB

Release files / conoha_dns_cli-0.1.2.tar.gz

Download URL conoha_dns_cli-0.1.2.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5b0126e296eddda0ebe18b94bfeec416b38472b16f4f504ce32c0c88e584c6b6
BLAKE2b-256 checksum
How to use checksums
0a94c6b97c1ca70283405792208b73ec99453ddf1191d1e8de471b22581cd836
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / conoha_dns_cli-0.1.2-py3-none-any.whl

Download URL conoha_dns_cli-0.1.2-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a38e3dea72ee71a71b03eec75a76e05e1458de1588bd1a313537365cdc1d140
BLAKE2b-256 checksum
How to use checksums
0a8bf75795e16746fcdb8567617e0ca8f9caa7ce52d0c9d51edaf7723e542548
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page