]> git.proxmox.com Git - pve-manager.git/blob - spice-example-sh
Bug#579: add START parameter in /etc/default/pve-manager
[pve-manager.git] / spice-example-sh
1 #!/bin/bash
2
3 set -e
4
5 # needs pve-manager >= 3.1-44
6
7 usage() {
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
19 PASSWORD=""
20 USERNAME=""
21
22 while 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
34 done
35
36 shift $((OPTIND-1))
37
38 if [ -z $PASSWORD ]; then
39 PASSWORD=""
40 fi
41 if [ -z $USERNAME ]; then
42 USERNAME=root@pam
43 fi
44
45 DEFAULTHOST=$(hostname -f)
46
47 # select VM
48 [ -z $1 ] && usage
49 VMID=$1
50
51 #[ -z $2 ] && usage
52 NODE=${2:-$DEFAULTHOST}
53
54 if [ -z $3 ]; then
55 PROXY=$NODE
56 else
57 PROXY=$3
58 fi
59
60 NODE=${NODE%%\.*}
61
62 DATA=$(curl -f -s -S -k -d "username=$USERNAME&password=$PASSWORD" https://$PROXY:8006/api2/json/access/ticket)
63
64 echo "AUTH OK"
65
66 TICKET=${DATA//\"/}
67 TICKET=${TICKET##*ticket:}
68 TICKET=${TICKET%%,*}
69
70 CSRF=${DATA//\"/}
71 CSRF=${CSRF##*CSRFPreventionToken:}
72 CSRF=${CSRF%%,*}
73
74 curl -f -s -S -k -b "PVEAuthCookie=$TICKET" -H "CSRFPreventionToken: $CSRF" https://$PROXY:8006/api2/spiceconfig/nodes/$NODE/qemu/$VMID/spiceproxy -d "proxy=$PROXY" > spiceproxy
75
76 remote-viewer spiceproxy