:::

社群標註系統系統支援合作學習的個案研究 / A case study of using a social annotation tool to support collaboratively learning

布丁布丁吃布丁

社群標註系統系統支援合作學習的個案研究 / A case study of using a social annotation tool to support collaboratively learning

image

這份研究論文是描述作者Fei Gao使用標註工具Diigo來進行閱讀教學,並用質性分析的方式來歸納社群標註系統的優勢。我對這篇研究的分析方式比較有興趣,所以做了一份投影片與大家分享我整理的重點。

This research describe author, Fei Gao applied a webpage annotation tool -- Diigo to students' article reading. Author used qualitive analysis to discover students' reading behavior using Diigo. I'm very interested in his analysis. So I made a review slide and share it with others.


書目資料 / Bibliography

Gao, F. (2012). A Case Study of Using a Social Annotation Tool to Support Collaboratively Learning. The Internet and Higher Education. Retrieved from http://www.sciencedirect.com/science/article/pii/S1096751612000802

報告投影片 / Slide

image

這篇算是單組實驗研究法,沒有對照組,所以很難說使用Diigo究竟是好是壞。作者用質性研究的方式針對標註的類型、數位合作學習的互動方式、回應的對象等角度來分析學習的過程,並在事後以問卷和訪談來取得學生的回饋。最後作者歸納社群標註工具不足的功能,並建議如何應用社群標註工具來進行閱讀教學。最後的建議值得納入我的研究背景中。

Diigo跟KALS的不同 / The Difference Between Diigo And KALS

image

之前CSCL & CSPL研討會的時候,主持人質疑我報告的KALS系統,問我為什麼不直接用Diigo就好。

比起我自己做的KALS系統,我得說Diigo是一個很強大的工具,這點倒沒什麼異議。Diigo標註工具各個功能發展的成熟度都比KALS高很多,免費使用也可以用1000個Highlights,社交的功能更是方便。

那麼KALS的價值在哪裡呢?答案很簡單,實際上這是兩個不同出發方向的工具。Diigo是要由使用者自行安裝工具才能使用,而KALS則是由系統管理者提供的標註工具。後者意味著系統管理者對於標註的掌握能力更高,更容易規劃實驗環境以進行研究。而最重要的是,KALS的功能與資料是研究者自己可以掌握的,而Diigo的資料卻不容易取得。


結論:到處都是研究題目 / Conclusion: Research Subjects Everywhere

老實說,Diigo的功能並不是那麼難做,只是沒有做出來而已。這些社交功能都做可以作為研究題目來發展,我正期待著有學弟妹願意投入這個領域,在改善KALS的同時一併完成他們的研究論文吧。

(more...)

蔡今中、陳年興教授研究經驗談 參與心得 / Review of SSCI Journal Editors’ Research Experiences Workshop

布丁布丁吃布丁

蔡今中、陳年興教授研究經驗談 參與心得 / Review of SSCI Journal Editors’ Research Experiences Workshop

image

2013年3月9日靜宜大學舉辦了一場「與SSCI國際期刊主編探討研究設計及論文撰稿工作坊」,邀請Computers & Education (數位學習國際排名第一名的SSCI期刊)的主編蔡今中教授與Educational Technology & Society (SSCI期刊)的主編陳年興教授來為我們傳授撰寫研究論文的秘訣。我把兩位老師的報告整理摘要之後做成投影片跟大家分享。

I had participated a workshop in Providence University at May 9th, 2013. In this workshop, Chief editors of SSCI journals, Prof. Chin-Chung Tsai (Computers & Education) and Prof. Nian-Shing Chen (Educational Technology & Society) shared their research experiences. I organize the content of their sharing and make a review slide to report at meeting. Following is my review.


工作坊參與心得投影片 / Workshop Review Slide

心得大綱 / Review Outline

本投影片談論主題包括:

  • 題目創意發想:要如何分辨出普通的題目(豆腐)與好的題目(魚翅)?
  • 論文寫作架構:論文撰寫的順序為何?各個章節寫法有什麼要注意的地方呢?
  • 寫作技巧:要怎麼寫出好文章?如何掌握一致性?引用合適的文獻?我額外補充各章節應該使用的英文時態。

最後陳年興老師分享了他如何經營他的實驗室,我加上一些我的看法之後,再寫了兩個主題:

  • 團隊合作:學生跟老師修改論文呢?
  • 研究團隊知識管理:實驗室的知識管理系統應該如何架構?我一併帶入電子郵件典藏的重要性,引發我在另一堂課期末報告題目的發想。

結論:愛上寫作、樂於分享 / Conclusion: Love Writing, Enjoy Sharing

常常有人在諷刺學術論文的寫作就是天下一大抄,我想這可能只是看到了表面而不知所以然。儘管都是由文字堆砌而成的文章,但是學術論文有著大家習以為常的一定架構,然而各位作者再從這個架構中去跟大家分享你研究的成果與發現。

