]>
Commit | Line | Data |
---|---|---|
072188dc DM |
1 | #!/bin/bash |
2 | ||
6d413477 DM |
3 | set -e |
4 | ||
072188dc DM |
5 | # needs pve-manager >= 3.1-44 |
6 | ||
f72df730 DM |
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) | |
be4c6ad6 | 25 | USERNAME="${OPTARG}" |
f72df730 DM |
26 | ;; |
27 | p) | |
be4c6ad6 | 28 | PASSWORD="${OPTARG}" |
f72df730 DM |
29 | ;; |
30 | *) | |
31 | usage | |
32 | ;; | |
33 | esac | |
34 | done | |
35 | ||
36 | shift $((OPTIND-1)) | |
37 | ||
be4c6ad6 | 38 | if [[ -z "$PASSWORD" ]]; then |
f72df730 DM |
39 | PASSWORD="" |
40 | fi | |
be4c6ad6 WB |
41 | if [[ -z "$USERNAME" ]]; then |
42 | USERNAME='root@pam' | |
f72df730 DM |
43 | fi |
44 | ||
be4c6ad6 | 45 | DEFAULTHOST="$(hostname -f)" |
f72df730 | 46 | |
072188dc | 47 | # select VM |
be4c6ad6 WB |
48 | [[ -z "$1" ]] && usage |
49 | VMID="$1" | |
f72df730 | 50 | |
be4c6ad6 WB |
51 | #[[ -z "$2" ]] && usage |
52 | NODE="${2:-$DEFAULTHOST}" | |
f72df730 | 53 | |
be4c6ad6 WB |
54 | if [[ -z "$3" ]]; then |
55 | PROXY="$NODE" | |
f72df730 | 56 | else |
be4c6ad6 | 57 | PROXY="$3" |
f72df730 | 58 | fi |
072188dc | 59 | |
be4c6ad6 | 60 | NODE="${NODE%%\.*}" |
072188dc | 61 | |
765bba6c | 62 | DATA="$(curl -f -s -S -k --data-urlencode "username=$USERNAME" --data-urlencode "password=$PASSWORD" "https://$PROXY:8006/api2/json/access/ticket")" |
6d413477 DM |
63 | |
64 | echo "AUTH OK" | |
072188dc | 65 | |
be4c6ad6 WB |
66 | TICKET="${DATA//\"/}" |
67 | TICKET="${TICKET##*ticket:}" | |
68 | TICKET="${TICKET%%,*}" | |
52a450d6 | 69 | TICKET="${TICKET%%\}*}" |
072188dc | 70 | |
be4c6ad6 WB |
71 | CSRF="${DATA//\"/}" |
72 | CSRF="${CSRF##*CSRFPreventionToken:}" | |
73 | CSRF="${CSRF%%,*}" | |
52a450d6 | 74 | CSRF="${CSRF%%\}*}" |
072188dc | 75 | |
be4c6ad6 | 76 | 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 |
072188dc | 77 | |
be4c6ad6 | 78 | exec remote-viewer spiceproxy |