GuacamoleをLinuxにインストールする(Docker Compose) - kin-kin/memo GitHub Wiki
GuacamoleをLinuxにインストールする(Docker Compose)
Amazon EC2のWindowsインスタンスにブラウザ経由でRDP接続するために、LinuxインスタンスにDocker ComposeでGuacamoleをインストールする方法。 Linuxインスタンスはパブリックサブネットに配置する(Elastic Load Balancer経由でアクセスする場合はプライベートサブネットに配置可能)。Windowsインスタンスはプライベートサブネットに配置可能。
1. ユーザーデータに以下を指定、EC2を起動。 (OSはAmazon Linux、Linux2ではない)
#!/bin/bash
#
# @(#) setup_guacamole_docker_ud.sh v1.0.0.0 2019/09/02
#
# install and run Docker
yum -y update
yum -y install docker
chkconfig docker on
service docker start
# add Docker permission to ec2-user
usermod -a -G docker ec2-user
# install Docker Compose
curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# make Docker Compose files
echo "version: '3'
services:
guacd:
image: guacamole/guacd:latest
expose:
- '4822'
restart: always
guacamole:
image: guacamole/guacamole:latest
ports:
- '8080:8080'
environment:
MYSQL_HOSTNAME: 'mysql'
GUACD_HOSTNAME: 'guacd'
MYSQL_DATABASE: 'guachamole'
MYSQL_USER: 'guachamole'
MYSQL_PASSWORD: 'guachamole'
restart: always
mysql:
image: mysql:5.7
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_DATABASE: 'guachamole'
MYSQL_USER: 'guachamole'
MYSQL_PASSWORD: 'guachamole'
volumes:
- './initdb.sql:/docker-entrypoint-initdb.d/initdb.sql'
restart: always" > /home/ec2-user/docker-compose.yml
chown ec2-user:ec2-user /home/ec2-user/docker-compose.yml
# run Docker Compose
echo "#"'!'"/bin/bash
cd /home/ec2-user
/usr/bin/newgrp - docker <<EOF
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
/usr/local/bin/docker-compose up -d
EOF" > /home/ec2-user/tmp.sh
chown ec2-user:ec2-user /home/ec2-user/tmp.sh
chmod +x /home/ec2-user/tmp.sh
su ec2-user -c '/home/ec2-user/tmp.sh; rm -rf /home/ec2-user/tmp.sh &'
※EC2起動後にSSHログインしてセットアップする場合は以下。
#!/bin/bash
#
# @(#) setup_guacamole_docker.sh v1.0.0.0 2019/09/02
#
# install and run Docker
sudo yum -y update
sudo yum -y install docker
sudo chkconfig docker on
sudo service docker start
# add Docker permission to ec2-user
sudo usermod -a -G docker ec2-user
# install Docker Compose
sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# make Docker Compose files
echo "version: '3'
services:
guacd:
image: guacamole/guacd:latest
expose:
- '4822'
restart: always
guacamole:
image: guacamole/guacamole:latest
ports:
- '8080:8080'
environment:
MYSQL_HOSTNAME: 'mysql'
GUACD_HOSTNAME: 'guacd'
MYSQL_DATABASE: 'guachamole'
MYSQL_USER: 'guachamole'
MYSQL_PASSWORD: 'guachamole'
restart: always
mysql:
image: mysql:5.7
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_DATABASE: 'guachamole'
MYSQL_USER: 'guachamole'
MYSQL_PASSWORD: 'guachamole'
volumes:
- './initdb.sql:/docker-entrypoint-initdb.d/initdb.sql'
restart: always" > docker-compose.yml
# run Docker Compose
/usr/bin/newgrp - docker <<EOF
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
docker-compose up -d
EOF
2. http://ホスト名:8080/guacamole にアクセス。 (初期ID/パスワードはguacadmin/guacadmin) 3. 右上のメニューから [Settings] を選択。 4. [Connections] - [New Connection] を押下。 5. 以下を入力、[Save] を押下。
EDIT CONNECTION
Name : 接続設定の名前
Protocol : RDP
PARAMETERS
Network
Hostname : EC2のIPv4アドレス
Port : 3389
Authentication
Username : Administrator
Password : パスワード
Security mode : Any
Ignore server certificate : チェックあり
6. 右上のメニューから [Home] を選択。 7. [ALL CONNECTIONS] から作成した接続設定を選択。
※EC2のセキュリティグループでインバウンドのRDP接続を許可する必要がある。