CentOS6.3下安裝和配置Guacamole 0.9.9

簡(jiǎn)介

Guacamole是一個(gè)提供遠(yuǎn)程桌面解決方案的開源項(xiàng)目,通過瀏覽器就能操作虛擬機(jī),適用于Chrome、Firefox隘截、IE9+等瀏覽器(瀏覽器需要支持HTML5)。只要在一個(gè)服務(wù)器成功安裝Guancamole汹胃,就可以通過訪問一個(gè)web瀏覽器去操作我們配置好的虛擬機(jī)婶芭。當(dāng)然,作為一個(gè)開源的項(xiàng)目着饥,我們可以對(duì)Guacamole做相應(yīng)的定制修改犀农,使其適配我們的項(xiàng)目需求,比如做成自動(dòng)登錄的宰掉,加上項(xiàng)目權(quán)限驗(yàn)證等呵哨。

logo.png

Guacamole一基于HTML5的遠(yuǎn)程桌面控制框架,性能較高轨奄,官方說接近于原生的VNC孟害,Guacamole不是一個(gè)獨(dú)立的Web應(yīng)用程序,而是由許多部件組成的挪拟。Web應(yīng)用程序?qū)嶋H上是整個(gè)項(xiàng)目里最小最輕量的挨务,大部分的功能依靠Guacamole的底層組件來完成,整個(gè)項(xiàng)目的構(gòu)建如下圖:

圖片一
圖片一

從上圖可以看出玉组,guacamole結(jié)構(gòu)上分為4層谎柄,建議先閱讀下 guacamole實(shí)現(xiàn)結(jié)構(gòu)guacamole協(xié)議,就可以對(duì)Guacamole的架構(gòu)和協(xié)議有個(gè)基本的認(rèn)識(shí)惯雳。

Guacamole程序的流程簡(jiǎn)述如下:用戶通過瀏覽器連接到Guacamole的服務(wù)端朝巫,Guacamole的客戶端是用javascript編寫的,Guacamole Server通過Web容器(比如Tomcat)把服務(wù)提供給用戶吨凑。一旦加載捍歪,客戶端通過http承載著Guacamole自己的定義的協(xié)議與服務(wù)端通信户辱。部署在Guacamole Server這邊的Web應(yīng)用程序,解析到的Guacamole protocal糙臼,就傳給Guacamole的代理guacd庐镐,這個(gè)代理(guacd)實(shí)際上就是解析Guacamole protocal,替用戶連接到遠(yuǎn)程機(jī)器变逃,Guacamole protocal協(xié)議本身以及guacd的存在必逆,實(shí)現(xiàn)了協(xié)議的透明:Guacamole客戶端(瀏覽器運(yùn)行的JS)和Web應(yīng)用程序,都不需要知道遠(yuǎn)程桌面具體用哪個(gè)協(xié)議(VNC,RDP etc)揽乱,分為4個(gè)大的部分:

  • JS (WebSocket/xmlhttprequest + canvas)名眉,普通的用戶看到的部分,使用的HTML5與后臺(tái)進(jìn)行交互凰棉;
  • JavaServlet:處理與用戶的交互损拢,將頁面上的操作請(qǐng)求處理下,再直接與下層的guacd來交互撒犀;
  • guacd, 底層的daemon福压,封裝了各種RDP協(xié)議的中間層,如VNC等或舞;
  • libfreerdp荆姆,libssh等,各種通信協(xié)議映凳,會(huì)被封裝成Guacamole的協(xié)議胆筒;

而關(guān)于Guacamole的協(xié)議 ,JS與JavaServlet诈豌,Servlet與guacd交互仆救,都是采用這種格式。

部署環(huán)境和優(yōu)勢(shì)

  • Guacamole完全基于瀏覽器队询,不必安裝JRE派桩、RDP构诚、VNV等客戶端插件蚌斩,不需要考慮客戶的機(jī)器環(huán)境;
  • Guacamole可以通過一臺(tái)授權(quán)機(jī)器管理多臺(tái)服務(wù)器范嘱,免于多個(gè)管理端登錄送膳;
  • Guacamole可以穿透防火墻,通過一臺(tái)服務(wù)器管理內(nèi)容的其它不對(duì)外提供網(wǎng)絡(luò)服務(wù)的設(shè)備丑蛤;
  • 在云項(xiàng)目中叠聋,我們可以通過數(shù)據(jù)庫或者XML文件,配置KVM虛擬機(jī)的端口受裹,直接通過網(wǎng)頁管理虛擬機(jī)碌补,無需再次驗(yàn)證虏束,直接登錄;
  • Guacamole基于HTML5的遠(yuǎn)程桌面控制框架厦章,性能較高镇匀,官方說接近于原生的VNC,對(duì)于一些臨時(shí)性管理和查看任務(wù)足夠了袜啃;

