もっと詳しく

このガイドでは、RockyLinuxにDockerコンテナとしてGuacamoleをインストールする方法を学習します。 Guacamoleは、クライアントレスHTML5 Webベースのリモートデスクトップゲートウェイであり、Webブラウザを介してサーバーとデスクトップへのリモートアクセスを提供します。 VNC、RDP、SSHなどの標準プロトコルをサポートしています。

RockyLinuxにDockerコンテナとしてGuacamoleをインストールする

ワカモレは2つの部分で構成されています。

  • guacamole-server、これは、guacdプロキシと、Guacamoleがリモートデスクトップに接続するために必要なすべてのネイティブサーバー側コンポーネントを提供します。
  • guacamole-client これは、通常はサーブレットコンテナによって提供されるクライアントを提供します Tomcat

Guacamole Webベースのリモートデスクトップクライアントをセットアップするには、これらのコンポーネントの両方をインストールする必要があります。

GuacamoleをDockerコンテナーとして実行したくない場合は、このガイドを確認してください。

RockyLinuxにDockerコンテナとしてGuacamoleをインストールする

RockyLinuxでGuacamoleをDockerコンテナとして実行できるようにするため。

  • 以下のコマンドを実行して、RockyLinuxにDockerCEをインストールします。
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io
  • Dockerサービスを開始して有効にします。
systemctl enable --now docker
  • RockyLinuxにDockerComposeをインストールします。

以下のコマンドを実行して、DockercomposeをRockyLinuxにインストールします。

curl -sL "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
  • ワカモレコンテナ画像をダウンロード

以下のコマンドを実行して、Guacamoleサーバーおよびクライアントイメージをダウンロードします。

docker pull guacamole/guacd
docker pull guacamole/guacamole

利用可能な画像の一覧表示。

docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
guacamole/guacd       latest    70fd332fa74e   17 hours ago   271MB
guacamole/guacamole   latest    599b74ba38c9   18 hours ago   439MB

ワカモレ認証を構成する

Guacamole Dockerコンテナが機能するには、MySQLデータベース、PostgreSQLデータベース、LDAPディレクトリ、RADIUSサーバーなどの認証メカニズムが少なくとも1つ必要です。

このガイドでは、MySQLデータベース認証を使用します。

その結果、MySQLデータベースコンテナをデプロイしましょう。 最新のMySQL8Dockerイメージを使用しています。

  • 以下のコマンドは、最新のMySQL 8 Dockerイメージをダウンロードし、MySQL8Dockerコンテナを作成します。 guacamole_db、ワカモレデータベース(guacdb)、MySQLrootユーザーパスワード;
docker run --name guacamole_db -e [email protected] -e MYSQL_DATABASE=guacdb -d mysql/mysql-server
  • 次に、GuacamoleMySQLデータベース初期化スキーマを生成する必要があります。

スキーマを格納するディレクトリを作成しましょう。

mkdir -p /opt/guacamole/mysql
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > /opt/guacamole/mysql/01-initdb.sql
  • GuacamoleMySQLデータベース初期化スクリプトをMySQLDockerコンテナにコピーします。
docker cp /opt/guacamole/mysql/01-initdb.sql guacamole_db:/docker-entrypoint-initdb.d

スクリプトはにコピーされます /docker-entrypoint-initdb.d MySQLDockerコンテナのディレクトリ。

  • MySQLデータベースコンテナに接続します。
docker exec -it guacamole_db bash

これにより、MySQLコンテナのルートディレクトリに移動します。

bash-4.4#

初期化スクリプトが使用可能であることを確認してください。

ls /docker-entrypoint-initdb.d/
  • GuacamoleMySQLデータベースを初期化します。
cd /docker-entrypoint-initdb.d/
mysql -u root -p

で指定されたパスワードを使用してください MYSQL_ROOT_PASSWORD その上。 ここで、MySQLプロンプトにドロップする必要があります。

bash-4.4# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 24
Server version: 8.0.29 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql>

Guacamoleデータベースを初期化します。

use guacdb;
source 01-initdb.sql;

初期化が完了したら、使用可能なテーブルを確認します。

show tables;

サンプル出力;

+---------------------------------------+
| Tables_in_guacdb                      |
+---------------------------------------+
| guacamole_connection                  |
| guacamole_connection_attribute        |
| guacamole_connection_group            |
| guacamole_connection_group_attribute  |
| guacamole_connection_group_permission |
| guacamole_connection_history          |
| guacamole_connection_parameter        |
| guacamole_connection_permission       |
| guacamole_entity                      |
| guacamole_sharing_profile             |
| guacamole_sharing_profile_attribute   |
| guacamole_sharing_profile_parameter   |
| guacamole_sharing_profile_permission  |
| guacamole_system_permission           |
| guacamole_user                        |
| guacamole_user_attribute              |
| guacamole_user_group                  |
| guacamole_user_group_attribute        |
| guacamole_user_group_member           |
| guacamole_user_group_permission       |
| guacamole_user_history                |
| guacamole_user_password_history       |
| guacamole_user_permission             |
+---------------------------------------+
23 rows in set (0.01 sec)

