Personal tools
You are here: Home KtJ's Blog サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(1)-qjailとpkgng
« January 2020 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
 

サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(1)-qjailとpkgng

by ktj posted at 2014-05-08 07:58 last modified 2015-07-11 11:06

サーバ入れ替えに伴ってブログエンジンを変えなきゃいけない、だったら自分で作ってみよう、という無謀な試み。コンテンツは今までどおりreStructuredTextで書きたいのでpythonベースの奴がいいよね&自分専用だからできるだけシンプルな方がいいよね&もうこれからはpython3だよね、ということでフレームワークはBottleを選択してみた。

OSはいつも通りFreeBSD。で、どのリリースを選択すべきか。ちょうど今はFreeBSDのライフサイクル的にちと微妙な時期で、

  • 8.4は来年7月までサポートだけどさすがに今8系を選択するのはない
  • 9.1は今年の年末まで、9.2は今年の9月まで
  • 10.0は来年の1月まで

ということで、とりあえず10.0を入れておいて、来年頭くらいに長期(2年)サポートの10.1が出たらそっちにアップグレード、というのがいいかなと。

てことで、まず10.0をインストール。デフォルトのパーティション/ブート管理がGPTという奴に変わって、スライスごとのパーティションの数の制限が緩和されたっぽい。サーバの仕様上パーティションをたくさん切る必要があるのでこれはありがたい。

さて、FreeBSD10系からjailの仕様が若干変わってezjailがうまく動かないらしいので、qjailを入れてみる。手順は以下の通り。まず、pkgngでqjailをインストール。

# pkg search qjail
(qjailの2系と3系(ここでは3.2)のパッケージが表示される)
# pkg install qjail-3.2

次に、/etc/rc.confにネットワークアダプタのエイリアスとqjail_enableを追加。こんな感じで。

ifconfig_ネットワークIF_alias0="inet IPアドレス netmask 255.255.255.255"
qjail_enable="YES"

で、ネットワークを再起動して、それからjailのベースを作成

# /etc/rc.d/netif restart
# source ~/.cshrc
# qjail install

さらに、qjailを作って実行

# qjail create -n ネットワークIF -4 IPアドレス jail名
# qjail start

qjailが起動したのちは、 qjail console jail名 (jexec jailID csh でもいいけど)でjailに入る。この時点でrootのパスワードがない状態なのでpasswdコマンドで作っておくのがいいと思う。ユーザランドのアップデートはホスト側から qjail update -b だけでOK。また、portsツリーのアップデートもホスト側から qjail update -p でOK。これはらくちんでよい。

ここで問題発生。jail側でpkgngが機能しない。「PACKAGESITEを設定ファイルから削除しろ」とか「pkgのデータ参照元のftpなんちゃらが見つからないよ」とかいうメッセージが出てpkgを構築できない。なんでかな?と思ったが、pkgngのデータ参照元のサイトがどっかのタイミングで変わったけど、qjailのデフォルトのユーザランドイメージ(qjail install でダウンロードされるイメージ)は古い参照元のURLを見に行っているようだ。もっと具体的に書くと、qjailのイメージだと環境変数PACKAGESITEが設定されていて、これをpkgngが参照している、ということ。で、PACKAGESITEをどこで設定しているか確認したところ、/root/.cshrcで設定されていた。なんで、.cshrcを編集して該当個所をコメントアウトしたところこの問題は解消された。


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: