Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
docpublic:systemes:remotelabsguacamole [2020/06/15 10:38]
procacci@tem-tsp.eu created
docpublic:systemes:remotelabsguacamole [2020/06/18 15:25] (current)
procacci@tem-tsp.eu [packages repositories]
Line 6: Line 6:
   * https://www.byteprotips.com/?p=2391   * https://www.byteprotips.com/?p=2391
  
 +
 +==== environement ====
 +
 +installation faite en centos 8 et tomcat 9 (tar.gz dans /opt/tomcat) 
 ==== packages repositories ==== ==== packages repositories ====
  
Line 18: Line 22:
 <code> <code>
 [root@rlab ~]# dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm [root@rlab ~]# dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
-[root@rlabw ~]# yum install dnf-plugins-core +[root@rlab ~]# yum install dnf-plugins-core 
-[root@rlabw ~]# dnf config-manager --enable PowerTools+[root@rlab ~]# dnf config-manager --enable PowerTools
 </code> </code>
  
Line 251: Line 255:
  
 </code> </code>
 +
 +
 +===== guacamole =====
 +
 +==== sources ====
 +
 +<code>
 +[root@rlab opt]# wget  https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz
 +[root@rlab opt]# tar -xzf guacamole-server-1.1.0.tar.gz
 +[root@rlab opt]# cd guacamole-server-1.1.0
 +</code>
 +
 +
 +==== configure ====
 +
 +<code>
 +[root@rlab guacamole-server-1.1.0]# ./configure --with-init-dir=/etc/init.d
 +checking for a BSD-compatible install... /usr/bin/install -c
 +checking whether build environment is sane... yes
 +checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
 +checking for gawk... gawk
 +checking whether make sets $(MAKE)... yes
 +checking whether make supports nested variables... yes
 +checking whether make supports nested variables... (cached) yes
 +checking build system type... x86_64-pc-linux-gnu
 +checking host system type... x86_64-pc-linux-gnu
 +checking how to print strings... printf
 +checking for style of include used by make... GNU
 +checking for gcc... gcc
 +checking whether the C compiler works... yes
 +checking for C compiler default output file name... a.out
 +checking for suffix of executables... 
 +checking whether we are cross compiling... no
 +checking for suffix of object files... o
 +checking whether we are using the GNU C compiler... yes
 +checking whether gcc accepts -g... yes
 +checking for gcc option to accept ISO C89... none needed
 +checking whether gcc understands -c and -o together... yes
 +checking dependency style of gcc... gcc3
 +checking for a sed that does not truncate output... /usr/bin/sed
 +checking for grep that handles long lines and -e... /usr/bin/grep
 +checking for egrep... /usr/bin/grep -E
 +checking for fgrep... /usr/bin/grep -F
 +checking for ld used by gcc... /usr/bin/ld
 +checking if the linker (/usr/bin/ld) is GNU ld... yes
 +checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
 +checking the name lister (/usr/bin/nm -B) interface... BSD nm
 +checking whether ln -s works... yes
 +checking the maximum length of command line arguments... 1572864
 +checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
 +checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
 +checking for /usr/bin/ld option to reload object files... -r
 +checking for objdump... objdump
 +checking how to recognize dependent libraries... pass_all
 +checking for dlltool... no
 +checking how to associate runtime and link libraries... printf %s\n
 +checking for ar... ar
 +checking for archiver @FILE support... @
 +checking for strip... strip
 +checking for ranlib... ranlib
 +checking command to parse /usr/bin/nm -B output from gcc object... ok
 +checking for sysroot... no
 +checking for a working dd... /usr/bin/dd
 +checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
 +checking for mt... no
 +checking if : is a manifest tool... no
 +checking how to run the C preprocessor... gcc -E
 +checking for ANSI C header files... yes
 +checking for sys/types.h... yes
 +checking for sys/stat.h... yes
 +checking for stdlib.h... yes
 +checking for string.h... yes
 +checking for memory.h... yes
 +checking for strings.h... yes
 +checking for inttypes.h... yes
 +checking for stdint.h... yes
 +checking for unistd.h... yes
 +checking for dlfcn.h... yes
 +checking for objdir... .libs
 +checking if gcc supports -fno-rtti -fno-exceptions... no
 +checking for gcc option to produce PIC... -fPIC -DPIC
 +checking if gcc PIC flag -fPIC -DPIC works... yes
 +checking if gcc static flag -static works... no
 +checking if gcc supports -c -o file.o... yes
 +checking if gcc supports -c -o file.o... (cached) yes
 +checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
 +checking whether -lc should be explicitly linked in... no
 +checking dynamic linker characteristics... GNU/Linux ld.so
 +checking how to hardcode library paths into programs... immediate
 +checking for shl_load... no
 +checking for shl_load in -ldld... no
 +checking for dlopen... no
 +checking for dlopen in -ldl... yes
 +checking whether a program can dlopen itself... yes
 +checking whether a statically linked program can dlopen itself... yes
 +checking whether stripping libraries is possible... yes
 +checking if libtool supports shared libraries... yes
 +checking whether to build shared libraries... yes
 +checking whether to build static libraries... yes
 +checking for gcc... (cached) gcc
 +checking whether we are using the GNU C compiler... (cached) yes
 +checking whether gcc accepts -g... (cached) yes
 +checking for gcc option to accept ISO C89... (cached) none needed
 +checking whether gcc understands -c and -o together... (cached) yes
 +checking dependency style of gcc... (cached) gcc3
 +checking for gcc option to accept ISO C99... none needed
 +checking fcntl.h usability... yes
 +checking fcntl.h presence... yes
 +checking for fcntl.h... yes
 +checking for stdlib.h... (cached) yes
 +checking for string.h... (cached) yes
 +checking sys/socket.h usability... yes
 +checking sys/socket.h presence... yes
 +checking for sys/socket.h... yes
 +checking time.h usability... yes
 +checking time.h presence... yes
 +checking for time.h... yes
 +checking sys/time.h usability... yes
 +checking sys/time.h presence... yes
 +checking for sys/time.h... yes
 +checking syslog.h usability... yes
 +checking syslog.h presence... yes
 +checking for syslog.h... yes
 +checking for unistd.h... (cached) yes
 +checking cairo/cairo.h usability... yes
 +checking cairo/cairo.h presence... yes
 +checking for cairo/cairo.h... yes
 +checking pngstruct.h usability... no
 +checking pngstruct.h presence... no
 +checking for pngstruct.h... no
 +checking for cos in -lm... yes
 +checking for png_write_png in -lpng... yes
 +checking for jpeg_start_compress in -ljpeg... yes
 +checking for cairo_create in -lcairo... yes
 +checking for pthread_create in -lpthread... yes
 +checking for dlopen in -ldl... (cached) yes
 +checking for uuid_make in -lossp-uuid... yes
 +checking ossp/uuid.h usability... no
 +checking ossp/uuid.h presence... no
 +checking for ossp/uuid.h... no
 +checking whether uuid_make is declared... yes
 +checking for CU_run_test in -lcunit... no
 +checking for clock_gettime... yes
 +checking for gettimeofday... yes
 +checking for memmove... yes
 +checking for memset... yes
 +checking for select... yes
 +checking for strdup... yes
 +checking for nanosleep... yes
 +checking whether png_get_io_ptr is declared... yes
 +checking whether cairo_format_stride_for_width is declared... yes
 +checking whether poll is declared... yes
 +checking whether strlcpy is declared... no
 +checking whether strlcat is declared... no
 +checking for size_t... yes
 +checking for ssize_t... yes
 +checking for pkg-config... /usr/bin/pkg-config
 +checking pkg-config is at least version 0.9.0... yes
 +checking for AVCODEC... yes
 +checking for AVUTIL... yes
 +checking for SWSCALE... yes
 +checking openssl/ssl.h usability... yes
 +checking openssl/ssl.h presence... yes
 +checking for openssl/ssl.h... yes
 +checking for SSL_CTX_new in -lssl... yes
 +checking whether DSA_SIG_get0 is declared... yes
 +checking whether DSA_get0_pqg is declared... yes
 +checking whether DSA_get0_key is declared... yes
 +checking whether RSA_get0_key is declared... yes
 +checking whether libssl requires threading callbacks... no
 +checking for main in -lwsock32... no
 +checking vorbis/vorbisenc.h usability... yes
 +checking vorbis/vorbisenc.h presence... yes
 +checking for vorbis/vorbisenc.h... yes
 +checking for ogg_stream_init in -logg... yes
 +checking for vorbis_block_init in -lvorbis... yes
 +checking for vorbis_encode_init in -lvorbisenc... yes
 +checking for pa_context_new in -lpulse... yes
 +checking for PANGO... yes
 +checking for PANGOCAIRO... yes
 +checking for rfbInitClient in -lvncclient... yes
 +checking for rfbClient.destHost... yes
 +checking for rfbClient.destPort... yes
 +checking whether listenForIncomingConnectionsNoFork is declared... yes
 +checking for RDP... yes
 +checking whether FreeRDPConvertColor is declared... yes
 +checking whether Bitmap_Free() frees the rdpBitmap and its image data... no
 +checking whether rdpGlyph callbacks accept INT32 integer parameters... yes
 +checking whether CLIPRDR callbacks require const for their final parameter... no
 +checking whether RAIL callbacks require const for their final parameter... yes
 +checking for libssh2_session_init_ex in -lssh2... yes
 +checking for gcry_control in -lssh2... no
 +checking for telnet_init in -ltelnet... no
 +checking webp/encode.h usability... yes
 +checking webp/encode.h presence... yes
 +checking for webp/encode.h... yes
 +checking for WebPEncode in -lwebp... yes
 +checking for lws_create_context in -lwebsockets... yes
 +checking whether LWS_CALLBACK_CLIENT_CLOSED is declared... yes
 +checking whether LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT is declared... yes
 +checking whether LCCSCF_USE_SSL is declared... yes
 +checking whether lws_callback_http_dummy is declared... yes
 +checking that generated files are newer than configure... done
 +configure: creating ./config.status
 +config.status: creating Makefile
 +config.status: creating doc/Doxyfile
 +config.status: creating src/common/Makefile
 +config.status: creating src/common/tests/Makefile
 +config.status: creating src/common-ssh/Makefile
 +config.status: creating src/common-ssh/tests/Makefile
 +config.status: creating src/terminal/Makefile
 +config.status: creating src/libguac/Makefile
 +config.status: creating src/libguac/tests/Makefile
 +config.status: creating src/guacd/Makefile
 +config.status: creating src/guacd/man/guacd.8
 +config.status: creating src/guacd/man/guacd.conf.5
 +config.status: creating src/guacenc/Makefile
 +config.status: creating src/guacenc/man/guacenc.1
 +config.status: creating src/guaclog/Makefile
 +config.status: creating src/guaclog/man/guaclog.1
 +config.status: creating src/pulse/Makefile
 +config.status: creating src/protocols/kubernetes/Makefile
 +config.status: creating src/protocols/rdp/Makefile
 +config.status: creating src/protocols/rdp/tests/Makefile
 +config.status: creating src/protocols/ssh/Makefile
 +config.status: creating src/protocols/telnet/Makefile
 +config.status: creating src/protocols/vnc/Makefile
 +config.status: creating config.h
 +config.status: executing depfiles commands
 +config.status: executing libtool commands
 +
 +------------------------------------------------
 +guacamole-server version 1.1.0
 +------------------------------------------------
 +
 +   Library status:
 +
 +     freerdp2 ............ yes
 +     pango ............... yes
 +     libavcodec .......... yes
 +     libavutil ........... yes
 +     libssh2 ............. yes
 +     libssl .............. yes
 +     libswscale .......... yes
 +     libtelnet ........... no
 +     libVNCServer ........ yes
 +     libvorbis ........... yes
 +     libpulse ............ yes
 +     libwebsockets ....... yes
 +     libwebp ............. yes
 +     wsock32 ............. no
 +
 +   Protocol support:
 +
 +      Kubernetes .... yes
 +      RDP ........... yes
 +      SSH ........... yes
 +      Telnet ........ no
 +      VNC ........... yes
 +
 +   Services / tools:
 +
 +      guacd ...... yes
 +      guacenc .... yes
 +      guaclog .... yes
 +
 +   FreeRDP plugins: /usr/lib64/freerdp2
 +   Init scripts: /etc/init.d
 +   Systemd units: no
 +
 +Type "make" to compile guacamole-server.
 +</code>
 +
 +==== build ====
 +
 +<code>
 +[root@rlab guacamole-server-1.1.0]# make
 +make  all-recursive
 +make[1] : on entre dans le répertoire « /opt/guacamole-server-1.1.0 »
 +Making all in src/libguac
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 +Making all in .
 +make[3] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 +  CC       libguac_la-audio.lo
 +  CC       libguac_la-client.lo
 +  CC       libguac_la-encode-jpeg.lo
 +  CC       libguac_la-encode-png.lo
 +  CC       libguac_la-error.lo
 +  CC       libguac_la-hash.lo
 +  CC       libguac_la-id.lo
 +  CC       libguac_la-palette.lo
 +  CC       libguac_la-parser.lo
 +  CC       libguac_la-pool.lo
 +  CC       libguac_la-protocol.lo
 +  CC       libguac_la-raw_encoder.lo
 +  CC       libguac_la-socket.lo
 +  CC       libguac_la-socket-broadcast.lo
 +  CC       libguac_la-socket-fd.lo
 +  CC       libguac_la-socket-nest.lo
 +  CC       libguac_la-socket-tee.lo
 +  CC       libguac_la-string.lo
 +  CC       libguac_la-timestamp.lo
 +  CC       libguac_la-unicode.lo
 +  CC       libguac_la-user.lo
 +  CC       libguac_la-user-handlers.lo
 +  CC       libguac_la-user-handshake.lo
 +  CC       libguac_la-wait-fd.lo
 +  CC       libguac_la-encode-webp.lo
 +  CC       libguac_la-socket-ssl.lo
 +  CCLD     libguac.la
 +make[3] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 +Making all in tests
 +make[3] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/libguac/tests »
 +make[3]: rien à faire pour « all ».
 +make[3] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/libguac/tests »
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 +Making all in src/common
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/common »
 +Making all in .
 +make[3] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/common »
 +  CC       libguac_common_la-io.lo
 +  CC       libguac_common_la-blank_cursor.lo
 +  CC       libguac_common_la-clipboard.lo
 +  CC       libguac_common_la-cursor.lo
 +  CC       libguac_common_la-display.lo
 +  CC       libguac_common_la-dot_cursor.lo
 +  CC       libguac_common_la-ibar_cursor.lo
 +  CC       libguac_common_la-iconv.lo
 +  CC       libguac_common_la-json.lo
 +  CC       libguac_common_la-list.lo
 +  CC       libguac_common_la-pointer_cursor.lo
 +  CC       libguac_common_la-recording.lo
 +  CC       libguac_common_la-rect.lo
 +  CC       libguac_common_la-string.lo
 +  CC       libguac_common_la-surface.lo
 +  CCLD     libguac_common.la
 +make[3] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/common »
 +Making all in tests
 +make[3] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/common/tests »
 +make[3]: rien à faire pour « all ».
 +make[3] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/common/tests »
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/common »
 +Making all in src/common-ssh
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/common-ssh »
 +Making all in .
 +make[3] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/common-ssh »
 +  CC       libguac_common_ssh_la-buffer.lo
 +  CC       libguac_common_ssh_la-dsa-compat.lo
 +  CC       libguac_common_ssh_la-rsa-compat.lo
 +  CC       libguac_common_ssh_la-sftp.lo
 +  CC       libguac_common_ssh_la-ssh.lo
 +  CC       libguac_common_ssh_la-key.lo
 +  CC       libguac_common_ssh_la-user.lo
 +  CCLD     libguac_common_ssh.la
 +make[3] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/common-ssh »
 +Making all in tests
 +make[3] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/common-ssh/tests »
 +make[3]: rien à faire pour « all ».
 +make[3] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/common-ssh/tests »
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/common-ssh »
 +Making all in src/terminal
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/terminal »
 +  CC       libguac_terminal_la-buffer.lo
 +  CC       libguac_terminal_la-char_mappings.lo
 +  CC       libguac_terminal_la-color-scheme.lo
 +  CC       libguac_terminal_la-common.lo
 +  CC       libguac_terminal_la-display.lo
 +  CC       libguac_terminal_la-named-colors.lo
 +  CC       libguac_terminal_la-palette.lo
 +  CC       libguac_terminal_la-scrollbar.lo
 +  CC       libguac_terminal_la-select.lo
 +  CC       libguac_terminal_la-terminal.lo
 +  CC       libguac_terminal_la-terminal_handlers.lo
 +  CC       libguac_terminal_la-terminal-stdin-stream.lo
 +  CC       libguac_terminal_la-typescript.lo
 +  CC       libguac_terminal_la-xparsecolor.lo
 +  CCLD     libguac_terminal.la
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/terminal »
 +Making all in src/pulse
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/pulse »
 +  CC       libguac_pulse_la-pulse.lo
 +  CCLD     libguac_pulse.la
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/pulse »
 +Making all in src/protocols/kubernetes
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/kubernetes »
 +  CC       libguac_client_kubernetes_la-argv.lo
 +  CC       libguac_client_kubernetes_la-client.lo
 +  CC       libguac_client_kubernetes_la-clipboard.lo
 +  CC       libguac_client_kubernetes_la-input.lo
 +  CC       libguac_client_kubernetes_la-io.lo
 +  CC       libguac_client_kubernetes_la-pipe.lo
 +  CC       libguac_client_kubernetes_la-settings.lo
 +  CC       libguac_client_kubernetes_la-ssl.lo
 +  CC       libguac_client_kubernetes_la-kubernetes.lo
 +  CC       libguac_client_kubernetes_la-url.lo
 +  CC       libguac_client_kubernetes_la-user.lo
 +  CCLD     libguac-client-kubernetes.la
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/protocols/kubernetes »
 +Making all in src/protocols/rdp
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp »
 +  GEN      _generated_channel_entry_wrappers.c
 +  GEN      _generated_keymaps.c
 +Added: base
 +Added: failsafe
 +Added: de-de-qwertz
 +Added: de-ch-qwertz
 +Added: en-gb-qwerty
 +Added: en-us-qwerty
 +Added: es-es-qwerty
 +Added: fr-fr-azerty
 +Added: fr-ch-qwertz
 +Added: it-it-qwerty
 +Added: ja-jp-qwerty
 +Added: pt-br-qwerty
 +Added: sv-se-qwerty
 +Added: da-dk-qwerty
 +Added: tr-tr-qwerty
 +make  all-recursive
 +make[3] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp »
 +Making all in .
 +make[4] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp »
 +  CC       plugins/guac-common-svc/libguac_common_svc_client_la-guac-common-svc.lo
 +  CCLD     libguac-common-svc-client.la
 +  CC       channels/audio-input/libguacai_client_la-audio-buffer.lo
 +  CC       plugins/guacai/libguacai_client_la-guacai-messages.lo
 +  CC       plugins/guacai/libguacai_client_la-guacai.lo
 +  CC       plugins/libguacai_client_la-ptr-string.lo
 +  CCLD     libguacai-client.la
 +  CC       libguac_client_rdp_la-beep.lo
 +  CC       libguac_client_rdp_la-bitmap.lo
 +  CC       channels/audio-input/libguac_client_rdp_la-audio-buffer.lo
 +  CC       channels/audio-input/libguac_client_rdp_la-audio-input.lo
 +  CC       channels/libguac_client_rdp_la-cliprdr.lo
 +  CC       channels/libguac_client_rdp_la-common-svc.lo
 +  CC       channels/libguac_client_rdp_la-disp.lo
 +  CC       channels/libguac_client_rdp_la-pipe-svc.lo
 +  CC       channels/libguac_client_rdp_la-rail.lo
 +  CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-fs-messages-dir-info.lo
 +  CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-fs-messages-file-info.lo
 +  CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-fs-messages-vol-info.lo
 +  CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-fs-messages.lo
 +  CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-fs.lo
 +  CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-messages.lo
 +  CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-printer.lo
 +  CC       channels/rdpdr/libguac_client_rdp_la-rdpdr.lo
 +  CC       channels/rdpsnd/libguac_client_rdp_la-rdpsnd-messages.lo
 +  CC       channels/rdpsnd/libguac_client_rdp_la-rdpsnd.lo
 +  CC       libguac_client_rdp_la-client.lo
 +  CC       libguac_client_rdp_la-color.lo
 +  CC       libguac_client_rdp_la-decompose.lo
 +  CC       libguac_client_rdp_la-download.lo
 +  CC       libguac_client_rdp_la-error.lo
 +  CC       libguac_client_rdp_la-fs.lo
 +  CC       libguac_client_rdp_la-gdi.lo
 +  CC       libguac_client_rdp_la-glyph.lo
 +  CC       libguac_client_rdp_la-input.lo
 +  CC       libguac_client_rdp_la-keyboard.lo
 +  CC       libguac_client_rdp_la-keymap.lo
 +  CC       libguac_client_rdp_la-log.lo
 +  CC       libguac_client_rdp_la-ls.lo
 +  CC       plugins/libguac_client_rdp_la-channels.lo
 +  CC       plugins/libguac_client_rdp_la-ptr-string.lo
 +  CC       libguac_client_rdp_la-pointer.lo
 +  CC       libguac_client_rdp_la-print-job.lo
 +  CC       libguac_client_rdp_la-rdp.lo
 +  CC       libguac_client_rdp_la-resolution.lo
 +  CC       libguac_client_rdp_la-settings.lo
 +  CC       libguac_client_rdp_la-unicode.lo
 +  CC       libguac_client_rdp_la-upload.lo
 +  CC       libguac_client_rdp_la-user.lo
 +  CC       libguac_client_rdp_la-sftp.lo
 +  CC       libguac_client_rdp_la-_generated_channel_entry_wrappers.lo
 +  CC       libguac_client_rdp_la-_generated_keymaps.lo
 +  CCLD     libguac-client-rdp.la
 +make[4] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp »
 +Making all in tests
 +make[4] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp/tests »
 +make[4]: rien à faire pour « all ».
 +make[4] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp/tests »
 +make[3] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp »
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp »
 +Making all in src/protocols/ssh
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/ssh »
 +  CC       libguac_client_ssh_la-argv.lo
 +  CC       libguac_client_ssh_la-client.lo
 +  CC       libguac_client_ssh_la-clipboard.lo
 +  CC       libguac_client_ssh_la-input.lo
 +  CC       libguac_client_ssh_la-pipe.lo
 +  CC       libguac_client_ssh_la-settings.lo
 +  CC       libguac_client_ssh_la-sftp.lo
 +  CC       libguac_client_ssh_la-ssh.lo
 +  CC       libguac_client_ssh_la-ttymode.lo
 +  CC       libguac_client_ssh_la-user.lo
 +  CCLD     libguac-client-ssh.la
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/protocols/ssh »
 +Making all in src/protocols/vnc
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/vnc »
 +  CC       libguac_client_vnc_la-auth.lo
 +  CC       libguac_client_vnc_la-client.lo
 +  CC       libguac_client_vnc_la-clipboard.lo
 +  CC       libguac_client_vnc_la-cursor.lo
 +  CC       libguac_client_vnc_la-display.lo
 +  CC       libguac_client_vnc_la-input.lo
 +  CC       libguac_client_vnc_la-log.lo
 +  CC       libguac_client_vnc_la-settings.lo
 +  CC       libguac_client_vnc_la-user.lo
 +  CC       libguac_client_vnc_la-vnc.lo
 +  CC       libguac_client_vnc_la-sftp.lo
 +  CCLD     libguac-client-vnc.la
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/protocols/vnc »
 +Making all in src/guacd
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/guacd »
 +  CC       guacd-conf-args.o
 +  CC       guacd-conf-file.o
 +  CC       guacd-conf-parse.o
 +  CC       guacd-connection.o
 +  CC       guacd-daemon.o
 +  CC       guacd-log.o
 +  CC       guacd-move-fd.o
 +  CC       guacd-proc.o
 +  CC       guacd-proc-map.o
 +  CCLD     guacd
 +sed -e 's,[@]sbindir[@],/usr/local/sbin,g' < init.d/guacd.in > init.d/guacd
 +chmod +x init.d/guacd
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guacd »
 +Making all in src/guacenc
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/guacenc »
 +  CC       guacenc-buffer.o
 +  CC       guacenc-cursor.o
 +  CC       guacenc-display.o
 +  CC       guacenc-display-buffers.o
 +  CC       guacenc-display-image-streams.o
 +  CC       guacenc-display-flatten.o
 +  CC       guacenc-display-layers.o
 +  CC       guacenc-display-sync.o
 +  CC       guacenc-encode.o
 +  CC       guacenc-ffmpeg-compat.o
 +  CC       guacenc-guacenc.o
 +  CC       guacenc-image-stream.o
 +  CC       guacenc-instructions.o
 +  CC       guacenc-instruction-blob.o
 +  CC       guacenc-instruction-cfill.o
 +  CC       guacenc-instruction-copy.o
 +  CC       guacenc-instruction-cursor.o
 +  CC       guacenc-instruction-dispose.o
 +  CC       guacenc-instruction-end.o
 +  CC       guacenc-instruction-img.o
 +  CC       guacenc-instruction-mouse.o
 +  CC       guacenc-instruction-move.o
 +  CC       guacenc-instruction-rect.o
 +  CC       guacenc-instruction-shade.o
 +  CC       guacenc-instruction-size.o
 +  CC       guacenc-instruction-sync.o
 +  CC       guacenc-instruction-transfer.o
 +  CC       guacenc-jpeg.o
 +  CC       guacenc-layer.o
 +  CC       guacenc-log.o
 +  CC       guacenc-parse.o
 +  CC       guacenc-png.o
 +  CC       guacenc-video.o
 +  CC       guacenc-webp.o
 +  CCLD     guacenc
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guacenc »
 +Making all in src/guaclog
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/guaclog »
 +  CC       guaclog-guaclog.o
 +  CC       guaclog-instructions.o
 +  CC       guaclog-instruction-key.o
 +  CC       guaclog-interpret.o
 +  CC       guaclog-keydef.o
 +  CC       guaclog-log.o
 +  CC       guaclog-state.o
 +  CCLD     guaclog
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guaclog »
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0 »
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0 »
 +make[1] : on quitte le répertoire « /opt/guacamole-server-1.1.0 »
 +</code>
 +
 +==== make install ====
 +
 +<code>
 +[root@rlab guacamole-server-1.1.0]# make install
 +Making install in src/libguac
 +make[1] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 +Making install in .
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 +make[3] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 + /usr/bin/mkdir -p '/usr/local/lib'
 + /bin/sh ../../libtool   --mode=install /usr/bin/install -c   libguac.la '/usr/local/lib'
 +libtool: install: /usr/bin/install -c .libs/libguac.so.17.0.0 /usr/local/lib/libguac.so.17.0.0
 +libtool: install: (cd /usr/local/lib && { ln -s -f libguac.so.17.0.0 libguac.so.17 || { rm -f libguac.so.17 && ln -s libguac.so.17.0.0 libguac.so.17; }; })
 +libtool: install: (cd /usr/local/lib && { ln -s -f libguac.so.17.0.0 libguac.so || { rm -f libguac.so && ln -s libguac.so.17.0.0 libguac.so; }; })
 +libtool: install: /usr/bin/install -c .libs/libguac.lai /usr/local/lib/libguac.la
 +libtool: install: /usr/bin/install -c .libs/libguac.a /usr/local/lib/libguac.a
 +libtool: install: chmod 644 /usr/local/lib/libguac.a
 +libtool: install: ranlib /usr/local/lib/libguac.a
 +libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /usr/local/lib
 +----------------------------------------------------------------------
 +Libraries have been installed in:
 +   /usr/local/lib
 +If you ever happen to want to link against installed libraries
 +in a given directory, LIBDIR, you must either use libtool, and
 +specify the full pathname of the library, or use the '-LLIBDIR'
 +flag during linking and do at least one of the following:
 +   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
 +     during execution
 +   - add LIBDIR to the 'LD_RUN_PATH' environment variable
 +     during linking
 +   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
 +   - have your system administrator add LIBDIR to '/etc/ld.so.conf'
 +
 +See any operating system documentation about shared libraries for
 +more information, such as the ld(1) and ld.so(8) manual pages.
 +----------------------------------------------------------------------
 + /usr/bin/mkdir -p '/usr/local/include/guacamole'
 + /usr/bin/install -c -m 644 guacamole/audio.h guacamole/audio-fntypes.h guacamole/audio-types.h guacamole/client-constants.h guacamole/client.h guacamole/client-fntypes.h guacamole/client-types.h guacamole/error.h guacamole/error-types.h guacamole/hash.h guacamole/layer.h guacamole/layer-types.h guacamole/object.h guacamole/object-types.h guacamole/parser-constants.h guacamole/parser.h guacamole/parser-types.h guacamole/plugin-constants.h guacamole/plugin.h guacamole/pool.h guacamole/pool-types.h guacamole/protocol.h guacamole/protocol-constants.h guacamole/protocol-types.h guacamole/socket-constants.h guacamole/socket.h guacamole/socket-fntypes.h guacamole/socket-types.h guacamole/stream.h guacamole/stream-types.h guacamole/string.h guacamole/timestamp.h guacamole/timestamp-types.h guacamole/unicode.h guacamole/user.h guacamole/user-constants.h guacamole/user-fntypes.h guacamole/user-types.h guacamole/socket-ssl.h '/usr/local/include/guacamole'
 +make[3] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/libguac »
 +...
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/kubernetes »
 + /usr/bin/mkdir -p '/usr/local/lib'
 + /bin/sh ../../../libtool   --mode=install /usr/bin/install -c   libguac-client-kubernetes.la '/usr/local/lib'
 +libtool: warning: relinking 'libguac-client-kubernetes.la'
 +...
 +make[4] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/rdp »
 + /usr/bin/mkdir -p '/usr/local/lib'
 + /bin/sh ../../../libtool   --mode=install /usr/bin/install -c   libguac-client-rdp.la '/usr/local/lib'
 +libtool: warning: relinking 'libguac-client-rdp.la'
 +...
 + /usr/bin/mkdir -p '/usr/lib64/freerdp2'
 + /bin/sh ../../../libtool   --mode=install /usr/bin/install -c   libguac-common-svc-client.la libguacai-client.la '/usr/lib64/freerdp2'
 +libtool: warning: relinking 'libguac-common-svc-client.la'
 +libtool: install: (cd /opt/guacamole-server-1.1.0/src/protocols/rdp; /bin/sh "/opt/guacamole-server-1.1.0/libtool"  --silent --tag CC --mode=relink gcc -Werror -Wall -Iinclude -I../../../src/libguac -I/usr/include/freerdp2/ -I/usr/include/winpr2 -g -O2 -module -avoid-version -shared -lfreerdp2 -lfreerdp-client2 -lwinpr2 -o libguac-common-svc-client.la -rpath /usr/lib64/freerdp2 plugins/guac-common-svc/libguac_common_svc_client_la-guac-common-svc.lo ../../../src/libguac/libguac.la )
 +libtool: install: /usr/bin/install -c .libs/libguac-common-svc-client.soT /usr/lib64/freerdp2/libguac-common-svc-client.so
 +libtool: install: /usr/bin/install -c .libs/libguac-common-svc-client.lai /usr/lib64/freerdp2/libguac-common-svc-client.la
 +libtool: warning: relinking 'libguacai-client.la'
 +libtool: install: (cd /opt/guacamole-server-1.1.0/src/protocols/rdp; /bin/sh "/opt/guacamole-server-1.1.0/libtool"  --silent --tag CC --mode=relink gcc -Werror -Wall -Iinclude -I../../../src/common -I../../../src/common-ssh -I../../../src/libguac -I/usr/include/freerdp2/ -I/usr/include/winpr2 -g -O2 -module -avoid-version -shared -lpthread -lfreerdp2 -lfreerdp-client2 -lwinpr2 -o libguacai-client.la -rpath /usr/lib64/freerdp2 channels/audio-input/libguacai_client_la-audio-buffer.lo plugins/guacai/libguacai_client_la-guacai-messages.lo plugins/guacai/libguacai_client_la-guacai.lo plugins/libguacai_client_la-ptr-string.lo ../../../src/common/libguac_common.la ../../../src/libguac/libguac.la )
 +libtool: install: /usr/bin/install -c .libs/libguacai-client.soT /usr/lib64/freerdp2/libguacai-client.so
 +libtool: install: /usr/bin/install -c .libs/libguacai-client.lai /usr/lib64/freerdp2/libguacai-client.la
 +libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /usr/lib64/freerdp2
 +----------------------------------------------------------------------
 +Libraries have been installed in:
 +   /usr/lib64/freerdp2
 +...
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/ssh »
 + /usr/bin/mkdir -p '/usr/local/lib'
 + /bin/sh ../../../libtool   --mode=install /usr/bin/install -c   libguac-client-ssh.la '/usr/local/lib'
 +libtool: warning: relinking 'libguac-client-ssh.la'
 +...
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/protocols/vnc »
 + /usr/bin/mkdir -p '/usr/local/lib'
 + /bin/sh ../../../libtool   --mode=install /usr/bin/install -c   libguac-client-vnc.la '/usr/local/lib'
 +libtool: warning: relinking 'libguac-client-vnc.la'
 +...
 +/usr/bin/install -c -m 644 man/guacd.8 '/usr/local/share/man/man8'
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guacd »
 +make[1] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guacd »
 +Making install in src/guacenc
 +make[1] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/guacenc »
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/guacenc »
 + /usr/bin/mkdir -p '/usr/local/bin'
 +  /bin/sh ../../libtool   --mode=install /usr/bin/install -c guacenc '/usr/local/bin'
 +libtool: install: /usr/bin/install -c .libs/guacenc /usr/local/bin/guacenc
 + /usr/bin/mkdir -p '/usr/local/share/man/man1'
 + /usr/bin/install -c -m 644 man/guacenc.1 '/usr/local/share/man/man1'
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guacenc »
 +make[1] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guacenc »
 +Making install in src/guaclog
 +make[1] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/guaclog »
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0/src/guaclog »
 + /usr/bin/mkdir -p '/usr/local/bin'
 +  /bin/sh ../../libtool   --mode=install /usr/bin/install -c guaclog '/usr/local/bin'
 +libtool: install: /usr/bin/install -c .libs/guaclog /usr/local/bin/guaclog
 + /usr/bin/mkdir -p '/usr/local/share/man/man1'
 + /usr/bin/install -c -m 644 man/guaclog.1 '/usr/local/share/man/man1'
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guaclog »
 +make[1] : on quitte le répertoire « /opt/guacamole-server-1.1.0/src/guaclog »
 +make[1] : on entre dans le répertoire « /opt/guacamole-server-1.1.0 »
 +make[2] : on entre dans le répertoire « /opt/guacamole-server-1.1.0 »
 +make[2]: rien à faire pour « install-exec-am ».
 +make[2]: rien à faire pour « install-data-am ».
 +make[2] : on quitte le répertoire « /opt/guacamole-server-1.1.0 »
 +make[1] : on quitte le répertoire « /opt/guacamole-server-1.1.0 »
 +</code>
 +
 +<code>
 +[root@rlab guacamole-server-1.1.0]# ldconfig && cd ~
 +[root@rlab ~]# 
 +</code>
 +
 +==== webapp tomcat ====
 +
 +recuperation de Guacamole Web Application (.war) a mettre dans l'aborescence tomcat 
 +
 +<code>
 +[root@rlab ~]# wget https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-1.1.0.war
 +[root@rlab ~]# cp guacamole-1.1.0.war /opt/tomcat/webapps/
 +[root@rlab ~]# ls /opt/tomcat/webapps/
 +docs  examples  guacamole-1.1.0  guacamole-1.1.0.war  host-manager  manager  ROOT
 +</code>
 +
 +==== guacd ====
 +
 +demarer (manuellement pour l'instant) le daemon guacd 
 +
 +<code>
 +[root@rlab ~]# /etc/init.d/guacd start
 +Starting guacd: guacd[27813]: INFO: Guacamole proxy daemon (guacd) version 1.1.0 started
 +SUCCESS
 +[root@rlab ~]# /etc/init.d/guacd status
 +guacd is running with PID=27815.
 +
 +[root@rlab ~]# ps auwx |grep guacd
 +root     27815  0.0  0.6  85292 10028 ?        S    14:36   0:00 /usr/local/sbin/guacd -p /var/run/guacd.pid
 +
 +</code>
 +
 +==== reverse-proxy ====
 +
 +le support de proxy-ajp n'est pas compatible avec les websocket guacamole (force un retour a http) et apache 2.4.3 ne support pas la method HTTP PATCH ce qui rend inoperant l'interface de management de guacamole , on va donc utiliser le mod_proxy sous apache . 
 +
 +avant tout s'assurer de mettre URIEncoding="UTF-8" dans la configuration du serveur tomcat afin d'assurer le transit de noms d'application et/ou pearametre contenant des carateres non-latin, cyrilic etc ... 
 +
 +<code>
 +[root@rlab conf]# vim /opt/tomcat/conf/server.xml 
 +
 + <Connector port="8080" protocol="HTTP/1.1"
 +               connectionTimeout="20000"
 +               URIEncoding="UTF-8"
 +               redirectPort="8443" />
 +</code>
 +
 +=== remote IP ===
 +
 +par defaut quand tomcat est derriere un proxy , il voit les requetes clientes venir de l'IP du proxy, in convient pour les logs et potentiels controles d'acces a base d'IP de transporter par le proxy le vrai IP source du client, cela se fait avec le header HTTP X-Forwarded-For en configurant le Valve RemoteIpValve dans server.xml 
 +
 +<code>
 +[root@rlab conf]# vim /opt/tomcat/conf/server.xml 
 +
 + <!--  https://guacamole.apache.org/doc/gug/proxying-guacamole.html
 +                Configuring Tomcat to pass through the remote IP address provided by the reverse proxy in the X-Forwarded-For header
 +                requires the configuration of what Tomcat calls a Valve. 
 +                In this case, it is the RemoteIpValve and is configured in the conf/server.xml file, in the <Host> section
 +        -->
 +         <Valve className="org.apache.catalina.valves.RemoteIpValve"
 +               internalProxies="127.0.0.1"
 +               remoteIpHeader="x-forwarded-for"
 +               remoteIpProxiesHeader="x-forwarded-by"
 +               protocolHeader="x-forwarded-proto" />
 +
 +      </Host>
 +</code>
 +
 +
 +=== apache proxy ===
 +
 +les directives ProxyPass et ProxyPassReverse fournis par le mod_proxy assure le lien de proxy entre apache et tomcat
 +
 +<code>
 +[root@rlab conf.d]# vim /etc/httpd/conf.d/ssl.conf 
 +
 +#https://guacamole.apache.org/doc/gug/proxying-guacamole.html
 +<Location /guacamole/>
 +    Order allow,deny
 +    Allow from all
 +    ProxyPass http://127.0.0.1:8080/guacamole-1.1.0/ flushpackets=on
 +    ProxyPassReverse http://127.0.0.1:8080/guacamole-1.1.0/
 +    ProxyPassReverseCookiePath /guacamole-1.1.0/ /guacamole/ #because location diffrences from apache to tomcat, cookies need to match
 +</Location>
 +</code>
 +
 +=== apache log ===
 +
 +il est inutile de loger toutes les requetes http de courte durée du aux steams dans le http-tunnel (si pas de websockets) 
 +
 +<code>
 +[root@rlab conf.d]# vim /etc/httpd/conf.d/ssl.conf
 +
 +<VirtualHost _default_:443>
 +
 +
 +SetEnvIf Request_URI "^/guacamole/tunnel" dontlog
 +CustomLog  /var/log/httpd/guac.log common env=!dontlog
 +</code>
 +
 +
 +==== database ====
 +
 +afin de permettre a plusieurs utilisateurs de se conencter et enregistrer des preferences il convient de definir une database
 +
 +=== arborescence extension ===
 +
 +la database ou autre modules d'authentification (ldap, cas ) sont fournit sous forme de module quil faut deployer dans une arborescence specifique que nous créons dans /usr/share/tomcat/.guacamole
 +
 +<code>
 +[root@rlab etc]# mkdir -p /usr/share/tomcat/.guacamole/{extensions,lib}
 +</code>
 +
 +=== modules ===
 +
 +recuperation et deploiement des modules pour la database 
 +
 +<code>
 +[root@rlab ~]# wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.20-1.el8.noarch.rpm
 +[root@rlab ~]# yum install mysql-connector-java-8.0.20-1.el8.noarch.rpm
 +[root@rlab ~]# cp /usr/share/java/mysql-connector-java.jar /usr/share/tomcat/.guacamole/lib/
 +</code>
 +
 +<code>
 +[root@rlab ~]# wget https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-jdbc-1.1.0.tar.gz
 +[root@rlab ~]# tar xvfz guacamole-auth-jdbc-1.1.0.tar.gz ^C
 +[root@rlab ~]# cp guacamole-auth-jdbc-1.1.0/mysql/guacamole-auth-jdbc-mysql-1.1.0.jar /usr/share/tomcat/.guacamole/extensions/
 +</code>
 +
 +==== mariaDB ====
 +
 +apres installation de mariadb-server , on va le securiser 
 +
 +<code>
 +[root@rlab ~]# systemctl start mariadb.service 
 +[root@rlab ~]# mysql_secure_installation 
 +Set root password? [Y/n] Y
 +New password: 
 +Re-enter new password: Secret Pa U g... S.. ip5 d Da
 +Password updated successfully!
 +Reloading privilege tables..
 + ... Success!
 +Remove anonymous users? [Y/n] y
 + ... Success!
 +Normally, root should only be allowed to connect from 'localhost' This
 +ensures that someone cannot guess at the root password from the network.
 +Disallow root login remotely? [Y/n] y
 + ... Success!
 +Remove test database and access to it? [Y/n] y
 + - Dropping test database...
 + ... Success!
 + - Removing privileges on test database...
 + ... Success!
 +Reload privilege tables now? [Y/n] y
 +Thanks for using MariaDB!
 +</code>
 +
 +<code>
 +[root@rlab ~]# mysql -u root -p
 +
 +MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS guacdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
 +Query OK, 1 row affected (0.000 sec)
 +MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE ON guacdb.* TO 'guacuser'@'localhost' IDENTIFIED BY 'secretUg...G...d' WITH GRANT OPTION;
 +Query OK, 0 rows affected (0.000 sec)
 +MariaDB [(none)]> flush privileges;
 +Query OK, 0 rows affected (0.000 sec)
 +MariaDB [(none)]> quit
 +</code>
 +
 +creation des table et user : 
 +
 +<code>
 +[root@rlab ~]# cat /root/guacamole-auth-jdbc-1.1.0/mysql/schema/001-create-schema.sql | mysql -u root -p guacdb
 +[root@rlab ~]# cat /root/guacamole-auth-jdbc-1.1.0/mysql/schema/002-create-admin-user.sql | mysql -u root -p guacdb
 +</code>
 +
 +=== configuration / properties ===
 +
 +<code>
 +[root@rlab ~]# mkdir -p /etc/guacamole/ && vi /etc/guacamole/guacamole.properties
 +[root@rlab ~]# cat /etc/guacamole/guacamole.properties
 +# MySQL properties
 +mysql-hostname: localhost
 +mysql-port: 3306
 +mysql-database: guacdb
 +mysql-username: guacuser
 +mysql-password: secret
 +#Additional settings
 +mysql-default-max-connections-per-user: 0
 +mysql-default-max-group-connections-per-user: 0
 +</code>
 +
 +=== permissions ===
 +
 +<code>
 +[root@rlab ~]# chmod 0400 /etc/guacamole/guacamole.properties
 +[root@rlab ~]# chown tomcat:tomcat /etc/guacamole/guacamole.properties
 +[root@rlab ~]# ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat/.guacamole/
 +
 +[root@rlab ~]# chown tomcat:tomcat /opt/tomcat/webapps/guacamole-1.1.0.war 
 +</code>
 +
 +==== GUACAMOLE_HOME ====
 +
 +Tres imprtant pour la configurations des plugins/modules , il faut s'assurer que tomcat charge bien les paremtrages definit dans guacamole.properties. ceci se fait grace à la variable  GUACAMOLE_HOME qui est fixé par defaut a /etc/guacamole/ 
 +
 +comme ci-dessus nus avons definit les propriété dans /usr/share/tomcat/.guacamole/ avec un jeux de liens, et que le homedir du user tomcat dans mon installation est ici dans /opt/tomcat, il convient egalement de créé un lien depuis /opt/tomcat/.guacamole vers  /usr/share/tomcat/.guacamole
 +
 +cf https://guacamole.apache.org/doc/gug/configuring-guacamole.html Overriding GUACAMOLE_HOME => Creating a directory named .guacamole, within the home directory of the user running the servlet container. This directory will automatically be used for GUACAMOLE_HOME if it exists.
 +
 +
 +<code>
 +[root@rlab /opt/tomcat]# ln -s /usr/share/tomcat/.guacamole .guacamole
 +</code>
 +
 +Apres redemarrage de tomcat , on peut enfin se connecter avec la compte guacadmin (cf fichier d'import sql : 002-create-admin-user.sql) et ainsi changer le password de cet administrateur
 +
 +https://rlab.domain.top/guacamole/#/settings/preferences
 +
 +
 +
 +
docpublic/systemes/remotelabsguacamole.1592217490.txt.gz · Last modified: 2020/06/15 10:38 by procacci@tem-tsp.eu
[unknown link type]Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0