lxcの仮想環境を別サーバーに移動

lxcで作った仮想環境を別のサーバーに引っ越して動くか確認。
lxc環境の複製とバックアップ
参照。

32bitのコンテナは32bitのホスト、64bitのコンテナは64bitホストへしか移動できないので注意。64bitのホストで32bitのコンテナが動きます。ちゃんと調べないで適当なことを書いちゃいけません。反省。

WordPressをインストールした仮想環境をドメインは同じまま別サーバーへ移動してみる。

まずコンテナをまるごとtarで固める。

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

ubuntu02.tar.gzをscpなどで別のlxcがインストール済みの別サーバーへ移動する。

$ cd /var/lib/lxc
$ sudo tar --numeric-owner -xpzf ubuntu02.tar.gz

必要ならコンテナのネットワーク設定を変更
ホストマシンでポート転送を設定し80番をubuntu02の80番に転送する。
lxcで作ったWordPressサーバーを外部に公開(レンタルサーバー編)参照。
コンテナを起動して動作を確認。
DNSの設定を新しいサーバーのアドレスに変更。
あっという間に引越し完了。

2012年8月23日

shotwellをネットワーク越しに複数マシンで使用する

ヘルプ>FAQ>Featuresのところに書いてある(shotwellのバージョン0.12.3)

shotwellをネットワーク越しに複数マシンで使用することは出来ますか?

This is not recommended.推奨しない。Shotwellはこのような使用法に対応した設計になってないのでデータベースが不整合をおこす可能性がある。

そうはいってもnetwork越しに使用できれば便利なので試してみた。
結論から言うと一応可能。ただし予想通り複数マシンから同時にタグなどを編集すると起動・終了のタイミングによってデータベースの内容が変わるので、同時使用は避けたほうが賢明だ。

方法:画像が各マシンで同じ絶対パスになるように、ネットワークドライブをマウントする。シンボリックリンクでも可。shotwellのデータベースにアクセス出来るようにディレクトリを作り、データベースを作成。そのデータベースを誰からでも読み書き出来るようにパーミションを変更。

画像をインポートするときに同じフォルダを複数ユーザーで指定していると作られるフォルダのパーミションの問題で画像をインポート出来なかったりする。バックアップをとった上で自己責任で。

2012年8月16日

shotwellで複数ライブラリを使う

ヘルプ>目次>Other Features-Multiple librariesに書いてある。コマンドラインから-dオプションで指定する。

shotwell -d [library-directory]

指定したディレクトリ内に~/.shotwellと同様にデータベースとサムネイルが作られる。

ただしshotwell自体の設定は切り替わらない。インポート先フォルダを変更するとどのライブラリを指定して実行しても同じフォルダになる。写真をコピーしてインポートするときにライブラリ毎に画像フォルダを変えたいならば、その都度指定しなければならなず注意が必要。

ユーザーが違えばshotwellの設定も別になる。

2012年8月15日

shotwellのライブラリを別のコンピュータに移動する

shotwellライブラリの移動方法

これが分からないと安心してライブラリを作れない。

ヘルプ>FAQの中(英文)に書いてある
~/.shotwell ディレクトリをコピーする。
フォトライブラリ(標準なら)ピクチャフォルダをコピーする
shotwellを起動し、編集>設定>ライブラリの場所を正しく設定

画像の絶対パスが同じなら問題無し。絶対パスが違ってもshotwellはインポート先のディレクトリ内を探してデータベースを修正してくれるみたい。

「みつからないファイル」になってしまったら

  1. その画像ファイル(もしくは画像ファイルのあるフォルダ)をインポート先のディレクトリにコピーする。
  2. またはライブラリのインポート先を変更しその画像のあるフォルダに変える。データベースが更新されたらまたライブラリの場所を元にもどす。(画像の場所はそのままでライブラリに復活する)

いったん「みつからないファイル」になっても、再び画像が見つかればタグなどもそのままでライブラリに復活する。

2012年8月15日

shotwellメモ

shotwellを使って見たのでメモ

shotwellはubuntu標準の画像管理ソフト(動画もOK)

Ubuntu12.04でのshotwellのバージョンは0.12.3

データベースにはsqlight3を使用

データベースの場所は~/.shotwell/data/photo.db

サムネイルは~/.shotwell/thumbs/の中で~/.thumbnails/下のサムネイルとは別

画像の場所はデータベースの中で「絶対パス」で記録されてる。

画像をインポート先にコピーすることも、元の場所のままインポートすることも可能

タグなどのデータは画像にうめこむことも可能だが標準では画像には手を加えず、データベースに記録する。

画像をコピーしてインポートするとインポート先フォルダ内に年/月/日/フォルダを作ってその中にコピーする。

ファイル名が同じでもちゃんと別画像として扱われる(画像ファイルの情報やmd5値などをみてるらしい)。

2012年8月15日

lxcで作ったWordPressサーバーを外部に公開(レンタルサーバー編)

VPSなどレンタルするとグローバルアドレスで直接インターネットにつながっている。標準では仮想環境はブリッジ(lxcbr0)を通して10.0.3.0/24のプライベートアドレスになる。このためホストマシンでポート転送をする必要がある。またファイアーウォールはホストマシンで設定する。

ファイアーウォール設定は詳しいサイトを参照すること。

ポート転送の設定

ホストマシンの80番を仮想環境(10.0.3.2と仮定)の80番に転送する。また10000番(実際には別のポートを指定すること)を仮想環境の22番に転送する。
とりあえずlxc-netの起動スクリプト内に設定してみる。

$ sudo vi /etc/init/lxc-net.conf 

iptables -A POSTROUTING -s ${LXC_NETWORK} -t nat -j MASQUERADEの後ろに設定を追加する。

        iptables -A PREROUTING -t nat -p tcp --dport 80 -i eth0 -j DNAT --to 10.0.3.2:80
        iptables -A PREROUTING -t nat -p tcp --dport 10000 -i eth0 -j DNAT --to 10.0.3.2:22

これでホストマシン80番へのアクセスはそのまま仮想環境の80番へ、ホストマシン10000番へのアクセスは仮想環境の22番へ転送される。

2012年8月13日

lxcで作ったWordPressサーバーを外部に公開(家庭内サーバー編)

家庭内LANからは仮想環境にフルアクセス可能にして、ファイアーウォールはルーターにお任せする。ルーターの設定で80番ポートとssh用のポートだけ転送するようにする。

もしホスト側がUbuntuのデスックトップ環境ならばnetwork-managerを停止しなければいけない。
自動起動の停止方法

ネットワークを設定する。

$ sudo vi /etc/network/interfaces

設定例 実際の環境に合わせて修正する

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
  address 192.168.0.10
  netmask 255.255.255.0
  gateway 192.168.0.1
  dns-nameservers 192.168.0.1
  bridge_ports eth0
  bridge_stp off

コンテナのconfigを編集

$sudo vi /var/lib/lxc/ubuntu02/config #コンテナ名ubuntu02
lxc.network.link=lxcbr0 #この行のlxcbr0をbr0に書き換える

必要ならコンテナ内の/etc/network/interfacesも編集する。DHCPでよければそのまま。

再起動すれば仮想環境がホストと同じネットワークに接続されているはず。

後はルーターでポート転送するよう設定する。80番はそのまま80番に転送する。
sshについては仮想環境のポートは22番のままで、ルーターからは適当なポートから仮想環境の22番に転送する。こうすればローカルからはポート指定なしでsshできるが、外部からは22番は閉じていることになる。

2012年8月13日

Ubuntuでサービスの自動起動を止める

Ubuntu12.04でサービスの自動起動を停止する方法。
サービスをアンインストールしてしまうと必要になったときに面倒である。
Ubuntuではupstartでサービスを起動していて起動スクリプトは/etc/init/の下にある。
起動スクリプトを編集してstart on の項目をコメントアウトすれば自動起動しなくなる。
network-magagerを例にすると

$ sudo vi /etc/init/network-manager.conf

start on の項目をコメントアウト

#start on (local-filesystems
#         and started dbus
#         and static-network-up)

これでnetwork-managerが自動起動しなくなる。
手動起動は

$ sudo start network-manager

手動停止は

$ sudo stop network-manager

2012年8月13日

lxcにWordPressインストール

LAMPをインストールした仮想環境にWordPressをインストールしてみる。
といっても特殊なことはないので普通にインストールすればOK。

worepress用のmysql設定
データベースを作成しwp管理者を登録し権限を付与。

Apache2の設定
mod-rewriteを有効化

$ sudo a2enmod rewrite

/etc/apache2/sites-available/defaultを編集。
/var/wwwの設定を AllowOverride All に変更

Apache再起動

$ sudo service apache2 restart

wordpressを普通にインストール

これでWordPressの動く仮想環境が出来上がる。

2012年8月12日