企業小組團隊因為執行各種專案任務,需要彼此共享文件和檔案,為此有人使用Email、公用雲端空間,更有公司因而導入價格不低的商用文管系統。其實只要建置以Ubuntu 16.04為基礎的Seafile私有雲端儲存系統,就能夠滿足所有需求,本文將分成上下集進行操作說明。
在行動網路速度加快與行動裝置日新月異的蓬勃發展之下,無論對於個體用戶還是企業組織,平日最需要的就是一個能夠隨時隨地方便進行即時共享的雲端平台,共享訊息與檔案。其中,訊息就像是現今許多人使用的LINE、WeChat、Skype、Facebook等等,而檔案的共享則好比Amazon Cloud Drive、Google Drive、Microsoft OneDrive等等,而今日與大家共享的就是後者的開源解決方案。
儘管現今的雲端儲存空間服務相當多,且大多分成針對個人用戶與企業用戶授權所設計,但其實絕大多數的企業仍不會選擇將原本部署於內部網路的檔案伺服器(尤其是台灣)搬移至上述公有雲的儲存空間服務,來提供廣泛資訊工作者的存取與共享,箇中原因為何?除了安全,還是安全。
與其說將企業網路內敏感的檔案資料放在公有雲端不安全,不如說是不安心吧!畢竟重要的東西不在自己家裡,所能夠控管的程度就相當有限,而且還得處處聽命於公有雲服務的規範。既然如此,那倒不如選擇一個既省錢又實用的私有雲方案,搭建一個屬於企業IT能夠完全掌控的儲存共享平台。
強烈推薦採用開源的Seafile,它是一個提供多國語言介面的雲端儲存系統,非常適合組織內小組團隊進行檔案的集中管理與共享,且支援跨平台的電腦與行動裝置之連線存取,包括Windows、Linux、Android、iPad/iPhone。
在伺服器建置上,Seafile除了支援Windows與Linux外,還增加支援Raspberry Pi專屬的安裝套件。以上無論是伺服端還是用戶端套件,都可以在官方網頁「https://www.seafile.com/en/download/」進行下載。
動手建置Seafile Server for Ubuntu
針對Seafile儲存共享平台的建置,本文將以安裝在64位元的Ubuntu 16.04作業系統上為例進行示範。值得注意的是,Seafile還提供了Community與Professional兩種版本。前者僅提供常用的管理功能,後者則可以滿足有進階整合的IT需求,包括了同步LDAP/Active Directory的使用者群組、整合Office Web App、提供文件全文檢索功能、防毒軟體整合、存取稽核查詢、雙因子身分驗證等等。建議先安裝使用Community版本即可,等到未來確定有上述進階功能的需求時,再直接轉換成Professional版本即可。
開啟Ubuntu桌面的命令提視窗,然後依序執行以下命令參數來完成Seafile檔案目錄的配置:
mkdir lab03 mv seafile-server_* lab03 cd lab03 tar -xzf seafile-server_* mkdir installed mv seafile-server_* installed
其中lab03是可以自行命名的組織名稱,從這個範例中可以查看到本文所下載的6.0.9版本的Seafile Server。若想要查看指定目錄的兩層結構,如圖1所示,只要執行「tree 目錄名稱 -L 2」命令即可。
準備好Seafile Server套件檔案之後,必須在進行Seafile安裝設定前,先行安裝MySQL Server,可執行「sudo apt-get install mysql-server」命令進行安裝,過程中會出現如圖2所示的套件設定視窗,必須設定好一組預設系統管理員root的密碼,並且務必牢記,因為待會兒會使用到這組帳密。
此外,若想一併加裝MySQL的Client套件,只要加入mysql-client敘述即可。接著,執行「systemctl status mysql.service」查看服務狀態檢查MySQL是否已正常啟動。
請注意!可以自由選擇讓Seafile安裝使用MySQL或是SQLite,而網站平台部分,則支援了Nginx與Apache。
接下來,還必須安裝Seafile相關必要套件,那就是Python。如圖3所示,執行以下命令參數,一次完成即可:
apt-get install python2.7 libpy thon2.7 python-setuptools python- imaging python-ldap python-mysqldb python-memcache python-urllib3
在完成安裝MySQL Server與Python套件之後,就可以開始執行Seafile的安裝設定。在前面步驟中所建立的組織目錄下,執行「cd seafile-server-*」命令,切換至Seafile安裝路徑下,然後執行「sudo ./setup-seafile-mysql.sh」命令,如圖4所示,執行後系統將會開始檢查所有必要的套件是否都已經就位,確認無誤後,只要按下〔Enter〕按鍵,就可以開始接下來的設定。
執行之後,必須先設定伺服器名稱以及提供連線的位址,這個網路位址可以IP或是FQDN。然後,自訂預設資料的儲存路徑以及Seafile檔案伺服器服務的連接埠口,建議以上兩項設定都採用預設值即可。
緊接著,完成Seafile資料庫的初始化設定。首先,輸入「1」來選取「Create new ccent/seafile/seahub databases」選項,也就是在MySQL Server中建立Seafile三個所需的資料庫。由於剛剛已在本機安裝MySQL Server,因此採用預設的localhost以及輸入root的帳密即可。
通過root帳密的驗證後,決定是否使用預設將新建的seafile帳戶做為存取上述三種資料庫的帳戶。最後,只要確認三個新資料庫的命名,就能夠看到Seafile Server的完整組態資訊,包括伺服器名稱、伺服器位址、資料存放路徑、檔案伺服器連接埠以及資料庫的設定資訊。如圖5所示,便是成功的執行結果。
完成Seafile安裝設定後,其檔案伺服器與網站的服務會自動啟動,後續如果要重新開機,如圖6所示只要分別手動執行「sudo ./seafile.sh start」及「sudo ./seahub.sh start」命令完成啟動即可。
成功啟動Seafile服務之後,就可以開啟網頁瀏覽器進行連線。如圖7所示,在此頁面的右上方,可以變更顯示語言。值得注意的是,預設Seafile網站服務啟動時,所使用的Port是8000,假設設定的伺服器位址是「seafile.lab03.com」,那麼連線的網址就必須是「http://seafile.lab03.com:8000」。如果希望變更預設啟動的Port,只要開啟其ccnet.conf設定檔,然後修改內容中的SERVICE_URL欄位值即可。
如果在Seafile運作過程中需要重新啟動服務,則執行「sudo ./seafile.sh restart」與「sudo ./seahub.sh restart」命令。萬一發生重新啟動失敗的狀況,也別急著重新開機,只要先執行「pgrep -f seafile-controller」與「pgrep -f "seahub"」命令,查詢它們的執行程序是否還在記憶體中,一旦發現仍在,就只要執行「pkill -f seafile-controller」與「pkill -f "seahu」命令來清除,然後再一次啟動Seafile服務即可。
Seafile Server系統管理
首次以預設的管理員帳戶登入後,先點選位於頁面右上方的人像圖示,然後從下拉選單中點選「System Admin」,來了解一下在目前這個版本中有哪些是與系統管理員有關的功能。
如圖8所示,在「Info」頁面中,可以發現目前安裝的是Community版本,未來若需要使用到一些進階的整合功能,則可以點選「Upgrade to Pro Edition」超連結來完成升級作業。接下來,則可以查看目前檔案庫的數量、已使用的儲存空間、連線過的裝置數量、連線中的裝置數量以及群組數量。
接下來,必須為每一個準備連線Seafile系統的使用者建立登入帳戶。在預設狀態下,只會有一個初始化網站時所建立的帳戶,如圖9所示,可以按下〔Add user〕按鈕來建立單筆帳戶,或是按下〔Import users〕來批次完成大量帳戶的建立。既然可以進行匯入,當然也能夠匯出,只要按下〔Export Excel〕即可。對於已建立的帳戶,後續也可以在此修改、刪除,以及重置密碼。
如果企業IT需要讓使用者直接透過Active Directory帳戶來登入Seafile網站,則可以預先修改ccnet.conf檔案內容,加入以下的敘述範例:
[LDAP] HOST = ldap://192.168.7.2/ BASE = cn=users,dc=lab03,dc=com USER_DN = administrator@lab03.com PASSWORD = secret LOGIN_ATTR = mail(或userPrincipal Name)
其中,網域控制站的IP和LDAP路徑中的網域名稱資訊,必須修改成實際使用中的設定,secret則必須替換成指定登入帳戶的密碼。至於LOGIN_ATTR的設定,主要是決定要允許網域使用者採用Email地址或是帳戶名稱來登入。
凡是已建立的使用者帳戶,都可以在登入後修改自己的個人資訊設定。修改的方法是,在右上方的人像圖示選單中點選「設置」,如圖10所示,在「個人信息設置」頁面中,即可修改個人的顯示圖示、真實姓名、部門、電話以及喜好的介面語言。
為了方便後續對於檔案庫、資料夾以及個別檔案的授權存取,除了建立使用者帳戶外,最好還能夠進一步建立群組,而群組的分類方式,基本上都會先根據現行的組織單位,然後再依據角色類型以及專案小組名稱來建立。如圖11所示,建立的方式是到「Groups」頁面內新增,並透過按下〔Add Member〕按鈕加入人員至群組。
網站管理員若有重要的訊息需要發布讓所有使用者知道,可能會想到透過LINE、Skype之類的即時訊息軟體,然而事實上有更簡單的做法,那就是如圖12所示直接到「通知」頁面內按下〔新增新通知〕按鈕。等到要發布訊息通知的時間即將到來之前,再將該訊息設定成當前訊息,如此一來,所有登入此網站的人員都會在這個網站上看到這個顯著的提示訊息。不過必須注意的是,若是透過Mac、Windows、Linux以及各種行動裝置App登入的人員,將無法檢視到這個通知訊息,關於這一點確實有待改善。
想知道目前在Seafile系統內有哪一些使用者正在連線存取,如圖13所示只要在「Devices」頁面中,即可從「Mobile」分頁內檢視到所有正在連線存取的行動裝置。至於透過Linux、Mac及Windows的桌面App進行的連線,則會出現在「Desktop」頁面中。無論是哪一種連線方式,必要時都可以在此針對這個裝置的連線進行中斷。
對於一些即將離職的人員,如果必須將原本屬於他們所擁有的檔案庫移交給指定的代理人,則連到「資料庫」頁面,先選取準備移交的檔案庫,再使用「轉讓」功能,即可在所開啟如圖14所示的頁面中,透過輸入帳戶關鍵字的方式,選取所要移交的目標對象。
待續
在下集文章中,將接著說明有關於Seafile的檔案庫共用管理、桌面同步用戶端的使用,以及示範如何使用相關的行動裝置App。
<本文作者:顧武雄,Microsoft MVP 2004-2016、MCITP與MCTS認證專家、台灣微軟Technet、TechDays、Webcast、MVA特約資深顧問講師、VMware vExpert 2016-217、IBM Unified Communications/Notes/Domino/Connections Certified。>