2012年4月18日 星期三

[Ubuntu] 在 Ubuntu 11.10 上安裝 SVN Server

在安裝 SVN 前,假設您的 Apache 伺服器已安裝完成。

若未安裝 Apache ,請參考

https://help.ubuntu.com/community/ApacheHTTPserver

1. 安裝 SVN

sudo apt-get install subversion
sudo apt-get install libapache2-svn

假設安裝的過程中,出現錯誤訊息: E: Unable to locate package libapache2-svn

請您這樣做: sudo apt-get update 即可解決上述問題!

2. 配置 Apache 的 httpd.conf 文件

vi /etc/apache2/httpd.conf

<Location /svn>
DAV svn
SVNParentPath /svn
AuthType Basic   
AuthName "subversion repository"
AuthUserFile /svn/passwd 
AuthzSVNAccessFile /svn/auth
Require valid-user
</Location>

3. 創建 SVN 根目錄,並創建 myproject 版本庫


mkdir /svn/
mkdir /svn/myproject
svnadmin create /svn/myproject
chmod 777 -R /svn/myproject


4. 配置使用者帳號、密碼

在第 2 步時,我們已經指定使用者密碼配置文件為: /svn/passwd

htpasswd -c /svn/passwd admin

5. 配置使用者群組權限

在第 2 步時,我們已經指定使用者群組權限配置文件為: /svn/auth

vi /svn/auth

[groups]
developers=admin

[/]
developers=rw
*=r

6. 重新啟動 Apache

sudo /etc/init.d/apache2 restart



2012年3月14日 星期三

[Django] 靜態文件 (static files) 管理與部屬

最近在開發 template 的時候出現一個問題,就是 html 檔案中的 image 無法顯示。原本以為是路徑設定上的問題,但經嘗試「相對路徑」與「絕對路徑」後仍無法解決問題,只好求助 google 大神囉!囧

經 google 大神開釋後,發現 django 有自己 管理靜態文件 (Managing static files) 的方法。經查閱後整理如下:

1. Django 下所有靜態文件 (ex: images, .css, .js 等 ) 皆存放於 static 資料夾下;使用者上傳的圖片、檔案‧‧‧等等皆存放於 media 資料夾。

2. 修改專案 (project) 下的 settings.py。

    STATIC_ROOT = '/static/'
    STATIC_URL = '/static/'
    STATICFILE_DIRS = { './static', }


3. 在 template 要插入 image 的 tag 寫入
    <img src={{ STATIC_URL }}example.png />

如此一來,django 中所有靜態文件 ( image, .css, .js, etc.) 可顯示。

2012年3月13日 星期二

[iTunes] 透過 iTunes 將 CD 轉成 mp3

第一步 首先開啟 iTunes,並將 CD 放入光碟機中。當 iTunes 偵測到 CD 之後,會自動連上網查詢資料庫,如果有找到 CD 音軌的資訊,會問你要套用哪個資料檔。


第二步 接著 iTunes 會詢問你是否要「匯入到您的 iTunes 資料庫?」。如果你要將 CD 中的音樂轉存成 mp3 的話請按【是】。如未出現此對話框,可在放入 CD 後,點選視窗下方【匯入 CD】,將 CD 中的音樂轉存。


第三步 如圖,轉檔時會出現「正在匯入 OOXX」,請稍待。



第四步 全部光碟中的音樂都轉存到電腦中之後,點選 iTunes 左邊【音樂】資料夾,便可看到剛剛匯入的音樂檔囉!

2012年3月7日 星期三

[Django] Django 安裝及簡介 (Introduction to Django)

Django 是一個利用 Python 撰寫而成的高階網頁框架 (Web framwork),其架構可支持迅速地開發網頁應用程式 (Web application),並實現簡潔、務實的設計。

安裝 Django 的流程如下:

1. 安裝 Python。Django 目前適用於 Python 2.4 ~ 2.7 版本。

2. 安裝 Django。如曾安裝舊版本,請先行移除!

3. 確認。Type python from your shell. ( 以 Linux 為例 )

>>> import django
>>> print django.get_version()
1.3


不用懷疑,安裝 Django 就是這麼簡單!:P

參考資料:

1. Django official website: https://www.djangoproject.com/

2. Django book (2nd edition) : http://www.djangobook.com/en/2.0/

2012年2月28日 星期二

[Virtualization] libvirt 簡介

Libvirt 為一套提供方便的方法管理 VM 及其他虛擬功能 ( 例如:Storage 或網路 ) 的 C 語言軟體。這些軟體包含 API 函式庫、daemon (libvirtd) 及一個命令提示工具 (virsh)。
  Libvirt 的主要目標為,提供一個簡單的方法管理多個不同的虛擬化提供者或 hypervisor。舉例來說,命令 "virsh list --all" 可列出所有支援的 hypervisor (KVM、Xen、VMWare ESX 等等 )中存在的 VM。