是的,學術論文有著一定的寫法,特別是研究方法跟研究結果的描述方式,大家在各自領域都已經發展出固定的寫法。反而你不照這方法來撰寫,讀者還會覺得難以閱讀呢。

了解學術論文的寫作方式,不僅僅是對於寫作有幫助,也能夠讓你在閱讀論文時能夠更快了解作者想要表達的內容。

但是光有技巧還不夠,最重要的事情,是要花時間去寫。寫作不是一天兩天就能夠解決的事情,需要的是養成「寫作的習慣」。陳年興教授建議不論日常業務再忙,大家還是一定要擠出一些時間來寫作。而投稿的目標可以設定為有著投稿期限的國際研討會,更能夠督促論文寫作的進度。

雖然我現在只是寫寫自己看的blog,但有朝一日,我也希望能跟大家站上相同的舞台,把自己的研究成果分享給這個世界呢。加油吧。

(more...)

老人敘說導讀:崛起的老奶奶與敘說的漣漪效應 / Storying Later Life: The Raging Grannies & The Ripple Effect

布丁布丁吃布丁

老人敘說導讀:崛起的老奶奶與敘說的漣漪效應 / Storying Later Life: The Raging Grannies & The Ripple Effect

bookcover-storying-later-life

這學期的質性研究課程專題是以老人敘說為主題。主要授課的課本為這本「Storying Later Life」。學期中我們分配書中章節來進行導讀,並於學期中實際去進行老人訪談。以下是我在這本書中主要負責的「崛起的老奶奶」與「敘說的漣漪效應」兩個章節導讀資料。

I took a course "qualitative research project" this semester. Course topic is Older Narrative. The textbook of this course is "Storying Later Life". I introduce two chapters of this book: "The Raging Grannies" and "The Ripple Effect". Following is my report.


書目資料 / Bibliography

Storying Later Life: Issues, Investigations, and Interventions in Narrative Gerontology

Kenyon, G., Bohlmeijer, E., & Randall, W. L. (2010). Storying Later Life: Issues, Investigations, and Interventions in Narrative Gerontology: Issues, Investigations, and Interventions in Narrative Gerontology. Oxford University Press, USA. Retrieved from http://www.google.com/books?hl=zh-TW&lr=&id=iscrccRn764C&oi=fnd&pg=PR5&dq=Storying+Later+Life:+Issues,+Investigations,+and+Interventions+in+Narrative+Gerontology&ots=o4JBV2If8z&sig=bITyMef6e0uXndLdCO2qYro6ZZE


導讀文章 / Review

崛起的老奶奶 / Chapter 9. The Raging Grannies: Narrative Construction of Gender and Aging

這是一個調查研究,用團體焦點訪談法來探討一群特殊老奶奶。這群老奶奶被成為The Raging Grannies,她們熱愛社會運動、用音樂與戲劇表達她們的理念,她們有著與社會對老奶奶的傳統刻板印象相當不同的表現。她們到底是怎麼想的?她們如何重新詮釋「老」的定義?這是一個用不同角度來看待老人的有趣研究。

敘說的漣漪效應 / Chapter 22 The Ripple Effect: A Story of the Transformational Nature Of Narrative Care

image

這是一個行動研究的結果報告。研究者在老人安養院中舉辦了老人敘說訪談的活動,鼓勵院方工作人員以較為有系統的方式深入訪談院內居民的生命故事,然後舉辦成果發表活動跟所有人共享。這樣的活動促進了院內居民、家人、安養院工作人員的彼此交流,敘說讓社群互動更具有意義。


結論:敘說的重要性 / Conclusion: The Power of Narrative

我是個會記錄生活的人,但卻很少用言語來詮釋自己記錄的生活。這堂課教給我很多事情,像是用不同角度來看待「老人」以及周遭的概念,以及讓受訪者以自己的角度來重新詮釋生命故事的「敘說」。老師的教導方式相當有深度,促使我開始思考以前未曾想過的事情。

圖書館員時常會覺得原始資料勝於一切,但是資料只是普通的資料,人是如何看待這些資料才是重點。敘事讓我們重新思考原始資料,或說是自己的生活對於自身的意義,讓原始資料賦予了更多價值。這也是很有趣的研究方向喔。

(more...)

書目管理工具Zotero介紹 / Introduce Zotero

布丁布丁吃布丁

書目管理工具Zotero介紹 / Introduce Zotero

image

Zotero是一個整理文獻的好工具。它不僅可供人免費使用,也可以讓人直接從網頁匯入書目資料,而且中文支援程度也比EndNote好上很多。昨天實驗室的Meeting時我又把Zotero拿出來報告,希望可以給剛踏入研究領域的同學們介紹一個好用的研究工具。

Zotero is a powerful tool for collecting literature. Zotero could import bibliographies from web browser, better Chinese support, and it’s free for use. I introduce Zotero at meeting yesterday. I wish Zotero could help newbies to get better research.


