GuacamoleをLinuxにインストールする(Docker Compose) - kin-kin/memo GitHub Wiki

IT Manual

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接続を許可する必要がある。