Skip to content

Latest commit

 

History

History
87 lines (61 loc) · 5.36 KB

File metadata and controls

87 lines (61 loc) · 5.36 KB

Anata No Minato(あなたのみなと)

English | 简体中文 | 日本語

CI Unittest codecov CodeRabbit Pull Request Reviews PyPI - Version Python Version from PEP 621 TOML CodeQL OpenSSF Scorecard

このプロジェクトは、Ananta とその完全なランタイム環境を内包した状態で、最小限のコンテナイメージを作成したものです。セキュリティを強化しつつ、不便さを感じさせないよう自動化スクリプトを導入し、操作性を向上させました。
利用時には ${HOME}/.ssh/ ディレクトリをコンテナ内にマウントすることを推奨します。コンテナは ~/.ssh/config に基づいて hosts.toml を自動生成します。

接続が制限された環境での作業を想定し、エアギャップ環境におけるツールのインストールおよび運用を容易にするために、本プロジェクトを立ち上げました。

使い始め方

以下の手順に従って、ananta のヘルパースクリプトをインストールしてください。

curl -sSLROJ --fail -- \
    "https://github.com/IceCodeNew/anata-no-minato/releases/latest/download/ananta"

# スクリプトを実行する前に、内容を確認することを推奨します。
cat ./ananta

sudo install -pvD ./ananta /usr/local/bin/
rm ./ananta

このヘルパースクリプトは、~/.ssh/config をもとに hosts.toml ファイルを自動生成します。
これにより、ananta ツールを実行する際に、あらかじめ hosts.toml を用意する必要がなくなります。
実行例:

ananta -CS fastfetch

なお、hosts.toml ファイルを指定したい場合は、公式 ananta ツールと同様のパラメータ順でコマンドを実行してください。
実行例:

ananta -t arch hosts.toml sudo pacman -Syu --noconfirm

Ananta 用の SSH config 活用術

タグの指定方法

SSH config 内で #tags 行を追加し、各ホストにタグを付与します。複数のタグはカンマ(,)またはコロン(:)で区切って記述できます。例:

Host mynas
    Hostname 1.1.1.1
    User root
    #tags tailscale,debian:nas,home

特定のホストを一時的に除外する方法

SSH コマンドを並行実行する際に特定のホストを一時的に除外したい場合は、対象ホストのタグリストに !ananta タグを追加してください。

Host do_not_ananta_in_this_host
    #tags home,debian,!ananta

タグ行の一時無効化

#tags 行の先頭にもう一つの # を付けると、その行のタグが全て無効化されます。
これにより、Ananta 実行時に該当ホストが通常通り接続対象となります。

Host will_ananta_in_this_host
    ##tags home,debian,!ananta

なぜ「あなたのみなと」と名付けたのか

私のパソコにはすでに「docker-XXX」という名前の Git リポジトリが多数存在しており、本プロジェクトはできるだけ少ないキー入力で移動できるように「docker-ananta」という名前を避けています。
「Ananta」は、中国語や日本語話者にとってあまり馴染みのない発音ですが、「n」を一文字省略すると、日本語の「Anata(あなた)」に似た読みになることに気付きました。これにより、4 文字目まで入力すれば本プロジェクトに移動できるようになります。
「Minato(港)」という言葉は、コンテナ(Docker)が港に停泊する船のように見えることから着想を得たものです。これら二つの言葉を組み合わせた結果、日本で広く知られる某有名演歌のタイトルになりました。ぜひご堪能ください:

あなたのみなと~いい夫婦~ 松前ひろ子(2001)