次に、Guacamoleデータベースユーザーを作成し、データベースに必要な権限を付与します。

create user [email protected]'%' identified by 'ChangeME';
grant SELECT,UPDATE,INSERT,DELETE on guacdb.* to [email protected]'%';
flush privileges;
quit

MySQLコンテナを終了します。

exit

実行中のコンテナを確認する場合。

docker ps

サンプル出力;

CONTAINER ID   IMAGE                COMMAND                  CREATED         STATUS                   PORTS                       NAMES
8fe00bea2c59   mysql/mysql-server   "/entrypoint.sh mysq…"   3 minutes ago   Up 3 minutes (healthy)   3306/tcp, 33060-33061/tcp   guacamole_db

ご覧のとおり、ヘルスステータスは正常です(開始および実行中)。

ステータスを再度確認して、特定のフィールドを印刷できます。

docker ps --format '{{.ID}}t{{.Image}}t{{.Status}}t{{.Names}}'

コンテナのログを確認することもできます。

docker logs guacamole_db

Guacamoleサーバーコンテナを起動します

GuacamoleServerコンテナをサービスとしてバックグラウンドで起動できます。

docker run --name guacamole-server -d guacamole/guacd
docker logs --tail 10 guacamole-server
guacd[7]: INFO:	Guacamole proxy daemon (guacd) version 1.4.0 started
guacd[7]: INFO:	Listening on host 0.0.0.0, port 4822

繰り返しますが、しばらくしてから実行中のコンテナを一覧表示します。

docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED             STATUS                       PORTS                       NAMES
669ad905db27   guacamole/guacd      "/bin/sh -c '/usr/lo…"   23 minutes ago      Up 23 minutes (healthy)      4822/tcp                    guacamole-server
b78a10e6b107   mysql/mysql-server   "/entrypoint.sh mysq…"   About an hour ago   Up About an hour (healthy)   3306/tcp, 33060-33061/tcp   guacamole_db

ご覧のとおり、Guacamoleサーバーが稼働しています。

Guacamoleクライアントコンテナを起動します

これで、Guacamoleクライアントを起動できます。

これを機能させるには、GuacamoleサーバーとGuacamoleデータベースにリンクする必要があります。

また、Guacamoleクライアントポートを公開する必要があります。 8080 ワカモレへの外部アクセスを許可するためにホスト上で。

すべてのコンテナはデフォルトのDockerネットワークを使用します。

したがって、Guacamoleクライアントを起動します。

docker run --name guacamole-client --link guacamole-server:guacd 
--link guacamole_db:mysql -e MYSQL_DATABASE=guacdb 
-e MYSQL_USER=guacadmin -e MYSQL_PASSWORD=ChangeME 
-d -p 80:8080 guacamole/guacamole

Dockerコンテナプロセスを確認します。

docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED             STATUS                       PORTS                                   NAMES
07233565559c   guacamole/guacamole   "/opt/guacamole/bin/…"   23 seconds ago      Up 20 seconds                0.0.0.0:80->8080/tcp, :::80->8080/tcp   guacamole-client
669ad905db27   guacamole/guacd       "/bin/sh -c '/usr/lo…"   29 minutes ago      Up 29 minutes (healthy)      4822/tcp                                guacamole-server
b78a10e6b107   mysql/mysql-server    "/entrypoint.sh mysq…"   About an hour ago   Up About an hour (healthy)   3306/tcp, 33060-33061/tcp               guacamole_db

ご覧のとおり、Guacamoleクライアントはポート8080でリッスンしており、ホストではポート80として公開されています。

ss -altnp | grep :80
LISTEN 0      4096         0.0.0.0:80        0.0.0.0:*    users:(("docker-proxy",pid=6129,fd=4))   
LISTEN 0      4096            [::]:80           [::]:*    users:(("docker-proxy",pid=6135,fd=4))

ブラウザからGuacamoleにアクセスする

Guacamoleがセットアップされると、アドレスを使用してWebブラウザーからGuacamoleにアクセスできます。 http://server-IP/guacamole

デフォルトのクレデンシャル。

  • ユーザー: guacadmin
  • パスワード: guacadmin

ログインに成功すると、GuacamoleWebダッシュボードが表示されます。

RockyLinuxにDockerコンテナとしてGuacamoleをインストールする

そして、あなたは行き​​ます。 ご覧のとおり、接続はまだ追加されていません。 これで、Guacamoleに接続を追加できます。

設定ページでGuacamoleユーザーのパスワードをリセットすることもできます。

RockyLinuxにDockerコンテナとしてGuacamoleをインストールする

これで、RockyLinuxにDockerContainerとしてGuacamoleをインストールするためのガイドは終わりです。

続きを読む ワカモレユーザーガイド

The post RockyLinuxにDockerコンテナとしてGuacamoleをインストールする appeared first on Gamingsym Japan.