Libvirt 所提供之主要功能為:

1 ) VM 管理:開始、停止、暫停、儲存、回復及遷移。

2 ) 支持遠端機器控制 (Remote machine support):運行 libvirt daemon 的機器皆可使用 libvirt 的所有功能,包含遠端控制機器。更多資訊,可參考 http://libvirt.org/remote.html。

3 ) Storage 管理:運行 libvirt daemon 的機器可管理不同型態的 storage。更多資訊,可參考 http://libvirt.org/storage.html。

4 ) 網路介面管理:運行 libvirt daemon 的機器可管理 physical 和 logical 網路介面。更多資訊,可參考 https://fedorahosted.org/netcf/。

5 ) 虛擬 NAT 與路由基礎網路 (Route based networking):運行 libvirt daemon 的機器可管理與產生虛擬網路 (virtual network)。更多資訊,可參考 http://libvirt.org/archnetwork.html。

Libvirt 支援:

1 ) KVM/QEMU
2 ) Xen
3 ) LXC - Linux container system
4 ) OpenVZ - Linux container system
5 ) User Mode Linux
6 ) VirtualBox
7 ) VMware ESX and GSX
8 ) VMware Workstation and Player
9 ) Microsoft Hyper-V

2012年2月13日 星期一

[OpenStack] OpenStack Dashboard 簡介與安裝

簡介:
OpenStack Dashboard 是一個以 web 為基礎的視窗提供使用者透過 OpenStack APIs 與 OpenStack Compute 雲控制器溝通。

系統需求:
1. 必須運行 OpenStack Compute 安裝並包含 Identity 與 Keystone 服務
2. 必須知道 Identity 與 Compute 的 URL
3. 必須安裝 git
4. Python 2.6 或 2.7

安裝步驟:
1. 安裝 OpenStack Dashboard 框架,其中包含 Apache 及相關模組

sudo apt-get install -y libapache2-mod-wsgi
sudo apt-get install -y openstack-dashboard openstackx python -sqlite

2. 配置 Dashboard

2.1 開啟 mysql,並輸入 root 使用者的密碼

mysql -u root -p

2.2 配置 MySQL,建立 dash 資料庫

mysql> CREATE DATABASE dash;

2.3 建立使用者,並擁有 dash 資料庫之最高權限

mysql> GRANT ALL ON dash.* TO 'dash'@'%' IDENTIFIED BY 'yourpassword';

2.4 於 /local/local_settings.py 中修正下列選項:

● DATABASE:

DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.mysql',
          'NAME': 'dash',
          'USER': 'dash',
          'PASSWORD': 'yourpassword',
          'HOST': 'localhost',
          'default-character-set': 'utf8'
      },
  }


2.5 運行 syncdb 指令初始化資料庫

# If using Cloud Builders packages, do this:
  cd /var/lib/dash
  PYTHONPATH=/var/lib/dash/ python dashboard/manage.py syncdb

  # If using Managed IT packages, do this:
  /usr/share/openstack-dashboard/dashboard/manage.py syncdb


你將會看見下列結果輸出

Installing custom SQL ...
  Installing indexes ...
  DEBUG:django.db.backends:(0.008) CREATE INDEX `django_session_c25c2c28` ON`django_session` (`expire_date`);; args=()
  No fixtures found.


3. 重啟並運行 Apache 伺服器

sudo /etc/init.d/apache2 restart
sudo restart nova-api


如果安裝正確,打開瀏覽器並輸入 http://localhost 你將會看見 OpenStack Dashboard。

2012年2月7日 星期二

[OpenStack] OpenStack Compute (Nova) 簡介

Nova 的特色及功能如下:

1. Instance 生命週期 (life cycle) 管理

2. 計算資源管理

3. 網路及認證

4. REST-based API

5. 最終一致的非同步通訊

6. 支援 Xen, XenServer/XPC, KVM, UML, VMware, vSphere and Hyper-V

OpenStack Compute 組件包含:

1. API Server (nova-api):提供外界對於雲基礎架構的管理與介面。

2. Message Queue (rabbit-mq server)

3. Compute Workers (nova-compute):處理 instance 的生命週期管理,透過 Message Queue 接收

並處理生命週期管理之請求。

4. Network Controller (nova-network):處理主機網路辨別。例如:分配 IP 位址、辨別專案

VLAN 等等。

5. Volume Worker (nova-volume):用於管理 LVM-based instance volume。功能如新增、刪除及從

instance 掛 ( 卸 ) 載一個 volume。

6. Scheduler (nova-scheduler):對應 nova-API 呼叫至正確的 OpenStack 組件。

參考資料:

1. OpenStack Compute Starter Guide

    - http://docs.openstack.org/diablo/openstack-compute/starter/content/