Skip to main content

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_idconoha-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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conoha_dns_cli-0.1.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

conoha_dns_cli-0.1.1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file conoha_dns_cli-0.1.1.tar.gz.

File metadata

  • Download URL: conoha_dns_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for conoha_dns_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 af81afecf1c8fc3ca1040900d3452aa1d535b2b21514488911238dc6238cc2f1
MD5 8dc417dc5e17bcab3c48bd7041a51610
BLAKE2b-256 dcfd24539fd0e5f3c2dd1435888c9dae1a8422a587a51c977971f721a476bcf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for conoha_dns_cli-0.1.1.tar.gz:

Publisher: workflow.yml on haturatu/conoha-dns

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conoha_dns_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: conoha_dns_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for conoha_dns_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d3f5f77f40bda3cdec2835aa3f7e199394ea50a9c19b9fed8706c50897b3ddd
MD5 d01bdfbdf32f9d2a639d991ca579de60
BLAKE2b-256 4116598c59bfe6b45e60b943a145945da45dc4b1068404b07a78d7020b2aca6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for conoha_dns_cli-0.1.1-py3-none-any.whl:

Publisher: workflow.yml on haturatu/conoha-dns

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page