2012年1月29日 星期日

[Django] 解決 Django 錯誤 "CSRF verification failed. Request aborted."

在 settings.py 的 MIDDLEWARE_CLASSES 中加入下列兩行程式碼

'django.middleware.csrf.CsrfViewMiddleware' 'django.middleware.csrf.CsrfResponseMiddleware'

問題就迎刃而解囉!

2012年1月21日 星期六

[OpenStack] 在 Ubuntu 11.10 上「手動」安裝 OpenStack

目前 OpenStack 可在 Ubuntu 10.10 或 11.04 上以 root 權限安裝,若非 root 則需前置 sudo 指令。

今欲嘗試安裝 OpenStack 在 最新版本 Ubuntu 11.10 ( Oct. 2011 釋出 ) 上。

首先,安裝 Nova PPA (Personal Packages Archive) 和 python-software-properties 進行前置設定。

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:openstack-release/2011.3

執行更新

sudo apt-get update

安裝訊息 queue 伺服器,RabbitMQ

sudo apt-get install -y rabbitmq-server

安裝 Python dependencies

sudo apt-get install -y python-greenlet python-mysqldb

安裝 nova- 封包及 dependencies ( 自動安裝 )

sudo apt-get install nova-volume nova-vncproxy nova-api nova-ajax-console-proxy
sudo apt-get install nova-doc nova-scheduler nova-objectstore
sudo apt-get install nova-network nova-compute
sudo apt-get install glance


安裝支援工具,例如 euca2ools 和 unzip

sudo apt-get install -y euca2ools unzip

到目前為止,已完成前置作業;接下來將進行資料庫 ( 以 MySQL 為例 ) 安裝及設定。

首先,藉由 "pre-seed" 進行環境設定

bash
MYSQL_PASS=nova
NOVA_PASS=notnova
cat <<MYSQL_PRESEED | debconf-set-selections
mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS
mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS
mysql-server-5.1 mysql-server/start_on_boot boolean true
MYSQL_PRESEED


安裝 MySQL

sudo apt-get install -y mysql-server

編輯 /etc/mysql/my.cof 改變 "bind-address" 從本地端至任意 (0.0.0.0) 並重啟 mysql 服務

sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
sudo service mysql restart


建立 nova 資料庫

sudo mysql -u root -p$MYSQL_PASS -e 'CREATE DATABASE nova;'

更新資料庫,並給予使用者 (‘nova’@’%’) 權限

sudo mysql -u root -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON *.* TO 'nova'@'%' WITH GRANT OPTION;"

設定使用者 (‘nova’@’%’) 密碼

sudo mysql -u root -p$MYSQL_PASS -e "SET PASSWORD FOR 'nova'@'%' = PASSWORD('$NOVA_PASS');"

2012年1月20日 星期五

[Cloud] 雲端運算五四三

雲端運算 (cloud computing) 包含

個必要特色 (essential charateristics),個部屬模組 (deployment models) 以及個服務模式 (service models)。

其中,五個必要特色為:
     ● On-demand self-service
     ● Broad network access
     ● Resource pooling
     ● Rapid elasticity
     ● Measured service

四個部屬模組為:
     ◎ 私有雲 (private cloud)
     ◎ 社群雲 (community cloud)
     ◎ 公有雲 (public cloud)
     ◎ 綜合雲 (hybrid cloud)

三個服務模式:
    ○ SaaS
    ○ PaaS
    ○ IaaS

另外,找到一份不錯的文件,參考參考!http://people.chu.edu.tw/~b09602005/attach1122.pdf

參考資料:
1. The NIST Definition of Cloud Computing
    - http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf

2012年1月19日 星期四

[OpenStack] 安裝 OpenStack 系統需求建議

基本 OpenStack 安裝包含下列兩種伺服器 (server):

1. Cloud Controller node ( 運行網路、volume、API、scheduler 及映像服務 )。

硬體規格建議
處理器:64 位元 x86
記憶體:12 GB RAM
硬碟大小:30 GB (SATA 或 SAS 或 SSD)
volume:在 compute node 上掛載兩個 2TB (SATA) 硬碟
網路:一塊 1GB 網路卡 (Network Interface Card, NIC)

2. Compute nodes ( 運行 virtual instance )。

硬體規格建議
處理器:64 位元 x86
記憶體:32 GB RAM
硬碟大小:30 GB (SATA)
網路:兩塊 1GB 網路卡


作業系統:OpenStack 目前支援 Ubuntu、RHEL、SUSE、Debian 和 Fedora。

網路:1000 Mbps。對於虛擬機之間的網路有三種選擇,分別是 flat、DHCP 以及 VLAN。

資料庫:對於 OpenStack Compute,目前可存取 PostgreSQL 以及 MySQL。

Network Time Protocol:必須安裝時間同步軟體,例如 NTP。

2012年1月16日 星期一

[OpenStack] OpenStack 概論

    OpenStack 提供開放原始碼建立公有 (public) 或私有 (private) 雲。其宗旨在於幫助組織運行虛擬計算 (virtual computing) 或儲存服務 (storage) 的雲。OpenStack 旗下包含一組公共維護 (community-maintained) 的開放原始碼項目,分別是 OpenStack Comput (Nova)OpenStack Storage (Swift) 以及 OpenStack Image Service (Glance)

    OpenStack Compute 是雲的控制器。它用於啟動個人或一組用戶的虛擬實例 (virtual instance),也為每一個實例 (instance) 或項目 (project) 進行網路配置。

    OpenStack Storage 提供分散式且最終一致的虛擬物件存儲 (virtual object store)。它類似於 Amazon Web Service - Simple Storage Service (S3),能藉由分散式節點存儲數十億物件,並具有冗餘和容錯管理的能力。

    OpenStack Image Service 是一個虛擬機 (virtual machine, VM) 鏡像存儲、查詢和檢索系統,服務包括允許使用者透過 REST-like  HTTP 請求查詢 VM 鏡像詮釋資料 (metadata) 以及檢索實際鏡像。

三者之間關係圖如下:


參考資料:
1. OpenStack 官方網站 - http://www.openstack.org/
2. OpenStack Compute Administration Manual
    - http://docs.openstack.org/diablo/openstack-compute/admin/content/index.html