lxcにLAMPインストール

ロケールとタイムゾーンを設定しただけの素の仮想環境にインストールする。
まずtasksel をインストール

$ sudo apt-get install tasksel

taskselを実行しLAMPをインストール

$sudo tasksel

OpenSSH serverを削除するとsshで接続できなくなるので注意。

mysql文字コード変更
/etc/mysql/my.cnf を編集

[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8

mysqldを再起動

$ sudo service mysql restart

2012年8月11日

lxcの仮想環境にJapanese Teamのパッケージレポジトリを追加する

Ubuntu Japanese Teamのページ(Ubuntuの日本語環境)に12.04の英語環境にJapanese Teamのパッケージレポジトリを追加する方法が書いてあるが、LXCのubuntuテンプレートで作った仮想環境では必要なパッケージが足りないため実行できない。

wgetとCA証明書関係をインストールする。

$ sudo apt-get install wget
$ sudo apt-get install ca-certificates

この後でUbuntu Japanese TeamのページのとおりにすればOK。

2012年8月11日

lxc仮想環境の複製とバックアップ

前回に作った仮想環境「ubuntu01」を複製してそちらを使っていく。

$ sudo lxc-clone -o ubuntu01 -n ubuntu02

へんな設定をしてうまく動かなくなったら

$ sudo lxc-destroy -n ubuntu02

で仮想環境を削除してもう一度ubuntu01から複製すればOK。

バックアップをとるなら

$ sudo lxc-backup ubuntu02

がありますが、ファイルシステムがそのままコピーされるだけなので。
tarで固めてしまった方が面倒がない。

$ cd /var/lib/lxc
$ sudo tar cpzf ubuntu02.tar.gz ubuntu02

リストアは

$ sudo tar --numeric-owner -xpzf ubuntu02.tar.gz

ここで–numeric-owner オプションをつけないと他のホストに持っていったときにuidやgidが変化してしまう。

2012年8月11日

lxc仮想環境の実行と日本語設定

前回作った仮想環境「ubuntu01」を実行してみる。

$ sudo lxc-start -n ubuntu01

ユーザー名はubuntu、パスワードもubuntuになってる。外部からアクセス可能にするなら別の管理者を作ってユーザーubuntuは削除。

dateコマンドを実行。

$ date
Sat Aug 11 05:12:24 UTC 2012

このように英語表示のうえに時間がUTCなので修正する。

ロケールの変更

$ sudo apt-get install language-pack-ja
$ export LANG=ja_JP.UTF-8
$ sudo update-locale LANG=ja_JP.UTF-8

タイムゾーンの変更

$ sudo mv /etc/localtime /etc/localteime.org
$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

再びdateを実行。

$ date
2012年  8月 11日 土曜日 14:15:59 JST

今度は無事に日本語で日本時間が表示される。

もしテンプレートを変更しないで仮想環境を作った場合には
/etc/apt/sources.listを修正してパッケージ配布サーバーを日本に変更。

仮想環境をシャットダウン。
仮想環境内からは

$ sudo shutdown now -h

ホスト側からなら

$ sudo lxc-shutdown -n ubuntu01

これで仮想環境がシャットダウンされる。
仮想環境の状態を確認するにはホストで

$ sudo lxc-list

2012年8月11日

lxcのテンプレート修正と仮想環境の作成

このまま仮想環境を作ってもよいが、テンプレートをちょっとだけ修正してみる。
ダウンロード元をarchive.ubuntu.com から jp.archive.ubuntu.comへ変更。
ubuntuのテンプレートをコピーして編集。

$ sudo cp /usr/lib/lxc/templates/lxc-ubuntu /usr/lib/lxc/templates/lxc-ubuntujp
$ sudo vi /usr/lib/lxc/templates/lxc-ubuntujp

archive.ubuntu.comを探してjp.archive.ubuntu.comに直す。

            MIRROR=${MIRROR:-http://jp.archive.ubuntu.com/ubuntu} #修正した行

日本語環境がインストールされるわけではなく、単にダウンロード元が日本になるだけだけど。
これを使って仮想環境を作成。

$ sudo lxc-create -t ubuntujp -n ubuntu01

こうすれば自動的に作成後の環境の「/etc/apt/sources.list」もjp.archive.ubuntu.comになる。

2012年8月11日

LXCインストール

ubuntu12.04にインストールしてみる。
ソフトウェアセンターからもインストールできるが、コマンドラインから入力したほうが手っ取り早い。

$ sudo apt-get update
$ sudo apt-get install lxc

apt-get updateでパッケージリストを最新にする。ソフトをインストールする前にはやっておいたほうがよさそう。

これだけでインストールは終了。とっても簡単!

2012年8月11日

LXCで仮想化に挑戦!

Ubuntu12.04でLXCを試してみた。

lxcとはコンテナによる仮想化で、完全仮想化とは違ってlinux上でlinuxを動かすことしかできない(同じカーネルを使用)。そのかわり軽量で、非力なマシンやVPS上でもサクサク動くことが期待できる。

参考にしたサイト

Ubuntu Weekly Recipe 第226回 LXCで軽量仮想環境の活用
絶対無糖 Ubuntu 12.04 で LXC
ヌル日記 VPSで遊ぶ -その13 :Ubuntu鯖12.04にLXCをインスコして量産型仮想環境を構築する Part1:初期導入編

Ubuntu Server Guide » Virtualization »LXC(英文ですが一番詳しい)

2012年8月10日