The ungleich VM console » History » Revision 4
Revision 3 (Jin-Guk Kwon, 02/17/2020 06:52 PM) → Revision 4/6 (Jin-Guk Kwon, 03/03/2020 09:31 AM)
h1. The ungleich VM console
{{toc}}
h2. 1. System Architecture
This service supports accessing console of your VM through guacamole service.
And To log-in VM console web needs datacenterlight.ch account. User's accounts are syncronized with LDAP.
!archi.png!
h2. 2. Set guacamole server
- run cdist
<pre>
cd ~/.cdist; git pull; cdist config -bj7 -p9 -vv desktop.ungleich.ch
</pre>
- in manifest for centos
<pre>
……
desktop.ungleich.ch)
__guacamole_centos --ldap-hostname 'ldap server url' \
--ldap-port '636' \
--ldap-encryption-method 'ssl' \
--ldap-user-base-dn 'ou=XXX,dc=ungleich,dc=ch' \
--ldap-search-bind-password ‘refer to pass' \
--ldap-search-bind-dn 'cn=XXXXX,dc=ungleich,dc=ch' \
--ldap-username-attribute 'uid' \
--postgresql-hostname 'localhost' \
--postgresql-username 'USER name' \
--postgresql-database 'DB-name' \
--postgresql-port 'XXXX' \
--postgresql-password 'password' \
--TOTP \
--guacd-db 'postgresql'
</pre>
- in manifest for alpine (only support postgresql)
<pre>
……
desktop.ungleich.ch)
_ungleich_vnc_console --ldap-hostname 'ldap server url' \
--ldap-port '636' \
--ldap-encryption-method 'ssl' \
--ldap-user-base-dn 'ou=XXX,dc=ungleich,dc=ch' \
--ldap-search-bind-password ‘refer to pass' \
--ldap-search-bind-dn 'cn=XXXXX,dc=ungleich,dc=ch' \
--ldap-username-attribute 'uid' \
--postgresql-hostname 'localhost' \
--postgresql-username 'USER name' \
--postgresql-database 'DB-name' \
--postgresql-port 'XXXX' \
--postgresql-password 'password' \
--TOTP \
--guacd-db 'postgresql'
</pre>
h2. 3. Create VNC connection for VM
!cre_conn.png! !g_con.png!
h3. 1) git clone ungleich-tool(vnc_console_connection, it has cloned install postgresql on opennebual server
<pre>
apt install postgresql-client
</pre>
h3. 2) config postgresql for accessing from external host(%{color:blue}This is excuted by __ungleich_vnc_console cdist) cdist%)
- vi /var/lib/pgsql/data/postgresql.conf on guacamole server(desktop)
<pre>
listen_addresses = '*'
</pre>
- vi /var/lib/pgsql/data/pg_hba.conf on guacamole server(desktop)
<pre>
host all all opennbula server address trust
</pre>
- Restart postgresql
<pre>
systemctl restart postgresql
</pre>
h3. 2) 3) set vnc connection automatically on vnc_console opennebula server
h4. (1) vnc connection python script
- ldap_list.py vm_list_dual_uid : get user create VM list from ldap server
file(uid, email, VM Number, host, VNC port) (https://code.ungleich.ch/ungleich-public/ungleich-tools/blob/master/vm_list_dual_uid)
- db_export.py create-guacamole-session-ldap-db : update postgresql database with vnc create VNC connection info
- get_info.py : create vnc_connecion info
- config.py : config parameter on desktop (https://code.ungleich.ch/ungleich-public/ungleich-tools/blob/master/create-guacamole-session-ldap-DB)
h4. (2) create crontab
<pre>
crontab -e
</pre>
<pre>
*/5 15 0,2,4,6,8,10,12,14,16,18,20,22 * * * ./vm_list_dual_uid #create vm_list
45 0,2,4,6,8,10,12,14,16,18,20,22 * python3 /opt/ungleich-tools/vnc_console_connection/get_info.py # __cron/console_connection * * ./create-guacamole-session-ldap-db vm_vnc_list #create vm_list
</pre>
h2. 4. Monitoring VNC console
- We are monitoring VNC console with prometheus.
- run cdist __dcl_monitoring_server(update prometheus.yml)
h2. %{color:blue}※User VM information is synchronized with the VM console every 5 minute. hour. If you create VM right now, you can access VM console after 5 minutes.(vnc one hour.(vnc connection script takes about in 15 seconds.)% 7~8 minutes.)%