Merge branch 'master' of code.ungleich.ch:ungleich-public/ungleich-tools
This commit is contained in:
commit
5343a8b8af
3 changed files with 96 additions and 0 deletions
39
create-guacamole-session-ldap-DB
Normal file
39
create-guacamole-session-ldap-DB
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#option $1 is vm_list file name
|
||||||
|
#option $2 id DB location
|
||||||
|
#option $3 is DB user
|
||||||
|
#option $4 is DB name
|
||||||
|
|
||||||
|
host='localhost'
|
||||||
|
|
||||||
|
user_arr=( $(cat $1 | awk '{print $1}' ))
|
||||||
|
vmid_arr=( $(cat $1 | awk '{print $2}' ))
|
||||||
|
port_arr=( $(cat $1 | awk '{print $3}' ))
|
||||||
|
place_arr=( $(cat $1 | awk '{print $4}' ))
|
||||||
|
|
||||||
|
for ((i=0; i<${#user_arr[@]}; i++)) do
|
||||||
|
#create user
|
||||||
|
psql -h $2 -U $3 -d $4 -tAc "INSERT INTO guacamole_entity (name, type) VALUES ('${user_arr[i]}','USER');"
|
||||||
|
en_id=$(psql -h $2 -U $3 -d $4 -tAc "SELECT entity_id FROM guacamole_entity WHERE name = '${user_arr[i]}';")
|
||||||
|
psql -h $2 -U $3 -d $4 -tAc "INSERT INTO guacamole_user(entity_id, password_hash, password_date) VALUES ('$en_id', '\x74657374', now());"
|
||||||
|
|
||||||
|
#create connection
|
||||||
|
cn=${user_arr[i]}${vmid_arr[i]}
|
||||||
|
echo $cn
|
||||||
|
if [ 0 -eq $(psql -h $2 -U $3 -d $4 -tAc "SELECT connection_id FROM guacamole_connection WHERE connection_name = '$cn';" | wc -l) ]; then
|
||||||
|
psql -h $2 -U $3 -d $4 -tAc "INSERT INTO guacamole_connection (connection_name, protocol) VALUES ('$cn', 'vnc');"
|
||||||
|
cn_id=$(psql -h $2 -U $3 -d $4 -tAc "SELECT MAX(connection_id) FROM guacamole_connection WHERE connection_name = '$cn' AND parent_id IS NULL;")
|
||||||
|
|
||||||
|
psql -h $2 -U $3 -d $4 -tAc "INSERT INTO guacamole_connection_parameter VALUES ('$cn_id','hostname','$host');"
|
||||||
|
psql -h $2 -U $3 -d $4 -tAc "INSERT INTO guacamole_connection_parameter VALUES ('$cn_id','port','${port_arr[i]}');"
|
||||||
|
|
||||||
|
#connection permission
|
||||||
|
psql -h $2 -U $3 -d $4 -tAc "INSERT INTO guacamole_connection_permission(entity_id, connection_id, permission) VALUES ('$en_id', '$cn_id', 'READ');"
|
||||||
|
|
||||||
|
else
|
||||||
|
cn_id=$(psql -h $2 -U $3 -d $4 -tAc "SELECT MAX(connection_id) FROM guacamole_connection WHERE connection_name = '$cn' AND parent_id IS NULL;")
|
||||||
|
psql -h $2 -U $3 -d $4 -tAc "UPDATE guacamole_connection_parameter SET parameter_value='$host' where connection_id='$cn_id' and parameter_name='hostname';"
|
||||||
|
psql -h $2 -U $3 -d $4 -tAc "UPDATE guacamole_connection_parameter SET parameter_value='${port_arr[i]}' where connection_id='$cn_id' and parameter_name='port';"
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
38
create-guacamole-session-ldap-file
Normal file
38
create-guacamole-session-ldap-file
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#option $1 is vm_list file name
|
||||||
|
#option $2 is DB name
|
||||||
|
#this script should be run on guacamole server
|
||||||
|
|
||||||
|
|
||||||
|
host='localhost'
|
||||||
|
user_arr=( $(cat $1 | awk '{print $1}' ))
|
||||||
|
vmid_arr=( $(cat $1 | awk '{print $2}' ))
|
||||||
|
port_arr=( $(cat $1 | awk '{print $3}' ))
|
||||||
|
place_arr=( $(cat $1 | awk '{print $4}' ))
|
||||||
|
|
||||||
|
for ((i=0; i<${#user_arr[@]}; i++)) do
|
||||||
|
#create user
|
||||||
|
su - postgres -c "psql postgres -d $2 -tAc \"INSERT INTO guacamole_entity (name, type) VALUES ('${user_arr[i]}','USER');\""
|
||||||
|
en_id=$(su - postgres -c "psql postgres -d $2 -tAc \"SELECT entity_id FROM guacamole_entity WHERE name = '${user_arr[i]}';\"")
|
||||||
|
su - postgres -c "psql postgres -d $2 -tAc \"INSERT INTO guacamole_user(entity_id, password_hash, password_date) VALUES ('$en_id', '\x74657374', now());\""
|
||||||
|
|
||||||
|
#create connection
|
||||||
|
cn=${user_arr[i]}${vmid_arr[i]}
|
||||||
|
|
||||||
|
if [ 0 -eq $(su - postgres -c "psql postgres -d $2 -tAc \"SELECT connection_id FROM guacamole_connection WHERE connection_name = '$cn';\"" | wc -l) ]; then
|
||||||
|
su - postgres -c "psql postgres -d $2 -tAc \"INSERT INTO guacamole_connection (connection_name, protocol) VALUES ('$cn', 'vnc');\""
|
||||||
|
cn_id=$(su - postgres -c "psql postgres -d $2 -tAc \"SELECT MAX(connection_id) FROM guacamole_connection WHERE connection_name = '$cn' AND parent_id IS NULL;\"")
|
||||||
|
|
||||||
|
su - postgres -c "psql postgres -d $2 -tAc \"INSERT INTO guacamole_connection_parameter VALUES ('$cn_id','hostname','$host');\""
|
||||||
|
su - postgres -c "psql postgres -d $2 -tAc \"INSERT INTO guacamole_connection_parameter VALUES ('$cn_id','port','${port_arr[i]}');\""
|
||||||
|
|
||||||
|
#connection permission
|
||||||
|
su - postgres -c "psql postgres -d $2 -tAc \"INSERT INTO guacamole_connection_permission(entity_id, connection_id, permission) VALUES ('$en_id', '$cn_id', 'READ');\""
|
||||||
|
|
||||||
|
else
|
||||||
|
cn_id=$(su - postgres -c "psql postgres -d $2 -tAc \"SELECT MAX(connection_id) FROM guacamole_connection WHERE connection_name = '$cn' AND parent_id IS NULL;\"")
|
||||||
|
su - postgres -c "psql postgres -d $2 -tAc \"UPDATE guacamole_connection_parameter SET parameter_value='$host' where connection_id='$cn_id' and parameter_name='hostname';\""
|
||||||
|
su - postgres -c "psql postgres -d $2 -tAc \"UPDATE guacamole_connection_parameter SET parameter_value='${port_arr[i]}' where connection_id='$cn_id' and parameter_name='port';\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
19
vm_list
Normal file
19
vm_list
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
#option $1 is ldap password
|
||||||
|
#option $2 is ou
|
||||||
|
|
||||||
|
|
||||||
|
uid_list=( $(ldapsearch -x -H ldaps://ldap1.ungleich.ch:636 -D cn=manager,dc=ungleich,dc=ch -w $1 -b "ou=$2,dc=ungleich,dc=ch" | grep uid: | awk '{print $2}') )
|
||||||
|
|
||||||
|
for ((i=0; i<${#uid_list[@]}; i++)) do
|
||||||
|
list_email[$i]=$(ldapsearch -x -H ldaps://ldap1.ungleich.ch:636 -D cn=manager,dc=ungleich,dc=ch -w $1 -b "uid=${uid_list[$i]},ou=$2,dc=ungleich,dc=ch" | grep mail: | awk '{print $2}' )
|
||||||
|
list_vmid=()
|
||||||
|
list_vmid=( $(onevm list | grep ${list_email[$i]} | grep runn | awk '{print $1}' ) )
|
||||||
|
for ((j=0; j<${#list_vmid[@]}; j++)) do
|
||||||
|
temp=$(onevm show ${list_vmid[$j]} | grep PORT)
|
||||||
|
temp1="${temp#*\"}"
|
||||||
|
port="${temp1%%\"*}"
|
||||||
|
host=$(onevm show ${list_vmid[$j]} | grep HOST | grep ungleich | awk '{print $3}')
|
||||||
|
echo ${uid_list[$i]} ${list_vmid[$j]} $port $host >> ~/vm_vnc_list
|
||||||
|
done
|
||||||
|
done
|
Loading…
Reference in a new issue