2009年6月13日土曜日

Pylonsの仮想環境を仮想マシンに移行する

Pylonsで動作しているサービスがあり、これのPythonの仮想環境をvserverの仮想マシンに移行する。

仮想マシンを新規作成
インターフェースはdummy0
# modprobe dummy
でできる。
仮想マシン名は vm1とすると

# vserver vm1 build --hostname vm1 -m debootstrap --interface dummy0:192.168.xx.yy/24 -- -d lenny -- --arch i386


時間が少しだけかかるのでコーヒーを買いにお買い物...
-----
これで仮想マシンは出来上がり

仮想マシンの環境整備

仮想マシンを起動して仮想環境に入る。

# vserver vm1 start
Starting enhanced syslogd: rsyslogd.
simplegw.sesame.local# vserver vm1 enter

sshサーバをいれて、/etc/ssh/sshd.config のListenAddress を入れておく

パッケージをインストールしてpythonの仮想環境を作る
vm1:/#apt-get install locales python apache2 mysql-server python-setuptools

vm1:/#easy_install virtualenv
...
vm1:/#mkdir -p /usr/local/python/BASELINE
vm1:/# virtualenv --no-site-packages /usr/local/python/BASELINE
New python executable in /usr/local/python/BASELINE/bin/python
Installing setuptools............done.

ユーザーを作ってから、ユーザで環境をつくる

$ mkdir pythonenv
$ virtualenv --no-site-packages pythonenv/MYAPP
New python executable in pythonenv/MYAPP/bin/python
Installing setuptools............done.

アクティベートしてpylonsをインストール
$ . pythonenv/MYAPP/bin/activate
(MYAPP)$ easy_install pytlons

これから下はアプリケーションが依存しているのでインストール

(MYAPP)$ easy_install authkit
(MYAPP)$ easy_install easy_install -U sqlalchemy

sqlのマイグレード関係
(MYAPP)$ easy_install sqlalchemy_migrate
(MYAPP)$ easy_install mysql-python

htmlを解析するツールも使っていたようなので、コンパイルする環境をインストールする
# apt-get install gcc
# apt-get install python-dev libxml2-dev libxslt1-devzlib1g-dev
# apt-get install libxml2 libxslt1 zlib1g

ユーザーで仮想環境をアクティベートして
(MYAPP)$ easy_install lxml

アプリケーションの移行
#gitのマスターが廃止予定のサーバにあるのでサーバの仮想マシンに移す。
#作業はファイルのコピーだけ。


gitをインストール

# apt-get install git-core

(MYAPP)$ mkdir pylons-public
ディレクトリを作って、gitのリモートサイトを登録してpull
(MYAPP)$ mkdir pylons-public/XXX
(MYAPP)$ cd pylons-public/XXX
(MYAPP)$ git init
(MYAPP)$ git remote add shared user@server:path_to_git
(MYAPP)$ git pull shared master
これを必要なディレクトリで行う

普通にコピーして持ってきてもOK
---つづく

0 件のコメント: