# Apache Guacamole Install with Podman
> Web UI를 통해 RDP, VNC, SSH 등 원격 접속을 할 수 있고 사용자별 권한 관리 등이 가능한 유틸<br>
Podman을 통해 contaienr로 설치하는 과정<br>
수정된 이미지를 사용하고자 할 경우 hypermole.tar를 다운로드 받아 load 하여 사용<br>
logo와 이름을 커스텀하여 사용하고자 할 경우 Dockerfile과 guacamole.war를 받아서 사용

![hypermole](./img/hypermole.png)

## Guacamole 컨테이너들이 사용할 네트워크 생성 (옵션)
```
podman network create guaca
```
- 기존에 생성한 네트워크가 있을 경우 사용해도 무방, 컨테이너간 통신시 컨테이너 명으로 하기 위함

## postgres 설치
```
podman run -v /root/podmandir/postgres:/var/lib/postgresql/data --network guaca --name guaca-db -e POSTGRES_PASSWORD=ios2011a -e PGDATA=/var/lib/postgresql/data/pgdata -e POSTGRES_HOST_AUTH_METHOD=md5 -d postgres:14
```
- guacamole가 사용할 DB로 mysql 혹은 postgres 생성
- postgres:14를 사용할 경우 <span style='color:red'>POSTGRES_HOST_AUTH_METHOD=md5</span> 옵션 설정

```
podman exec -it guaca-db bash
vi /var/lib/postgresql/data/pgdata/postgresql.conf
```
- 패스워드 암호화 방식 변경 필요

```
password_encryption = scram-sha-256
```
- 해당 부분의 주석을 해제하고 <span style='color:red'>scram-sha-256 -> md5</span> 로 변경
- <span style='color:red'>저장 후 postgres 컨테이너 재기동</span>

```
podman run --rm guacamole/guacamole:1.4.0 /opt/guacamole/bin/initdb.sh --postgres > initdb.sql
```
- guacamole에서 사용할 db 설정을 위한 sql 파일 생성

```
podman exec -it guaca-db bash

```
- postgres 컨테이너 접속

```
psql -U postgres
alter role postgres password 'ios2011a';
create database guacamole_db;
create user guacamole_user password 'ios2011a' superuser createdb createrole;
psql -U guacamole_user -d guacamole_db -a -f initdb.sql
```
- guacamole에서 사용할 사용자와 db 생성
- 위에서 생성한 sql 파일을 사전에 미리 컨테이너 내부로 옮겨두고 실행

## Auacd 설치
```
podman run --network guaca --name guacd -d guacamole/guacd:1.4.0
```
- 원격 접속 역할을 수행하는 guacd container 생성

## guacamole 설치
```
podman run --network guaca --name hypermole \
    -e WEBAPP_CONTEXT=ROOT \
    -e GUACD_HOSTNAME=guacd \
    -e GUACD_PORT=4822 \
    -e POSTGRES_HOSTNAME=guaca-db \
    -e POSTGRES_PORT=5432 \
    -e POSTGRES_DATABASE=guacamole_db \
    -e POSTGRES_USER=guacamole_user \
    -e POSTGRES_PASSWORD=ios2011a \
    -d -p 7900:8080 localhost/hypermole:0.1
```
- 해당 커맨드는 tmaxcloud platform ps팀에서 사용하기 위해 작성자가 수정한 이미지
- 순수 guacamole 같은 경우 guacamole/guacamole:1.4.0 을 사용


