jamdoog.teleport
Ansibleロール: Teleport
このロールは、指定したサーバーにTeleportをデプロイします。
何をするか:
Teleportのデプロイメントがどの部分を必要とするかを変数で設定できます。
- GPGチェックを行ってDEB/RPM経由でTeleportをインストール
- GPGチェックを行ってtarballからTeleportをインストール(apt/rpmシステム以外)
- SSH用のノードとして自動的に登録
- SSHおよびアプリケーションのための「コマンド」/ラベルを自動デプロイ(Kernel、Teleportなどのバージョン管理)
- 招待トークンを自動生成
要件
systemdを利用しているシステム 以下のOSでのみテストされています:
Debian 10/11
RHEL 7/8/9
openSUSE 15.0/1/2/3/Tumbleweed
トークン生成の仕組み:
- JSONフォーマットでtctlコマンドを使用してトークンを生成
- トークンを抽出
- 「INVITE_TOKEN」変数を更新
トークン生成機能の使い方:
以下の変数を記入してください:
GENERATE_TOKEN: true # トークン生成を開始するために必要
GENERATE_TOKEN_COMBO: true # アプリとノードの両方のトークンを生成したい場合。この変数は以下の「GENERATE_TOKEN_<....>_ONLY」変数と併用しないでください。
GENERATE_TOKEN_SSH_ONLY: false # ノードトークンのみを生成したい場合
GENERATE_TOKEN_APP_ONLY: false # アプリトークンのみを生成したい場合
TELEPORT_TOKEN_HOST: "Jump" # tctlが実行されるホスト(SSH経由)
TOKEN_TTL: "2m" # トークンのTTL(有効期間)
ロール変数
グループ変数:
名前 | タイプ | 例 |
---|---|---|
INVITE_TOKEN | 文字列 | 4f622402dawdawdaw |
CA_PIN | 文字列 | sha256:2awdwadwad678767awd768awdd |
TELEPORT_HOST | 文字列 | teleport.domain.tld:443 |
TELEPORT_MAJOR_VERSION | 整数 | 10 |
TELEPORT_MINOR_VERSION | 浮動小数点 | 3.5 |
GENERATE_TOKEN | 真偽値 | true |
GENERATE_TOKEN_COMBO | 真偽値 | true |
GENERATE_TOKEN_SSH_ONLY | 真偽値 | false |
GENERATE_TOKEN_APP_ONLY | 真偽値 | false |
TELEPORT_TOKEN_HOST | 文字列 | "Jump" |
TOKEN_TTL | 文字列 | "10m" |
ホスト変数:
名前 | タイプ | 例 |
---|---|---|
SSH_SERVICE | 真偽値 | true |
APP_SERVICE | 真偽値 | true |
CREATE_SSH_COMMANDS | 真偽値 | true |
CREATE_APP_COMMANDS | 真偽値 | true |
CREATE_COMMAND | 真偽値 | true |
CREATE_OS_COMMAND | 真偽値 | true |
CREATE_KERNEL_COMMAND | 真偽値 | true |
CREATE_TELEPORT_COMMAND | 真偽値 | true |
CREATE_HOSTNAME_COMMAND | 真偽値 | true |
CREATE_VIRTUALIZATION_COMMAND | 真偽値 | true |
TELEPORT_APPLICATION_NAME | 文字列 | proxmox |
TELEPORT_APPLICATION_IGNORE_TLS | 文字列 | true |
TELEPORT_APPLICATION_URI | 文字列 | https://192.168.200.1:8006 |
依存関係
このロールには依存関係はありません
例のプレイブック
プレイブック(トークン非生成):
- hosts: teleport
become: true
roles:
- jamdoog.teleport
vars:
- INVITE_TOKEN: 4f622402dawdawdaw
- CA_PIN: sha256:2awdwadwad678767awd768awdd
- TELEPORT_HOST: domain.tld:443
- TELEPORT_MINOR_VERSION: 3.2
- TELEPORT_MAJOR_VERSION: 10
- SSH_SERVICE: true
- APP_SERVICE: true
- CREATE_COMMANDS: true
- CREATE_HOSTNAME_COMMAND: true
- CREATE_OS_COMMAND: true
- CREATE_KERNEL_COMMAND: true
- CREATE_TELEPORT_COMMAND: true
- CREATE_VIRTUALIZATION_COMMAND: true
- TELEPORT_APPLICATION_NAME: "proxmox"
- TELEPORT_APPLICATION_IGNORE_TLS: true
- TELEPORT_APPLICATION_URI: "https://192.168.200.1:8006"
プレイブック(トークン生成):
- hosts: teleport
become: true
roles:
- jamdoog.teleport
vars:
- GENERATE_TOKEN: true
- GENERATE_TOKEN_COMBO: true
- GENERATE_TOKEN_SSH_ONLY: false
- GENERATE_TOKEN_APP_ONLY: false
- TELEPORT_TOKEN_HOST: "Jump"
- TOKEN_TTL: "2m"
- CA_PIN: sha256:2awdwadwad678767awd768awdd
- TELEPORT_HOST: domain.tld:443
- TELEPORT_MINOR_VERSION: 3.2
- TELEPORT_MAJOR_VERSION: 10
- SSH_SERVICE: true
- APP_SERVICE: true
- CREATE_COMMANDS: true
- CREATE_HOSTNAME_COMMAND: true
- CREATE_OS_COMMAND: true
- CREATE_KERNEL_COMMAND: true
- CREATE_TELEPORT_COMMAND: true
- CREATE_VIRTUALIZATION_COMMAND: true
- TELEPORT_APPLICATION_NAME: "proxmox"
- TELEPORT_APPLICATION_IGNORE_TLS: true
- TELEPORT_APPLICATION_URI: "https://192.168.200.1:8006"
ライセンス
BSD
著者情報
このロールはJames Ledgerによって作成されました。私はhttps://jamesledger.netで情報を発信しています。