投影片 / Slide

Zotero操作方式 / Usage

image

Zotero的操作方式大致上可分成七個步驟:

  1. 開啟瀏覽器:基本上可以用Firefox來瀏覽。你也可以用Google Chrome或是Safari,但需要額外安裝Zotero Connector
  2. 資料庫找到文獻:找期刊用Google Scholar,找書本用WorldCat,找百科用Wikipedia,這些網站都能夠直接把書目資料匯入Zotero。中文網站在安裝轉譯器之後也能夠直接匯入,例如博碩士論文加值系統CEPS
  3. 匯入書目到Zotero:除了網頁匯入之外,你也可以用EndNote使用的RIS書目檔案來匯入到Zotero,或是乾脆手動建立。
  4. 下載文獻全文PDF檔案與網頁內容
  5. 匯入文獻檔案到Zotero:一筆書目底下可以擺放許多檔案,方便關連書目與檔案之間的關係。
  6. 在Zotero中整理、閱讀:利用收集分類、標籤與筆記等功能來整你的文獻。
  7. 在報告中引用文獻:可以跟Microsoft Word或是LibreOffice整合,需要額外安裝擴充工具。匯出的格式除了內建的APA跟Chicago之外,在安裝其他引文格式之後也可以匯出中文APA,並同時呈現中文與英文的參考文獻

功能比較 / Features Compare

我把Zotero跟傳統用資料夾分類文件與很流行的EndNote做個簡單的比較,你可以看到Zotero其實並不輸給EndNote,而且還是免費的。

  資料夾 EndNote Zotero
儲存書目 難以格式化 手動建立
RIS檔案匯入
中文支援差
手動建立
RIS檔案匯入
網頁匯入
中文支援佳
保存檔案 難以建立檔案之間的關聯 可,還可以保存文獻的網頁
全文檢索 不可
整理方式 資料夾 分類、筆記 收集(=分類)、筆記、標籤
建立引文 不可 可,可擴充引文格式。國內知名度高,許多圖書館致力於這塊。 可,可擴充引文格式。
作業系統 不限制 Windows, Mac Windows, Mac, Linux
費用 免費 收費 免費

結語:Zotero才是伴你長久的研究工具 / Conclusion: Zotero could help your research for long-term

有些人在做研究時使用資料夾來整理散亂的文獻,要在文章中引用文獻時又得跟APA與Chicago等引文格式奮鬥。整理文獻、引用文獻等這種瑣碎的事情,我建議是仰賴Zotero這種書目管理工具。把心力放在你的研究本身,而不是這些機械性的瑣碎工作。

國內知名的書目管理工具EndNote廣受大家支持,也有許多圖書館與研究者個人不斷為EndNote開發擴充功能。但是,別忘了EndNote是收費軟體。我覺得花心力去推廣EndNote、去幫EndNote撰寫擴充功能,反而是變相幫EndNote打廣告、把其他人拖入了有錢人才能玩得起的付費地獄。

我們在大學或機構中進行研究,有錢的大學買得起EndNote,但不代表所有人都有能力負擔得起EndNote。為了長遠利益著想,我們更應該支持基本使用免費的Zotero。介紹Zotero並幫它撰寫擴充的網頁轉譯器與引文格式,我就能造福更多經費不足的研究者。如果大家能夠一起來撰寫Zotero的擴充功能,讓更多中文資料庫的網頁能夠匯入Zotero,或是匯出更正確的中文引文格式,那麼我相信Zotero應該是能夠長久陪伴研究者們的最佳研究工具。

(more...)

Proxmox VE 3安裝與建立OpenVZ虛擬機器 / Proxmox VE 3 Installation and Setup OpenVZ Container

Proxmox VE 3安裝與建立OpenVZ虛擬機器 / Proxmox VE 3 Installation and Setup OpenVZ Container

proxmox-logo

為了推廣Proxmox VE 3OpenVZ虛擬應用樣板的使用,這篇以圖文解說來教大家安裝Proxmox VE 3以及在Proxmox VE 3裡面建立OpenVZ虛擬機器。

To promote Proxmox VE 3 and OpenVZ virtual appliance template technology, I write this guide article to teach you install Proxmox VE 3 and show you how to use Proxmox VE 3 to create OpenVZ container (virtual machine).


技術簡介 / Introduction

Proxmox VE

Proxmox VE是Proxmox公司推出的開放原始碼虛擬機器管理系統,目前已經推出到第三版,叫做Proxmox VE3。

Proxmox VE 3是相當容易安裝與使用的虛擬機器管理系統。他能結合OpenVZ與KVM兩種技術提供IaaS層級的雲端服務。而且是開放原始碼軟體,我們可以自由下載與使用。

OpenVZ與虛擬應用樣板 / OpenVZ & Virtual Appliance Template