安裝環(huán)境說明

操作系統(tǒng):CentOS6.3 x86-64
JDK:JDK6
Tomcat:Tomcat7
Guacamole服務(wù)器:guacamole-server-0.9.9.tar.gz
Guacamole客戶端:guacamole-0.9.9.war

安裝JDK和Tomcat

JDK和Tomcat的安裝過程汗侵,這里不再贅述。

安裝guacamole服務(wù)器

1.安裝依賴包

為了保證我們的server正常安裝群发,我們需要先安裝以下依賴:

# 安裝Cairo
yum install -y cairo cairo-devel

# 安裝libpng
yum install -y libpng libpng-devel

# 安裝FreeRDP
yum install -y freerdp freerdp-devel

# 安裝Pango
yum install -y pango pango-devel

# 安裝libssh2
yum install -y libssh2 libssh2-devel

# 安裝libtelnet
yum install -y libtelnet libtelnet-devel

# 安裝libVNCServer
yum install -y libvncserver libvncserver-devel

# 安裝libpulse
yum install -y pulseaudio pulseaudio-libs pulseaudio-libs-devel

# 安裝libssl
yum install -y openssl openssl-devel

# 安裝libvorbis
yum install -y libvorbis libvorbis-devel

# 安裝OSSP UUID
yum install -y uuid uuid-devel

說明:如需連接VNC還需安裝VNC_Server

2.編譯安裝guacamole_server源碼包

接下來編譯下載好的guacamole-server-0.9.9.tar.gz源碼包晰韵,執(zhí)行如下命令:

# 解壓源碼包
tar -xvzf guacamole-server-0.9.9.tar.gz

# 進(jìn)入到解壓目錄下
cd guacamole-server-0.9.9/

# 執(zhí)行configure進(jìn)行腳本配置,并將guacd的啟動(dòng)腳本置于/init.d目錄下
./configure --with-init-dir=/etc/init.d

# 編譯guacamole_server源碼
make

# 安裝創(chuàng)建完的組件
make install

# 更新已安裝庫的系統(tǒng)緩存
ldconfig

3.配置guacamole服務(wù):

# 修改guacd啟動(dòng)腳本的所屬者和所屬群體
chown root.root /etc/init.d/guacd

# 修改guacd啟動(dòng)腳本的權(quán)限
chmod 755 /etc/init.d/guacd

# 增加guacd啟動(dòng)腳本為系統(tǒng)服務(wù) 
chkconfig --add guacd

# 設(shè)置guacd在各執(zhí)行等級(jí)為開啟狀態(tài)
chkconfig guacd on

配置完成后熟妓,以下四條命令用于控制guacd服務(wù):

# 啟動(dòng)guacd服務(wù)
service guacd start 

# 停止guacd服務(wù)
service guacd stop 

# 重啟guacd服務(wù)
service guacd restart

# 查看guacd服務(wù)狀態(tài)
service guacd status 

安裝Guacamole客戶端

1.首先新建配置文件:

# 創(chuàng)建路徑
mkdir /etc/guacamole

# 創(chuàng)建路徑
mkdir /root/.guacamole

# 創(chuàng)建配置文件guacamole.properties
touch /etc/guacamole/guacamole.properties

# 創(chuàng)建配置文件user-mapping.xml
touch /etc/guacamole/user-mapping.xml

# 創(chuàng)建軟連接
ln -s /etc/guacamole/guacamole.properties /root/.guacamole/

2.設(shè)置配置文件內(nèi)容:

guacamole.properties是Guacamole客戶端的一個(gè)主要配置文件雪猪,由此我們可以設(shè)置session超時(shí)、可用語言起愈、host端口浪蹂、port端口、ssl等等告材,在本例中坤次,我們僅添加如下內(nèi)容:

# 配置基本用戶映射
basic-user-mapping: /etc/guacamole/user-mapping.xml

