マシンセットアップ
このページでは、最初のマシンのセットアップ手順を説明します:設定の作成、サーバーの登録、プロビジョニング、およびオプションでパブリックアクセス用のインフラストラクチャ設定。
ステップ1:Configの作成
Configは、SSH資格情報、マシン定義、リポジトリマッピングを保存する名前付き設定ファイルです。プロジェクトワークスペースと考えてください。
rdc config init --name my-infra --ssh-key ~/.ssh/id_ed25519
| オプション | 必須 | 説明 |
|---|---|---|
--ssh-key <path> | はい | SSH秘密鍵へのパス。チルダ(~)は自動的に展開されます。 |
--renet-path <path> | いいえ | リモートマシン上のrenetバイナリへのカスタムパス。デフォルトは標準インストール場所です。 |
これによりmy-infraという名前の設定が作成され、~/.config/rediacc/my-infra.jsonに保存されます。デフォルト設定(名前を指定しない場合)は~/.config/rediacc/rediacc.jsonとして保存されます。
複数の設定を持つことができます(例:
production、staging、dev)。任意のコマンドで--configフラグを使用して切り替えることができます。
ステップ2:マシンの追加
リモートサーバーを設定内のマシンとして登録します:
rdc config machine add --name server-1 --ip 203.0.113.50 --user deploy
| オプション | 必須 | デフォルト | 説明 |
|---|---|---|---|
--ip <address> | はい | - | リモートサーバーのIPアドレスまたはホスト名 |
--user <username> | はい | - | リモートサーバーのSSHユーザー名 |
--port <port> | いいえ | 22 | SSHポート |
--datastore <path> | いいえ | /mnt/rediacc | Rediaccが暗号化リポジトリを保存するサーバー上のパス |
マシンを追加すると、rdcは自動的にssh-keyscanを実行してサーバーのホスト鍵を取得します。手動で実行することもできます:
rdc config machine scan-keys -m server-1
登録済みのすべてのマシンを表示するには:
rdc config machine list
ステップ3:マシンのセットアップ
リモートサーバーに必要なすべての依存関係をプロビジョニングします:
rdc config machine setup --name server-1
このコマンドは以下を実行します:
- SFTP経由でrenetバイナリをサーバーにアップロード
- Docker、containerd、cryptsetupをインストール(未インストールの場合)
rediaccシステムユーザー(UID 7111)を作成- データストアディレクトリを作成し、暗号化リポジトリ用に準備
| オプション | 必須 | デフォルト | 説明 |
|---|---|---|---|
--datastore <path> | いいえ | /mnt/rediacc | サーバー上のデータストアディレクトリ |
--datastore-size <size> | いいえ | 95% | データストアに割り当てる利用可能ディスクの割合 |
--debug | いいえ | false | トラブルシューティング用の詳細出力を有効にします |
セットアップはマシンごとに一度だけ実行する必要があります。必要に応じて再実行しても安全です。
ホスト鍵の管理
サーバーのSSHホスト鍵が変更された場合(例:再インストール後)、保存されている鍵を更新します:
rdc config machine scan-keys -m server-1
これにより、そのマシンの設定内のknownHostsフィールドが更新されます。
SSH接続のテスト
マシンを追加した後、到達可能であることを確認します:
rdc term connect -m server-1 -c "hostname"
このコマンドはマシンへのSSH接続を開き、コマンドを実行します。成功すれば、SSH設定が正しいことが確認できます。
より詳細な診断については、以下を実行してください:
rdc doctor
クラウドアダプターのみ:
rdc machine test-connectionコマンドは詳細なSSH診断を提供しますが、クラウドアダプターが必要です。ローカルアダプターでは、rdc termまたはsshを直接使用してください。
インフラストラクチャ設定
パブリックにトラフィックを提供する必要があるマシンの場合、インフラストラクチャ設定を行います:
インフラストラクチャの設定
rdc config infra set -m server-1 \
--public-ipv4 203.0.113.50 \
--base-domain example.com \
--cert-email admin@example.com \
--cf-dns-token your-cloudflare-api-token
| オプション | スコープ | 説明 |
|---|---|---|
--public-ipv4 <ip> | Machine | Public IPv4 address, proxy entrypoints are only created for configured address families |
--public-ipv6 <ip> | Machine | Public IPv6 address, proxy entrypoints are only created for configured address families |
--base-domain <domain> | Machine | アプリケーション用のベースドメイン(例:example.com) |
--cert-email <email> | Config | Let’s Encrypt TLS証明書用のメールアドレス(マシン間で共有) |
--cf-dns-token <token> | Config | ACME DNS-01チャレンジ用のCloudflare DNS APIトークン(マシン間で共有) |
--tcp-ports <ports> | Machine | 転送する追加TCPポートのカンマ区切りリスト(例:25,143,465,587,993) |
--udp-ports <ports> | Machine | 転送する追加UDPポートのカンマ区切りリスト(例:53) |
Machineスコープのオプションはマシンごとに保存されます。Configスコープのオプション(--cert-email、--cf-dns-token)は設定内のすべてのマシンで共有されます。一度設定すればすべてに適用されます。
インフラストラクチャの表示
rdc config infra show -m server-1
サーバーへのプッシュ
Traefikリバースプロキシ設定を生成してサーバーにデプロイします:
rdc config infra push -m server-1
このコマンドは以下を実行します:
- renetバイナリをリモートマシンにデプロイ
- Traefikリバースプロキシ、ルーター、systemdサービスを設定
--cf-dns-tokenが設定されている場合、マシンサブドメイン(server-1.example.comおよび*.server-1.example.com)のCloudflare DNSレコードを作成
DNSステップは自動的かつ冪等です, 不足しているレコードを作成し、IPが変更されたレコードを更新し、既に正しいレコードはスキップします。Cloudflareトークンが設定されていない場合、DNSは警告付きでスキップされます。 Per-repo wildcard DNS records (for auto-routes) are created automatically when you run rdc repo up.
クラウドプロビジョニング
VMを手動で作成する代わりに、クラウドプロバイダーを設定して、OpenTofu を使用して rdc にマシンを自動的にプロビジョニングさせることができます。
前提条件
OpenTofu をインストールしてください: opentofu.org/docs/intro/install
SSH設定に公開鍵が含まれていることを確認してください:
rdc config set --key ssh.privateKeyPath --value ~/.ssh/id_ed25519
クラウドプロバイダーの追加
rdc config provider add --name my-linode \
--provider linode/linode \
--token $LINODE_API_TOKEN \
--region us-east \
--type g6-standard-2
| オプション | 必須 | 説明 |
|---|---|---|
--provider <source> | はい* | 既知のプロバイダーソース(例:linode/linode、hetznercloud/hcloud) |
--source <source> | はい* | カスタムOpenTofuプロバイダーソース(未知のプロバイダー用) |
--token <token> | はい | クラウドプロバイダーのAPIトークン |
--region <region> | いいえ | 新しいマシンのデフォルトリージョン |
--type <type> | いいえ | デフォルトのインスタンスタイプ/サイズ |
--image <image> | いいえ | デフォルトのOSイメージ |
--ssh-user <user> | いいえ | SSHユーザー名(デフォルト: root) |
* --provider または --source のいずれかが必要です。既知のプロバイダー(組み込みデフォルト)には --provider を使用します。カスタムプロバイダーには --source と追加の --resource、--ipv4-output、--ssh-key-attr フラグを使用します。
マシンのプロビジョニング
rdc machine provision --name prod-2 --provider my-linode
この単一コマンドで以下を実行します:
- OpenTofu経由でクラウドプロバイダーにVMを作成
- SSH接続を待機
- マシンを設定に登録
- renetとすべての依存関係をインストール
- Configures Traefik proxy and Cloudflare DNS (auto-detects base domain from sibling machines, or pass
--base-domainexplicitly)
| オプション | 説明 |
|---|---|
--provider <name> | クラウドプロバイダー名(add-provider から) |
--region <region> | プロバイダーのデフォルトリージョンを上書き |
--type <type> | デフォルトのインスタンスタイプを上書き |
--image <image> | デフォルトのOSイメージを上書き |
--base-domain <domain> | Base domain for infrastructure. Auto-detected from sibling machines if not specified |
--no-infra | Skip infrastructure configuration (proxy + DNS) entirely |
--debug | 詳細なプロビジョニング出力を表示 |
マシンのデプロビジョニング
rdc machine deprovision --name prod-2
OpenTofu経由でVMを破棄し、設定から削除します。--force を使用しない限り確認が必要です。machine provision で作成されたマシンのみ動作します。
プロバイダーの一覧表示
rdc config provider list
デフォルトの設定
毎回のコマンドで指定する必要がないように、デフォルト値を設定します:
rdc config set --key machine --value server-1 # デフォルトマシン
rdc config set --key team --value my-team # デフォルトチーム(クラウドアダプター、実験的)
デフォルトマシンを設定した後は、コマンドから-m server-1を省略できます:
rdc repo create --name my-app -m my-server --size 10G
複数の設定
名前付き設定で複数の環境を管理します:
# 別々の設定を作成
rdc config init --name production --ssh-key ~/.ssh/id_prod
rdc config init --name staging --ssh-key ~/.ssh/id_staging
# 特定の設定を使用
rdc repo list -m server-1 --config production
rdc repo list -m staging-1 --config staging
すべての設定を表示:
rdc config list
現在の設定の詳細を表示:
rdc config show