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.0.tar.gz (11.5 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.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

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

Hashes for conoha_dns_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d8b26a8175a1fb65f417307c73ff508b9f72d00f24bef4b2f6aae8645ccd433e
MD5 554407e159f73b64fe1036b476cc09be
BLAKE2b-256 e5a9c13eff7aa814c2cee674302f4add3a554257d54ea2f7d9854dff4443ab5e

See more details on using hashes here.

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

Hashes for conoha_dns_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6aaa2d09f8ac7add5f6aa8c3c5740729dd1add5189a39afa47f4a1c0eb47f761
MD5 cba896fa84541b682e19b060128e634a
BLAKE2b-256 7f44f559115f3982774aee7b521a2e0758ff5c23d3b4806295bcba32413c85b6

See more details on using hashes here.

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