接下來配置user-mapping.xml,該XML文件的根節(jié)點(diǎn)為<user-mapping>斥赋,向其中插入如下內(nèi)容缰猴,每一個(gè)<authorize>節(jié)點(diǎn)為一個(gè)用戶配置,每一個(gè)<connection>節(jié)點(diǎn)為一個(gè)授權(quán)鏈接配置:

    <!-- 每名用戶的配置信息和權(quán)限 -->
    <authorize username="USERNAME" password="PASSWORD">
        <protocol>vnc</protocol>
        <param name="hostname">localhost</param>
        <param name="port">5900</param>
        <param name="password">VNCPASS</param>
    </authorize>

    <!-- 另一個(gè)用戶疤剑,該用戶采用MD5加密 -->
    <authorize 
            username="USERNAME2"
            password="319f4d26e3c536b5dd871bb2c52e3178"
            encoding="md5">

        <!-- 第一個(gè)授權(quán)鏈接 -->
        <connection name="localhost">
            <protocol>ssh</protocol>
            <param name="hostname">localhost</param>
            <param name="port">22</param>
            <param name="password">VNCPASS</param>
        </connection>

        <!-- 第二個(gè)授權(quán)鏈接 -->
        <connection name="otherhost">
            <protocol>vnc</protocol>
            <param name="hostname">otherhost</param>
            <param name="port">5900</param>
            <param name="password">VNCPASS</param>
        </connection>

    </authorize>

配置文件配置好之后滑绒,我們需要修改/etc/profile,向文件內(nèi)末尾追加export GUACAMOLE_HOME=/etc/guacamole隘膘,保存修改后疑故,執(zhí)行source /etc/profile,使其生效弯菊,以保證Guacamole能夠從系統(tǒng)環(huán)境變量中找到guacamole.properties的位置纵势。

驗(yàn)證Guacamole服務(wù)

最后啟動(dòng)tomcat和guacd服務(wù),服務(wù)啟動(dòng)完畢后管钳,我們就可以驗(yàn)證我們的Guacamole服務(wù)了钦铁,在WEB瀏覽器中輸入以下URL:http://服務(wù)IP地址:8080/guacamole/。然后才漆,在登錄頁面中輸入配置好的用戶名/密碼(authorize節(jié)點(diǎn)內(nèi)的用戶名/密碼)即可通過WEB頁面連接至遠(yuǎn)程服務(wù)牛曹,如下圖所示:

登錄頁面.png
主頁面.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市醇滥,隨后出現(xiàn)的幾起案子黎比,更是在濱河造成了極大的恐慌超营,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阅虫,死亡現(xiàn)場(chǎng)離奇詭異糟描,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)书妻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門船响,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人躲履,你說我怎么就攤上這事见间。” “怎么了工猜?”我有些...
    開封第一講書人閱讀 167,755評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵米诉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我篷帅,道長(zhǎng)史侣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評(píng)論 1 296
  • 正文 為了忘掉前任魏身,我火速辦了婚禮惊橱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘箭昵。我一直安慰自己税朴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,526評(píng)論 6 397
  • 文/花漫 我一把揭開白布家制。 她就那樣靜靜地躺著正林,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颤殴。 梳的紋絲不亂的頭發(fā)上觅廓,一...
    開封第一講書人閱讀 52,166評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音涵但,去河邊找鬼杈绸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贤笆,可吹牛的內(nèi)容都是我干的蝇棉。 我是一名探鬼主播讨阻,決...
    沈念sama閱讀 40,768評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼芥永,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了钝吮?” 一聲冷哼從身側(cè)響起埋涧,我...
    開封第一講書人閱讀 39,664評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤板辽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后棘催,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劲弦,經(jīng)...
    沈念sama閱讀 46,205評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,290評(píng)論 3 340
  • 正文 我和宋清朗相戀三年醇坝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了邑跪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,435評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呼猪,死狀恐怖画畅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宋距,我是刑警寧澤轴踱,帶...
    沈念sama閱讀 36,126評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站谚赎,受9級(jí)特大地震影響淫僻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壶唤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,804評(píng)論 3 333
  • 文/蒙蒙 一雳灵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闸盔,春花似錦细办、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至钓觉,卻和暖如春茴肥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荡灾。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工瓤狐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人批幌。 一個(gè)月前我還...
    沈念sama閱讀 48,818評(píng)論 3 376
  • 正文 我出身青樓础锐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親荧缘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子皆警,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,442評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容