]> git.proxmox.com Git - pve-manager.git/blame_incremental - spice-example-sh
ui: DirEdit: LVMEdit: add hint when to enable shared
[pve-manager.git] / spice-example-sh
... / ...
CommitLineData
1#!/bin/bash
2
3set -e
4
5# needs pve-manager >= 3.1-44
6
7usage() {
8 echo "Usage: $0 [-u <string>] [-p <string>] vmid [node [proxy]]"
9 echo
10 echo "-u username. Default root@pam"
11 echo "-p password. Default ''"
12 echo
13 echo "vmid: id for VM"
14 echo "node: Proxmox cluster node name"
15 echo "proxy: DNS or IP (use <node> as default)"
16 exit 1
17}
18
19PASSWORD=""
20USERNAME=""
21
22while getopts ":u:p:" o; do
23 case "${o}" in
24 u)
25 USERNAME="${OPTARG}"
26 ;;
27 p)
28 PASSWORD="${OPTARG}"
29 ;;
30 *)
31 usage
32 ;;
33 esac
34done
35
36shift $((OPTIND-1))
37
38if [[ -z "$PASSWORD" ]]; then
39 PASSWORD=""
40fi
41if [[ -z "$USERNAME" ]]; then
42 USERNAME='root@pam'
43fi
44
45DEFAULTHOST="$(hostname -f)"
46
47# select VM
48[[ -z "$1" ]] && usage
49VMID="$1"
50
51#[[ -z "$2" ]] && usage
52NODE="${2:-$DEFAULTHOST}"
53
54if [[ -z "$3" ]]; then
55 PROXY="$NODE"
56else
57 PROXY="$3"
58fi
59
60NODE="${NODE%%\.*}"
61
62DATA="$(curl -f -s -S -k --data-urlencode "username=$USERNAME" --data-urlencode "password=$PASSWORD" "https://$PROXY:8006/api2/json/access/ticket")"
63
64echo "AUTH OK"
65
66TICKET="${DATA//\"/}"
67TICKET="${TICKET##*ticket:}"
68TICKET="${TICKET%%,*}"
69TICKET="${TICKET%%\}*}"
70
71CSRF="${DATA//\"/}"
72CSRF="${CSRF##*CSRFPreventionToken:}"
73CSRF="${CSRF%%,*}"
74CSRF="${CSRF%%\}*}"
75
76curl -f -s -S -k -b "PVEAuthCookie=$TICKET" -H "CSRFPreventionToken: $CSRF" "https://$PROXY:8006/api2/spiceconfig/nodes/$NODE/qemu/$VMID/spiceproxy" -d "proxy=$PROXY" > spiceproxy
77
78exec remote-viewer spiceproxy