Docker installtion
Beschreibung:
RustDesk installation via Docker
Vorrausetzung
docker-compose
apt install docker-compose
Ports die in der Firewall / per NAT zur Verfügung gestellt werden müssen
TCP (21115, 21116, 21117, 21118, 21119)
UDP (21116)
In der Community OSS version gibt es keinen Webclient
zu empfehlen is es sich eine Subdomain hilfe.example.com als Beispiel anzulegen, anstatt sich die IP zu merken.
Installtion
Zuert legen wir uns ein Verzeichnis an z.b
mkdir /root/rustdesk/data
cd /root/rustdesk
Darin legen wir uns eine .env Datei an.
nano /root/rustdesk/.env
Inhalt
DATA_PATH=/root/rustdesk/data
Nun die Composer File
nano /root/rustdata/docker-compose.yml
Inhalt
version: '3'
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
environment:
- DATA_PATH=${DATA_PATH}
command: hbbs
volumes:
- ${DATA_PATH}:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ${DATA_PATH}:/root
network_mode: "host"
restart: unless-stopped
mit docker-compose up starten wir das ganze
docker-compose up -d
API KEY anzeigen, dieser wird später im Client benötigt
cat /root/rustdesk/daten/id_ed25519.pub
Diesen Schlüssel brauchen wir später, aber auch nur wenn wir den Pro Server installiert haben, sonst ist der überflüssig.
Am besten in einem Paswort Safe speichern
Ansible Script das die oberen Schritte ausführt
Die host.ini
Inhalt:
192.168.178.122 ansible_user=root rustdesk_data_path=/root/rustdesk/daten
Nun das Playbook
rustdesk.yml
Inhalt:
---
- name: Deploy RustDesk via Docker Compose
hosts: all
become: yes
vars:
rustdesk_data_path: "{{ hostvars[inventory_hostname].rustdesk_data_path }}"
tasks:
- name: Create RustDesk data directory
file:
path: "{{ rustdesk_data_path }}"
state: directory
- name: Create .env file for RustDesk
copy:
dest: "{{ rustdesk_data_path }}/.env"
content: |
DATA_PATH={{ rustdesk_data_path }}
- name: Create Docker Compose file for RustDesk
copy:
dest: "{{ rustdesk_data_path }}/docker-compose.yml"
content: |
version: '3'
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
environment:
- DATA_PATH=${DATA_PATH}
command: hbbs
volumes:
- ${DATA_PATH}:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ${DATA_PATH}:/root
network_mode: "host"
restart: unless-stopped
- name: Install Docker and Docker Compose
apt:
name:
- docker
- docker-compose
state: latest
when: ansible_os_family == "Debian"
- name: Start and enable RustDesk Docker container
docker_compose:
project_src: "{{ rustdesk_data_path }}"
state: present
restarted: yes
- name: Wait for 60 seconds for services to start
pause:
seconds: 60
- name: hole Inhalt von {{ rustdesk_data_path }}/id_ed25519.pub
command: cat {{ rustdesk_data_path }}/id_ed25519.pub
register: file_content
- name: zeige API KEY
debug:
msg: "{{ file_content.stdout }}"
nachdem die host.ini angepasst wurde kann mit
ansible-playbook -i host.ini rustdesk.yml
rustdesk ausgerollt werden.
Am ende des Scriptes wird der API KEy ausgeben.
Diesen Schlüssel brauchen wir später, aber auch nur wenn wir den Pro Server installiert haben, sonst ist der überflüssig.
Am besten in einem Paswort Safe speichern.