Apache Guacamole 는 웹 기반의 원격 데스크톱 게이트웨이로 클라이언트에 별도의 소프트웨어를 설치하지 않아도 원격 작업을 가능하게 해주는 오픈소스 솔루션 입니다.
웹 브라우저를 통해서 VNC, RDP, SSH 와 같이 흔히 사용되는 프로토콜을 통해 시스템에 접근하여 작업 및 관리를 할 수 있습니다.
Apache Guacamole 는 Tomcat 을 포함한 서블릿 컨테이너 기반으로 작동하기 때문에 Tomcat 과 Guacamole 서버와 클라이언트를 각각 설치한 다음 설정해야 하지만, 여기서는 Docker 를 이용해서 한번에 설치하는 과정을 설명하겠습니다.
설치환경
OS : Rocky Linux 8.10
Guacamole 이미지 다운로드
Guacamole 운영을 위한 이미지를 다운 받습니다.
운영을 위해서 필요한 이미지는 guacamole/guacamole , guacamole/guacd , mysql 이 있습니다.
– guacamole는 1.6.0 버전, mysql 은 8.0 버전을 이용했습니다.
# docker pull guacamole/guacamole:1.6.0
# docker pull guacamole/guacd:1.6.0
# docker pull mysql:8.0
MySQL 설정하기
Guacamole 운영을 위한 초기 DB 설정을 진행합니다.
다음 과정을 통해서 초기 DB 설정을 위한 파일을 guacamole 이미지에 추출합니다.
# docker run –rm guacamole/guacamole:1.6.0 /opt/guacamole/initdb.sh –mysql > initdb.sql
initdb.sql 파일이 생성된 것이 확인되면, mysql 컨테이너를 생성합니다.
# docker run –dit –name mysql –restart unless-stopped -e MYSQL_ROOT_PASSWORD=’ROOT패스워드’ mysql:8.0
이전에 생성한 initdb.sql 파일을 mysql 컨테이너로 옮긴 다음, mysql 컨테이너에 들어가서 guacamole 운영을 위한 계정과 데이터베이스를 생성합니다.
# docker cp initdb.sql mysql:/opt
# docker exec -it mysql /bin/bash
# mysql -u root -p
> create database guacamole;
> create user ‘guacamole’ identified by ‘USER패스워드’;
> grant all on guacamole.* to ‘guacamole’;
> flush privileges;
계정과 데이터베이스의 생성이 끝났다면 initdb.sql 의 내용을 guacamole 데이터베이스로 가져옵니다.
# cat /opt/initdb.sql | mysql -u root -p guacamole
Guacamole 와 Guacd 실행
MySQL 컨테이너 작업이 끝났다면 Guacamole 와 Guacd 컨테이너를 생성합니다.
먼저, 다음 명령어로 guacd 컨테이너를 생성합니다.
# docker run -dit –name guacd –restart unless-stopped guacamole/guacd:1.6.0
정상적으로 guacd 컨테이너가 생성됬다면 이어서 guacamole 컨테이너를 생성합니다.
– guacamole 컨테이너 생성시에는 DB 접근을 위한 계정,데이터베이스 설정과 웹 접근을 위한 포트 설정이 필요합니다.
# docker run -dit –name guacamole –restart unless-stopped –link mysql:mysql -e MYSQL_DATABASE=guacamole -e MYSQL_USER=guacamole -e MYSQL_PASSWORD=USER패스워드 -p 8080:8080 guacamole/guacamole:1.6.0
Guacamole 테스트
guacamole, guacd, mysql 이 3가지 컨테이너가 정상적으로 실행이 되었다면 웹을 통해서 접근을 확인합니다.
웹 접근은 guacamole 컨테이너를 생성할 때 설정한 포트를 통해서 접근 가능합니다.
– IP주소:8080/guacamole/#

처음 guacamole 웹에 접근하면 guacadmin/guacdmin 으로 접근 할 수 있습니다.
– 기본 계정과 패스워드로 접근 한 다음 새로운 계정을 생성한 다음 제거하는 것을 추천합니다.

[참고] https://guacamole.apache.org/doc/gug/guacamole-docker.html



