Docker Composeインストール
Docker Composeを使用したKeeper Connection Managerのデプロイ
概要
このセクションでは、カスタマイズされたdocker-composeオーケストレーションファイルを構築し、Dockerを使用してKeeper Connection Managerをインストールする方法について説明します。
手順1:プラットフォーム固有の設定
Windows
Dockerの正式な手順に従って、Docker Desktopをインストールします。
Amazon Linux 2
インスタンスにDockerをインストールします。丁寧に順を追った手引きは、こちらで公開されています。
CentOS 7、RHEL
Dockerのインストールに加えて、haveged
パッケージをインストールして、安全な乱数を作成するのに十分なエントロピー生成が可能な環境を確保してください。
sudo yum install epel-release
sudo yum install haveged
sudo systemctl start haveged
sudo systemctl enable haveged
Ubuntu
haveged
パッケージをインストールして、安全な乱数を作成するのに十分なエントロピー生成が可能な環境を確保してください。
sudo apt-get install haveged
手順2:Docker Composeファイルの作成
インスタンスでDockerを実行するのに伴い、マシンの作業ディレクトリに転送する必要のあるdocker-compose.ymlファイルを生成する必要があります。
SSL証明書はLet's Encryptを利用し、認証には自動的に初期化されたデータベースを使用して、Keeper Connection Managerをデプロイするためのdocker-compose.yml
ファイルの例を、MySQLとPostgreSQLのオプションと併せて以下に記載します。
version:"3"
services:
guacd:
image: keeper/guacd:2
restart: unless-stopped
environment:
ACCEPT_EULA:"Y"
volumes:
- "common-storage:/var/lib/guacamole:rw"
db:
image: keeper/guacamole-db-mysql:2
restart: unless-stopped
environment:
ACCEPT_EULA:"Y"
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
GUACAMOLE_DATABASE: guacamole_db
GUACAMOLE_USERNAME: guacamole_user
GUACAMOLE_PASSWORD: some_strong_password
GUACAMOLE_ADMIN_PASSWORD: some_strong_password
guacamole:
image: keeper/guacamole:2
restart: unless-stopped
environment:
ACCEPT_EULA:"Y"
GUACD_HOSTNAME: guacd
MYSQL_HOSTNAME: db
MYSQL_DATABASE: guacamole_db
MYSQL_USERNAME: guacamole_user
MYSQL_PASSWORD: some_password
volumes:
- "common-storage:/var/lib/guacamole:rw"
ssl:
image: keeper/guacamole-ssl-nginx:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
environment:
ACCEPT_EULA:"Y"
GUACAMOLE_HOSTNAME: guacamole
SSL_HOSTNAME: keeper.mycompany.com
LETSENCRYPT_ACCEPT_TOS:"Y"
LETSENCRYPT_EMAIL: you@company.com
volumes:
common-storage:
このファイルを目的のKCMインスタンスにコピーします。 直ちに変更が必要なフィールドがいくつかあることにご注意ください。
GUACAMOLE_PASSWORDとMYSQL_PASSWORDは一致する必要があり、ランダムに生成された強力なパスワードでなければなりません。パスワードの生成にはKeeperボルトのご使用をお勧めします。バックスラッシュ、ドルマーク、スラッシュなどの記号は使用しないでください。
GUACAMOLE_ADMIN_PASSWORDは、デフォルトの「guacadmin」ユーザーのログインパスワードです。これは、ランダムに生成された強力なパスワードでなければなりません。パスワードの生成にはKeeperボルトのご使用をお勧めします。バックスラッシュ、ドルマーク、スラッシュなどの記号は使用しないでください。
SSL_HOSTNAMEは、このサーバーを指すように設定されたFQDNであることが必要です。 DNSの設定が外部からこのIPにルーティング可能であり、Let's Encryptが証明書を登録できるようにポート80/443が解放されていることを確認します。
version:"3"
services:
guacd:
image: keeper/guacd:2
restart: unless-stopped
environment:
ACCEPT_EULA:"Y"
volumes:
- "common-storage:/var/lib/guacamole:rw"
db:
image: keeper/guacamole-db-postgres:2
restart: unless-stopped
environment:
ACCEPT_EULA:"Y"
POSTGRES_PASSWORD: some_strong_password
GUACAMOLE_DATABASE: guacamole_db
GUACAMOLE_USERNAME: guacamole_user
GUACAMOLE_PASSWORD: some_strong_password
GUACAMOLE_ADMIN_PASSWORD: some_strong_password
guacamole:
image: keeper/guacamole:2
restart: unless-stopped
environment:
ACCEPT_EULA:"Y"
GUACD_HOSTNAME: "guacd"
POSTGRES_HOSTNAME: "db"
POSTGRES_DATABASE: "guacamole_db"
POSTGRES_USERNAME: "guacamole_user"
POSTGRES_PASSWORD: "xxxxxxx"
volumes:
- "common-storage:/var/lib/guacamole:rw"
ssl:
image: keeper/guacamole-ssl-nginx:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
environment:
ACCEPT_EULA:"Y"
GUACAMOLE_HOSTNAME: guacamole
SSL_HOSTNAME: keeper.mycompany.com
LETSENCRYPT_ACCEPT_TOS:"Y"
LETSENCRYPT_EMAIL: you@company.com
volumes:
common-storage:
このファイルを目的のKCMインスタンスにコピーします。 直ちに変更が必要なフィールドがいくつかあることにご注意ください。
GUACAMOLE_PASSWORDとPOSTGRES_PASSWORDは一致する必要があり、ランダムに生成された強力なパスワードでなければなりません。パスワードの生成にはKeeperボルトのご使用をお勧めします。バックスラッシュ、ドルマーク、スラッシュなどの記号は使用しないでください。
GUACAMOLE_ADMIN_PASSWORDは、デフォルトの「guacadmin」ユーザーのログインパスワードです。これは、ランダムに生成された強力なパスワードでなければなりません。パスワードの生成にはKeeperボルトのご使用をお勧めします。バックスラッシュ、ドルマーク、スラッシュなどの記号は使用しないでください。
SSL_HOSTNAMEは、このサーバーを指すように設定されたFQDNであることが必要です。 DNSの設定が外部からこのIPにルーティング可能であり、Let's Encryptが証明書を登録できるようにポート80/443が解放されていることを確認します。
カスタムSSL証明書の使用
Let's Encryptの代わりにカスタムSSL証明書を使用したい場合は、Docker Composeファイルの「ssl」セクションを以下のような内容のセクションに置き換えます。
ssl:
image: keeper/guacamole-ssl-nginx:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- C:\Users\Path\To\Cert:/var/lib/guacamole
environment:
SELF_SIGNED:"N"
ACCEPT_EULA:"Y"
GUACAMOLE_HOSTNAME: "guacamole"
SSL_HOSTNAME: "keeper.mycompany.com"
CERTIFICATE_FILE: "/var/lib/guacamole/your_certificate.pem"
PRIVATE_KEY_FILE: "/var/lib/guacamole/your_private_key.key"
この場合、CERTIFICATE_FILE
は、中間証明書チェーンを含むPEMエンコード形式の証明書です。 PRIVATE_KEY_FILE
は秘密鍵ファイルです。
また、上記のスニペットには、ローカルファイルシステムを目的のコンテナに割り当てるボリュームマウントがあることにご注意ください。文字列のC:\Users\Path\To\Cert
の部分のみを変更する必要があります。 Linux環境では、/path/to/cert
になります。
手順3:Dockerコンテナの起動
Windowsの場合、コマンドプロンプトを開きます。Linuxの場合、ターミナルシェルを開きます。手順2で保存したdocker-compose.yml
ファイルの場所に移動します。
環境を起動するには、以下のコマンドを入力するだけです。
注意:バージョンによっては、「docker-compose」とハイフンを付ける必要があります。
以上で終わりです。 すべてが成功すると、指定したFQDNでKeeper Connection Managerのログイン画面を開くことができます。
重要な注意事項
サーバーにルーティングされる適切なドメイン名を設定していない場合は、とりあえずユーザーインターフェースにアクセスしてテストを開始するために、ローカルシステムのhostファイルを書き換えてください。
独自のSSL証明書を使用している場合は、ワイルドカード証明書のご使用はお勧めしません。SSL秘密鍵はデバイスに保存することになるため、Keeper Connection Managerのエンドポイント用に明示的に作成された証明書の利用が最適です。
Windowsを使用している場合は、Windows Defenderファイアウォールを変更して、Dockerサービスにポート443を開放する必要があります。
docker compose down
を実行すると、ユーザー、接続、履歴を含むコンテナ内のすべてのデータが削除されます。コンテナを停止するには、docker compose stop
を使用します。
イメージ
各イメージの説明は以下のとおりです。
Keeper Connection Managerインスタンスが実行中になったので、guacadminとしてログインし、接続の設定を開始できます。 次の手順については、「Keeper Connection Managerを使用する」のドキュメントに従ってください。
このインストールガイドの次のいくつかのセクションでは、環境をカスタマイズまたは変更する予定がある場合の、具体的なDockerイメージごとの詳細情報を記載します。