OpenVZ是相當成熟的虛擬化技術,架設Linux網站的效率非常高。用OpenVZ通常是架設網站伺服器。網路上提供了相當多的樣板可以下載、安裝,一個樣板就是一個完整的網站服務,例如DrupalJoomla。你只要下載樣板、建立虛擬機器、設定網路、開機,用瀏覽器打開該虛擬機器的位置,一個完整的服務就這樣建好了。

以我的經驗,一台普通的伺服器可以架設20台以上的OpenVZ,全部都能正常提供服務。相較之下,以KVM技術來架設的虛擬機器最多大概不能超過3台。

OpenVZ跟現在主流的KVM、VMware等技術不同,只能虛擬化Linux,也不能相容大多雲端平台,只能在少數雲端平台中架設,例如這次要介紹的Proxmox。

以下就教大家如何建立運行OpenVZ所需要的雲端平台Proxmox VE,以及用OpenVZ來建立虛擬機器吧。


安裝環境 / Installation Environment

2013-07-14_205049

安裝Proxmox VE 3的硬體環境建議為:

  • CPU:最好是64位元架構。雖然32位元仍可以正常運作。如果CPU支援虛擬化指令集,例如Intel VT-x,那就可以用KVM虛擬機器。但是OpenVZ不管CPU有沒有支援虛擬化指令集都可以使用。
  • 記憶體 RAM:建議大於4GB,至少也要512MB。
  • 硬碟空間:建議大於60GB,至少也要4GB。
  • 網路:要配給Proxmox VE一個IP,底下的虛擬機器也建議擁有獨立IP。(如果IP不夠,可以嘗試架設虛擬區域網路,請看我之前寫的介紹

如果在實體伺服器上安裝Proxmox VE 3,建議盡量以以上參數為主喔。

使用VirtualBox安裝Proxmox VE 3 / Install Proxmox VE 3 on VirtualBox

你也可以用VirtualBox來架設Proxmox VE,提供自己測試使用。以下我就是用VirtualBox來架設Proxmox VE,配置參數為:

  • 作業系統:Debian (64 bit)
  • 網路Host-only 「僅限主機」介面卡。這是重點,Proxmox VE在Host-only底下預設IP就會是192.168.56.101。
  • 硬碟:2TB
  • 掛載光碟proxmox-ve_2.3-ad9c5c05-30.iso (MEGA備份)

然後接著把虛擬機器開機,就開始來安裝Proxmox VE 3囉。

Step 1. 安裝Proxmox VE 3 / Install Proxmox VE 3

開機之後,虛擬機器會因為光碟引導的關係,出現以下Proxmox安裝歡迎畫面。

2013-07-14_012547

按下Enter之後進入下一個畫面。一開始會因為Proxmox VE要從DHCP抓取IP的關係,需要稍微等待一下。然後接著會顯示授權條款,按Next繼續。

2013-07-14_012737

然後接著會顯示Proxmox VE的說明,按Next繼續。

2013-07-14_012812

然後接著要輸入鍵盤配置。在Country輸入Taiwan,Proxmox VE會自動辨識我們的鍵盤是U.S. English。按Next繼續。

2013-07-14_012851

接下來要輸入密碼跟E-Mail。密碼兩次都要相同,在此以「password」為例子作為Proxmox VE的密碼。E-Mail是給系統通知時寄送通知管理者的信箱位置。輸入完畢後按Next繼續。

2013-07-14_013320

接下來設定網路。Hostname (FQDN)必須是完整的網址,如「promxox.demo.com」。沒有在DNS上正式申請也無所謂,主要是辨識機器之用。下面是網路的設定,這是由DHCP抓取而來的設定。請在這裡就確定Proxmox VE的網路位置,不然之後很難修改。設定完畢之後按Next繼續。

2013-07-14_013412

接著開始安裝,大概等個30分鐘。

2013-07-14_013423

安裝完成,按Reboot重新啟動。重新啟動之後記得要把Proxmox VE的光碟拿掉喔。

2013-07-14_101925

重新啟動之後就會看到Proxmox VE的指令列端介面。至此為止Proxmox VE安裝就算完成囉。

2013-07-14_102048

Step 2. 進入Promox VE網頁管理介面 / Proxmox VE Central Web-base Management

Proxmox VE是沒有桌面端操控介面,大部分操作是透過網頁管理介面來進行。你看到指令列端的歡迎訊息寫著「https://192.168.56.101:8006」就是它的網頁管理介面的位置。以下操作都是在網頁管理介面中進行。我是使用Firefox 22.0來開啟Proxmox VE 3的網頁管理介面。

image

開啟網址:「https://192.168.56.101:8006」(注意是https,不是http)之後,你會先看到「這個連線未受信任」的訊息。這是因為Proxmox VE使用未受認證的SSL來連線。你可以花錢購買一個SSL認證來讓Proxmox VE連線狀況正常,不過通常我們會讓Firefox把它加入安全例外。

作法如下圖,步驟如下:

  1. 我了解此安全風險
  2. 新增例外網站
  3. 確認安全例外

2013-07-14_102704

接著進入Proxmox VE 3的網頁管理介面。登入畫面要你輸入帳號密碼。預設帳號密碼如下:

  • User name: root
  • Password: password (就是上面安裝Proxmox VE時要你輸入的密碼)

2013-07-14_102734

接著會正式進入到Proxmox VE網頁管理介面,這樣就可以進行虛擬機器的建立、管理等囉。

2013-07-14_102745

Step 3. 上傳虛擬應用樣板 / Upload Virtual Appliance Template

要用OpenVZ建立虛擬機器,必須要從虛擬應用樣板開始著手。請先從以下網址先下載你需要的樣板吧:

以下介紹是用Drupal的虛擬應用樣板debian-6.0-drupal_6.26-2_i386.tar.gz為例子介紹。

首先是在Proxmox VE的網頁管理介面中,從左邊的Server View裡找到local (proxmox)這個本機節點(因為Proxmox VE可以串連很多台Proxmox VE做集叢式管理,所以未來還可以加入其他節點),然後選擇標籤「Content」,再按下面的「Upload」開啟上傳對話視窗。

2013-07-14_102925

先選擇上傳檔案類型為「OpenVZ template」,也就是OpenVZ的虛擬應用樣板。再來選擇剛剛你下載的樣板檔案debian-6.0-drupal_6.26-2_i386.tar.gz,然後按下Upload。

image

上傳完成之後,Content裡面就有一個樣板了。確認樣板存在後,我們就可以來建立OpenVZ的虛擬機器囉。

Step 4. 建立OpenVZ虛擬機器 / Create OpenVZ Container (Virtual Machine)

OpenVZ的虛擬機器叫做Container,簡稱CT。有了虛擬應用樣板之後,你可以在Proxmox VE的網頁管理介面右上角的「Create CT」來建立OpenVZ的虛擬機器。

2013-07-14_210505

建立步驟是以精靈的方式一一跟你確認虛擬機器的參數。

第一步 General:主要要確認Hostname(主機名稱)與Password。主機名稱我輸入drupal,表示這是一個專門運作Drupal系統的虛擬機器。密碼我設為「password」。然後按Next進入下一步。

2013-07-14_210604

第二步 Template:選擇剛剛上傳的虛擬應用樣板debian-6.0-drupal_6.26-2_i386.tar.gz吧。按Next進入下一步。

2013-07-14_210641

第三步 Resources:此處設定記憶體、硬碟大小與CPU用量。

  • 記憶體:Memory是記憶體、Swap是以硬碟模擬的記憶體,在Linux中兩個參數最好相等。OpenVZ技術的記憶體是採共享的機制,因此上限只要不要超過實體機器記憶體的數量就可以了。
  • 硬碟:Disk size (GB),以GB為單位。用多少就是多少,沒有KVM或VMware那種動態硬碟,越用會讓硬碟越來越大的問題。
  • CPUs:使用CPU的額度,多核心CPU中才會去設定。

對Durpal來說,除了硬碟可以考慮設置大一點之外,其他都用預設參數即可。設定好之後按Next進入下一步。

2013-07-14_210654

第四步 Network:請設定固定IP,以Routed mode (venet)網路卡的形式,給予一個固定的IP吧。因為我現在是在VirtualBox的Host-only網路配置下,所以可以給它一個192.168.56.152的IP使用。這個IP非常重要,待會開啟Drupal就要用這個IP來連線喔。設定好之後按Next進入下一步。

2013-07-14_210725

第五步 DNS:設定DNS資訊。沒有特別需要用Domain Name操作什麼的話,此處可以先不設定。這些參數之後還是可以透過Proxmox VE的網頁管理介面來修改,就算設錯也沒關係。在此我就不設定,直接按Next進入下一步。

2013-07-14_210748

最後是確認OpenVZ虛擬機器的資訊,沒問題就按Finish開始建立虛擬機器。

2013-07-14_210757

建立虛擬機器大概不到五分鐘,出現「TASK OK」就算建立完成。

2013-07-14_210843

建立完成之後,你會發現左邊的ServerView多了一台100 (drupal),這就是剛剛建立的OpenVZ虛擬機器。

接著我們要先設定他會在Proxmox VE啟動的時候自動開機。點入100 (druapl)之後,進入Options,在Start at boot那項雙擊兩下滑鼠,編輯該選項。

image

將Start at boot打勾,按OK完成設定。

image

然後我們還要補設定一個網路參數。到Network頁面中,在Add按鈕下新增Network Device (veth)。

image

新增Name為eth0的網路卡。按下Add之後確定。

image

最後按下Start啟動虛擬機器。

image

到此為止,OpenVZ的虛擬機器就建立完成囉。

Setp 5. Drupal安裝與使用 / Drupal Installation & Usage

還記得剛剛建立OpenVZ虛擬機器的時候,我們設定了「192.168.56.152」作為它的IP嗎?一般來說,只要直接開啟這個IP,就能夠順利使用虛擬應用樣板的系統。

不過在使用之前,我們最好還是先閱讀一下Drupal虛擬應用樣板介紹網頁,看看我們還得要做些什麼東西才能使用Drupal。

image

根據Drupal虛擬應用樣板介紹網頁的敘述,接下來還要安裝Drupal的步驟。請用瀏覽器開啟「http://192.168.56.152/install.php

image

進入Drupal的安裝畫面。安裝步驟很容易,我就不講了,可以參考sunchiahom的Drupal 6安裝流程介紹

最後安裝完成之後,就可以直接用 http://192.168.56.152 來連線囉。

image

Step 6. 用指令列操作OpenVZ虛擬機器 / OpenVZ Container Console

Proxmox VE提供了主控台(Console)端的操作介面,讓我們能以指令列操作OpenVZ虛擬機器。如果你不是熟悉Linux的網管人員,可以不需要進入這一步操作。

開啟方式是在該虛擬機器中,按下右上角的Console。

image

接著會跳出一個Console端的視窗。Console是以Java Applet執行,常常會有因為太久沒更新過期而Firefox禁止我們開啟的現象。你可以按左上角的紅色積木來啟用Java。

2013-07-14_203127

啟用之後,Java也會跳出安全警告。按下「繼續」進入Console端。

2013-07-14_203141

以下就是Console端的畫面。登入帳號密碼為:

  • login: root
  • password: password (就是剛剛建立OpenVZ時設定的Password)

2013-07-14_205444


下一步:Proxmox VE結合主流的雲端平台 / Next: Integrate Proxmox VE with Cloud Platform

我上面也有提到,Proxmox VE的OpenVZ虛擬機器跟現在主流的雲端平台,像是Open StackOpen CloudOpen Nebula都不直接相容。Open Nebula可以安裝OpenVZ Plugin,可是手續挺複雜的樣子。

因此在我看來,最簡單的整合方式還是直接以KVM技術架設Proxmox VE,然後用Proxmox VE來管理底下的OpenVZ虛擬機器。概念圖如下:

image

上述架構中,主要是以Ezilla(使用OpenNebula雲端平台)為主的架構,然後之中架設虛擬機器安裝Proxmox VE,再到Proxmox VE中建立OpenVZ虛擬機器。這時Proxmox VE跟OpenVZ虛擬機器都會是列在同一個區域網路,可以經由Ezilla統一管理。但是管理介面就會區隔開來,平時主要是以Ezilla來管理,而要用OpenVZ虛擬機器時,再進到Proxmox VE來管理。

這個方法看起來可行,可是實際上還沒做過。這之間還有很多網路問題,像是Proxmox VE會需要多個連接埠來提供Console端的連線,在上述架構中就會遇到問題。不過Console端其實很少使用,平常都會用直接透過SSH連線操作OpenVZ虛擬機器,所以不用Console端也沒問題。

那剩下就是實作了,希望最近有機會能把它完成。

(more...)

將OpenVZ架設的虛擬機器轉換為虛擬應用樣板的作法 / Package OpenVZ Container to Template

將OpenVZ架設的虛擬機器轉換為虛擬應用樣板的作法 / Package OpenVZ Container to Template

800px-OpenVZ-logo

使用Proxmox VEOpenVZ建立好虛擬機器(Container),並在裡面安裝好必要的服務之後,接著可以把它轉換成虛擬應用樣板(template),方便其他人從樣板建立起一模一樣的虛擬機器。以下這篇我就教大家在Proxmox 1.9版底下將OpenVZ的虛擬機器轉換成虛擬應用樣板的方法。

Once you create a OpenVZ container with a application system in Proxmox VE, you can package the container to a template and distribute it to others for installing and using. I wrote a script to do this job. Following is the usage guide.


背景與動機 / Background

由於Proxmox VE用OpenVZ架設起來的虛擬機器(Container)運作效率高、速度又快,所以後來我很多服務都以OpenVZ建立起來,甚至原本是用KVM架設的服務,後來也一併轉換成OpenVZ,運作效率也比KVM高上許多。

我們這邊時常需要將同樣的系統複製很多份,老師上課之用。原本我也可以用Proxmox VE的匯入與匯出來複製虛擬機器,但那究竟不太方便。我當然還是希望能做到像是Turnkey Linux那樣,把服務都包成一個漂亮的虛擬應用樣板,方便給人下載與安裝。

我之前文章中也想過建立虛擬應用樣板。如果要從實體機器或是其他虛擬機器中建立樣板,的確是不容易。但是如果要從OpenVZ建立好的虛擬機器中建立樣板,那就不難了。只要用tar打包起來,並依照正確的方式命名即可。

這篇就是在講如何從OpenVZ建立的虛擬機器(Container)中打包成虛擬應用樣板(template)。

Proxmox VE準備 / Proxmox VE Preparation

image

要使用OpenVZ,Proxmox VE絕對是目前的首選。這篇的指令也是基於Proxmox VE 3來測試。但是因為Proxmox VE 1跟2的目錄結構都一樣,所以也一樣可以使用這篇文章的教學來製作虛擬應用樣板。至於其他的OpenVZ系統,我就不敢保證了。

因為我們要把既有的虛擬機器轉換成虛擬應用樣板,所以Proxmox VE裡面必須要有一台以OpenVZ架設的虛擬機器。在此我用VMID (虛擬機器的ID編號) 100的ownCloud作為轉換的對象。

image

打包的動作是要用指令列來操作,而且必須要有root權限。我建議你使用Proxmox VE的SSH通訊協定連線操作比較方便。上圖是我使用的是mRemoteNG中的PieTTY來連線。

虛擬機器轉換虛擬應用樣板操作 / Packager Script Usage Guide

登入root之後,請輸入以下指令下載我製作的轉換腳本檔:

然後把該腳本檔加上可以執行的權限:

chmod +x openvz_CT_to_template.sh

再來執行腳本檔:

./openvz_CT_to_template.sh

腳本檔會顯示歡迎訊息,然後提示你輸入OpenVZ虛擬機器的VMID,預設編號為100:

Please enter OpenVZ Container's VMID: [100] 

然後它會檢查你的Proxomx VE有沒有這台虛擬機器,有的話它接著會問你樣板名稱的一些訊息。OpenVZ的樣板是仰賴檔案名稱來辨識訊息,必須要輸入正確的格式,Proxmox VE才能正確地使用樣板。

腳本檔會先問你的作業系統及其版本,例如centos-5、debain-6.0、ubuntu-10.04。預設使用centos-5。注意,裡面要包含「-」。

Please enter template OS (ex: centos-5, debain-6.0, ubuntu-10.04): [centos-5] 

接著會問你樣板的名稱。此處請輸入你的應用系統的名字,例如standard、moodle、dspace-dlll。預設使用custom。注意,裡面不可以包含「_」。

Please enter template name (ex: standard, moodle, dspace-dlll): [custom] 

接著是版本名稱。例如5.6-1、10.04-4。預設使用1.0-0。注意,裡面必須包含「.」跟「-」。

Please enter template version (ex: 5.6-1, 10.04-4): [1.0-0] 

接著問你樣板的架構,例如i386。預設也是用i386。

Please enter template arch. (ex: i386): [i386]

然後最後確定一下要轉換的項目無誤,腳本檔就會開始打包,並存放到Proxmox VE放置樣本檔的目錄中了。

轉換腳本檔 / Packager Script

我已經將轉換腳本檔openvz_CT_to_template.sh上傳到GitHub,這連結中的版本會是最新的。以下是目前腳本檔的內容,你可以從註解來看每一段程式要做的工作:

   1: #!/bin/bash
   2: # Program:
   3: #   For Proxmox VE (1~3). Convert OpenVZ Container to Template
   4: #   在Proxmox VE (1到3版都可以使用)中,將OpenVZ的虛擬機器(Container)轉換成虛擬應用樣板(Template)
   5: # History:
   6: # 2013/07/13    Pulipuli Chen   First release
   7:  
   8: # 歡迎訊息
   9: echo "========================================="
  10: echo "  OpenVZ Container to Template Packager"
  11: echo "========================================="
  12:  
  13: # 宣告目錄參數
  14: container_dir=/var/lib/vz/private/
  15: template_dir=/var/lib/vz/template/cache/
  16: if [ ! -d $container_dir ] || [ ! -d $template_dir ]; then
  17:     echo "This script only for Proxmox VE 1~3"
  18:     echo "http://www.proxmox.com/downloads/category/iso-images-pve"
  19:     echo "Abort"
  20:     exit 0
  21: fi
  22:  
  23: # 請輸入要轉換的VMID
  24: read -p "Please enter OpenVZ container's VMID: [100] " vmid
  25: if [ -z $vmid ]; then
  26:       vmid=100
  27: fi
  28:  
  29: # 回傳訊息,告知使用者要轉換的VMID
  30: echo "You want to package container VMID $vmid to template"
  31:  
  32: # 宣告虛擬機器的目錄
  33: ct_dir=$container_dir/$vmid
  34:  
  35: # 檢查該VMID的虛擬機器是否存在
  36: if [ -d $ct_dir ]; then
  37:  
  38:     # 如果存在的話
  39:     
  40:     # 詢問作業系統與其版本
  41:     read -p "Please enter template's OS and version (ex: centos-5, debain-6.0, ubuntu-10.04): [centos-5] " template_os
  42:     if [ -z $template_os ]; then
  43:       template_os=centos-5
  44:     fi
  45:     until [[ "$template_os" == *"-"* ]]; do
  46:         echo "Template's OS and version should include '-', ex: centos-5, debain-6.0, ubuntu-10.04. "
  47:         read -p "Please enter template's OS and version again : [centos-5]" template_os
  48:         if [ -z $template_os ]; then
  49:           template_os=centos-5
  50:         fi
  51:     done
  52:  
  53:     # 詢問應用系統的名字
  54:     read -p "Please enter template's application name (ex: standard, moodle, dspace-dlll): [custom] " name
  55:     if [ -z $name ]; then
  56:       name=custom
  57:     fi
  58:     until [[ "$name" != *"_"* ]]; do
  59:         echo "Template's application name should NOT include '_', ex: standard, moodle, dspace-dlll."
  60:         read -p "Please enter template's application name again : [custom] " name
  61:         if [ -z $name ]; then
  62:           name=custom
  63:         fi
  64:     done
  65:  
  66:     # 詢問應用系統的版本號
  67:     read -p "Please enter template's application version (ex: 5.6-1, 10.04-4): [1.0-0] " version
  68:     if [ -z $version ]; then
  69:       version=1.0-0
  70:     fi
  71:     until [[ "$version" == *"."*"-"* ]]; do
  72:         echo "Template's application version should include '.' and '-', ex: 5.6-1, 10.04-4."
  73:         read -p "Please enter template's application version again : [1.0-0] " version
  74:         if [ -z $version ]; then
  75:           version=1.0-0
  76:         fi
  77:     done
  78:  
  79:     # 詢問樣板的架構
  80:     read -p "Please enter template's architecture (arch.) (ex: i386): [i386] " template_arch
  81:     if [ -z $template_arch ]; then
  82:       template_arch=i386
  83:     fi
  84:  
  85:     template_tar=${template_os}-${name}_${version}_${template_arch}.tar.gz
  86:  
  87:     # 確認轉換項目
  88:     read -p "Do you wish to package container VMID $vmid to template $template_tar? [Y/n] " RESP
  89:     if [ "$RESP" = "n" ]; then
  90:       echo "Abort"
  91:       exit 0
  92:     fi
  93:  
  94:     # 檢查是否有同樣名稱的樣板
  95:     template_path=${template_dir}${template_tar}
  96:     if [ -d $template_path ]; then
  97:         read -p "${template_tar} existed. Do you wish to overwrite it? [Y/n] " overwrite
  98:         if [ "$overwrite" = "n" ]; then
  99:             echo "Abort"
 100:             exit 0
 101:         fi
 102:     fi
 103:  
 104:     # 停止運作中的虛擬機器
 105:     echo "Stop VMID $vmid..."
 106:     vzctl stop $vmid
 107:  
 108:     # 開始進行轉換
 109:     echo "Start to package VMID $vmid to template $template_tar ..."
 110:     cd $ct_dir
 111:     tar -czvf --overwrite ${template_path} ./ 
 112:  
 113:     # 完成訊息
 114:     echo "Package complete!"
 115:     echo "You can use template $template_tar in your Proxmox VE now."
 116:     echo "Template location path is $template_path"
 117: else
 118:  
 119:     # 如果沒有該虛擬機器,則停止腳本檔
 120:     echo "VMID $vmid not exist"
 121:     echo "Abort"
 122: fi

感謝鳥哥的Shell Scripts教學還有Adam Bellaire的萬用字元教學,這次複習了Shell Scripts很多指令,包括read、test判斷式、until,感覺又對Linux了解更多了一點。Linux的Shell Scripts真是強大,好用。


結語:還要加上系統更新功能 / Conclusion: Need System Update Function

系統整個打包成OpenVZ的虛擬應用樣板之後,我們就能夠方便地把完整的系統提供給其他人使用。這時候再加上系統更新功能,讓他能從GitHub下載最新版程式碼到虛擬機器上,再進行編譯、安裝等動作,那麼就能確保使用者手上拿到的虛擬機器會包含目前最新的程式碼。

實際上我已經做了一個DSpace-DLLL的OpenVZ虛擬應用樣板:centos-5-standard_1.0-0-dspace-dlll.tar.gz。樣板檔案有2.2GB之大,但已經比KVM版本的3.69GB還要小很多了。只要用dspace登入後輸入「./update_system.sh」,就會自動從GitHub下載程式碼、編譯並重新啟動系統喔。

我開始感覺到自己也逐漸邁入一個產品發佈的流程中。實在是很有趣。以後也會逐漸朝向把做好的系統打包成OpenVZ,再搭配GitHub更新系統的功能,然後把這樣子完整的虛擬機器發佈給要使用的人。

可是光有OpenVZ虛擬應用樣板還不購,我還還缺乏Proxmox VE的安裝教學。以後有機會再來寫吧。


修改記錄

  • 20130723:將腳本下載網址從https改成http,這樣才能正常下載。而且為文章補上之前忘記加入的類別。
(more...)