Home > Tags > ソフトウェア

ソフトウェア

[物欲] シュタインズゲート

やっと届いた。ネタバレを回避しまくってくれたプレイ済み友人達に感謝。もっとも、宣伝素材で微妙にネタバレくらいましたが…。

インストールしてプレイ開始してみたら、重い。まあ最低スペックに近いのでこれは仕方がない。

だが、オープニング終了後、どうやっても音声がぶつ切れになる。具体的には頭のあたりが一瞬発音された後、中抜きでぶつぶつと一瞬喋り、最後の部分が何回か繰替えされる。FFXIマシンで非力なせいか?一応最低スペックは満たしているはずなんだけどねえ。

発売前からパッチがあった。当てるとセーブデータやりなおしらしい。上記問題で進んでいなくてよかった。

ついでに、初回特典のパッチもダウンロードしてあてておく。なかなか落ちてこなくて4時間くらいかかった。

ESX上のVMに監視をしこむ

Zabbixに手を出してみることも考えたが、お手軽にportsからMuninで構築。マスタ端末はウェブのあるJailに設定する。

ひとまず、Apache, Disk, Mysql, Process, Systemまわりと、ルータのSNMPからトラフィックを見るようにした。Jailの中なのでCPUとか負荷とか色々と信頼できない値ばかりでて不便。後で調整しなおさなければ。

後は、各Jailにしこむだけ、と。

vSphere 4.0がならCIM経由でなら状態を出力してくれるようなので、そっちからMuninに渡せるインタフェースがつくれればいいのか。

Nagiosの例とか、MonitoringExchange – VMWare (ESX)とか、色々あるらしい。

FreeBSDだとportsにsblim-wbemcliがあるので、色々試行錯誤していると情報がとれた。GT100bはハードウェア温度がvSphere Clientから見えないので、おそらくCIM経由でも取れないのだろう。それでも、各VMの正しいステータスが見えるなら、やる価値はある。muninのnodeは楽に作れそうだし。

# wbemcli ecn -nl -noverify 'https://root@esxhost:5989/root/cimv2'

WebサーバをFreeBSD Jail on ESXiに移行

まずはJailを作成。流石に慣れてきた。

ezjail-admin  create -f default ritsuko.localnet 192.168.xxx.xxx

そして、portsでまずはmysql-server-5.5をインストール。

元のデータは、mysqldumpで取って、新環境で同名ユーザ、同名DBを作成。

mysqldump --single-transaction database > database.sql

scpでデータを転送の上、簡単に流しこんでいる。

mysql < mysql.dump.sql

apache22をインストール。ついでにモジュールまわりもごそごそと設定。最低限必要なものはhttpd.confに書いていたつもりだが、いくつか後で追加で設定する必要があった。

Apacheの設定でPHPが何故かFastCGI経由になっている。しばらく頭をかかえたが、そういえばそんなバグ回避していたなあ。

Apacheの設置で、どうにも起動しないと思っていたらaccf_http(9)の罠にはまったらしい。簡単に言えばHTTPを特別扱いしてカーネル内にバッファをもうけるもの。

まずは親機の方でカーネルモジュールをロードするよう /boot/loader.conf に追加。

accf_data_load="YES"
accf_http_load="YES"

といいつつ、面倒なのでその場でロード。

# kldload accf_http
# kldload accf_data

Jail内で/etc/rc.confに追加。

accf_http_load="YES"

PHPまわりもインストール。php5だけじゃ駄目でphp-extensionsなるものまであるのか。xcacheもportsにあったので、そちらで入れる。

それにしても鬼のようにportsが増える。PerlにPython、PHPとP言語が自動で揃ってしまった。

PHPの php.ini はほぼそのまま移植、MySQLのmy.cnfは現地優先で特に移植なし。

そんなこんなで一通りの移行完了。

おまけで、pflogsummを入れて、Greylistingの効果を見てみる。結構3rd relayの試みもあるものだなあ。

一通り試してみて問題が無かったので、ルータのSNATを新サーバに向けなおす。rep2もちでに移行。

Postfix + Postgrey + Cyrus-mapd 2.3 での構築(まだ途中)

やたら多いMicrosoft UpdateをVMWare Fusionで当てつつ作業。

とはいっても、元々のMTAを止めた上でルータ経由のSMTPを新MTAに流して、実際に外との導通をとってみるだけ。最初はgreylistingにひっかかってなかなか確認できなかったが、一応一通りの操作はできたので安心。内部DNSを新MTAに向けなおして実働に入る。

Postgreyは、/etc/rc.conf でホワイトリストを指定。その上で普段利用の転送サーバをホワイトリスト指定している。

postgrey_flags="--pidfile=/var/run/postgrey.pid \
        --whitelist-clients=/usr/local/etc/postfix/postgrey_whitelist_clients \
        --whitelist-recipients=/usr/local/etc/postfix/postgrey_whitelist_recipients \
        --inet=10023 -d --user=postgrey --group=postgrey --dbdir=/var/db/postgrey"

次は、Cyrus-IMAPdと併用してのSMTP Authまわりかな。まあ内部用なので割と気分的なものだし、後まわしでいいや。

Postfix + Postgrey + Cyrus-mapd 2.3 での構築(途中)

Cyrus-imapdをインストールしたところから、設定を再開。まずは imapd.conf を適当に稼動しているのを見つつ操作。序盤の操作は前回同様。

# /usr/local/cyrus/mkimap
# saslpasswd2 -c cyrus-admin
# /usr/local/bin/cyradm --user cyrus-admin localhost

はまった点。

その一、認証をauxpropにしていなかった。saslauthd経由で今迄やっていたのでそうしようとしたが、よく考えるとauxpropでそのまま読んでくれた方が都合が良かった。/usr/local/lib/sasl2/Sendmail.confもauxpropに修正。

その二、ドメインが違った。外のドメインのためのメールボックスなので、saslpasswd2 -c cyrus-admin@hostname.domainname などと一々ドメイン指定しなければいけなかった。ユーザを作る際も同様。

IMAPsにするべく、SSL用の鍵を作成。

# openssl genrsa -rand /dev/urandom -out ca.key 2048
# openssl req -new -key ca.key -out ca.csr
# openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
# openssl genrsa -rand /dev/urandom -out server.key
# openssl req -new -key server.key -out server.csr
# echo 01 > ca.srl
# openssl x509 -req -days 365 -CA ca.crt -CAkey ca.key -in server.csr -out server.crt

で、最終的なimapd.conf がこんな感じ。

configdirectory: /var/imap
partition-default: /var/spool/imap
servername: mail.fortunerinn.org
admins: cyrus-admin
sieveusehomedir: yes
subscription_db: berkeley
sasl_pwcheck_method: auxprop
sasl_auto_transition: yes
tls_cert_file: /usr/local/etc/cert/server.crt
tls_key_file: /usr/local/etc/cert/server.key
lmtpsocket: /var/imap/socket/lmtp
idlesocket: /var/imap/socket/idle

imapsyncをportsから入れて、メールボックスを仮移行

# imapsync \
  --host1 192.168.xxx.xxx \
  --user1 silver --passfile1 passwdfile1 \
  --host2 192.168.xxx.xxx \
  --user2 silver --passfile2 passwdfile2

後は、Postfix + postgrey設定だな。

DNSまわりを整備

DNSSECをみすえてと、いい加減にBINDの肥大化と手順のややこしさにめげてきたので、DNSのResolverをunbound、Contantsをnsdに移行してみる。Jailでさくさくと複数環境を用意して、それぞれportsでinstall。

まずはunboundからざっと設定。localなzoneは、local-dataとして完全に記載する形にした。本当は外ファイルに出すべきなのかな。IPv6対応は外回線が確保できてからということで、あえてOFF。DNSSEC対応はこれから様子見つつテスト予定。portsなので起動も/usr/local/etc/rc.d/unboundからできるし、rc.confでunbound_enable=”YES”で起動も設定。


server:
        verbosity: 0
        interface: 192.168.xxx.xxx
        do-ip4: yes
        do-ip6: no
        do-udp: yes
        do-tcp: yes
        do-daemonize: yes
        access-control: 0.0.0.0/0 refuse
        access-control: 127.0.0.0/8 allow
        access-control: ::0/0 refuse
        access-control: ::1 allow
        access-control: ::ffff:127.0.0.1 allow
        access-control: 192.168.xxx.xxx/24 allow
        use-syslog: yes 

        private-address: 192.168.0.0/16
        private-domain: "localnet"

        local-zone: "localnet." static
        local-data: "ns.localnet. A 192.168.xxx.xxx"
        local-data-ptr: "192.168.xxx.xxx ns.localnet"

nsdも同様に別Jailに設定。ZONEは独自形式もできるようだが、そのままBINDのものを利用。逆引きの登録ができないのが若干不安。同じように登録してやればいいのかな。

と思ったら、ISPの業務移譲に伴い、逆引き移譲が消えているらしい。むー。


server:
        ip-address: 192.168.xxx.xxx
        hide-version: yes
        ip4-only: yes

        database: "/var/db/nsd/nsd.db"
        username: nsd
        zonesdir: "/usr/local/etc/nsd"

zone:
        name: "fortunerinn.org"
        zonefile: "fortunerinn.org.zone"

ついでに、RT105eでサーバへの静的NATもしているため、そちらも設定も変更しておく。


# nat descriptor masquerade static 1 1 192.168.xxx.xxx udp domain
# nat descriptor masquerade static 1 2 192.168.xxx.xxx tcp domain

今迄のサーバのBINDを止めて、一通り問題ないことをチェックしてから、移行完了。

unboundのlocal-dataをファイル分割。ついでに、nsdでSPFをIPアドレス制限で表明してみる(←まだやってなかった)。

Quartz Comporserで遊んでみる

Macで5分でARアプリを作る方法(AR without programming in 5min)を見ていたら面白そうだったので、いじって遊んでみる。

簡単に言えばパッチを組みあわせて作るビジュアルプログラミング。

2Dでも3Dでも適当に貼りつけて動かせるし、なかなかに楽しい。並列操作が得意な分、シーケンス操作が難しそうだが、これはマクロでもつくれというものなのだろう。

わけのわからないパッチが山ほどあるので、もうちょっと触ってみるつもり。

FreeBSD Jail作成(4)

easyjailで作成したjailはそのままでは使えないが、nullfs経由でmountしてやるとうまく行く様子。というわけで、/etc/fstabに追加。jail内の/basejailにmountすれば、/binなどのシンボリックリンクが有効になる。なるほど、こういうものがあるのか。

/jail/basejail  /jail/yayoi/basejail    nullfs  ro      0       0

で、色々調べた結果、Howto:FreeBSD jail vnet – Wikiにあるものを応用すればできるのかなと。/etc/rc.d/jail等にパッチをあてているけれども、内容を見るに割と素直そうだ。

FreeBSD update

たまには真面目にupdateの方法を調べてみる。多分、こんな感じなのかな。

# portsnap fetch    # get snapshot
# portsnap extract  # extract to /usr/ports
# portsnap update   # update
# portsdb -Uu       # index update
# pkgdb -aF         # fix dependency probrem
# portversion       # version check
# portupgrade -va   # upgrade

ついでに、WITHOUT_X11をつけずに作ってしまったportがあったので、pkg_deinstall でx11が入っているものを片っ端から削除しておく。

きょ、今日はこのへんにしといてやる

調子が悪かったので、宴会に行かずさっさと帰宅。

Twitterの発言から、Mecabを試してみようとfinkでインストール。

試してみると、見事に文字化け。どうやら、標準だとEUC-JPで全部処理しているらしい。仕方がないので、本体と辞書をUTF8で作りなおしてインストール。すると、今度はrubyバインディングが動かなくなってしまった。どこか妙なライブラリをひろってしまったんだろうか。

面倒そうなので、一端ここまでで中断。なんというか、暑さで気力が続かない。

FreeBSD Jail作成(3)

続き。

複数Jailとepairで繋ぐために、ブリッジを作成。epair0aに接続。

# ifconfig bridge0 create
# ifconfig bridge0 addm epair0a

というのを一々するのは面倒なので、/etc/rc.confにこう書く

cloned_interfaces="epair0 bridge0"
ifconfig_bridge0="addm epair0a up"

調べていると、Jailの起動とepairの両立がよくわからない。IP指定までして立ち上げるとepairが終わるというか、ezjail同様に”-c vnet”がきいてくれないし。

ifconfig_epair0b="vnet yayoi" あたりでいけるのかな?

FreeBSD Jail作成(2)

ezjailでは、起動時にIPを指定することを期待している。一方、VIMAGEを使うとepairを生成、それからjail起動、jailに割当てるという形式になる。結果、かなり相性が悪いらしい。色々書き換えて対応するパッチが昔あったようだが、今は無い。どうやら、素直に対処する方法はないようだ。

というわけで、あきらめて素直に作成することにする。どうせディスクは余っているし、アップデートの手間もかかるが、バッチ化できないわけではない。

まずは epair を作成。

# ifconfig epair create
epair0a

ezjailのbasejailを利用してコピー

# cp -rp basejail yayoi

jail 作成

# jail -c vnet name="yayoi" host.hostname="yayoi" path=/jail/yayoi/ persist

ホストとインタフェースが一致していないことを確認。別ネットワークスタックなので、先程作成した epair も見えない。

# jexec yayoi ifconfig
lo0: flags=8008 metric 0 mtu 16384
 options=3

epair0a を割当てる。これでホストとjailが繋がれ、jailからは一端であるepair0bが見える。

# ifconfig epair0b vnet yayoi
# jexec yayoi ifconfig
lo0: flags=8008 metric 0 mtu 16384
 options=3
epair0b: flags=8842 metric 0 mtu 1500
 ether 02:00:00:00:05:0b

このままでは一対一になってしまうので、ブリッジを介して接続するようにする。

FreeBSD Jail作成(1)

VMWare ESXi は、「構成」の「ストレージ」から新規ストレージを追加しておしまい。そのまま、FreeBSD に新規ディスクを割り当てる。

FreeBSD側では面倒だったので、まずは新規ディスクを認識させるべく sysinstall からfdiskしてlabelを貼り、勝手にnewfsしてもらう。全部丸ごと確保させると、Software Updateもついてくれるのか。いつの間にかsysinstallも/standではなくなっていた。隔世の感がある。

後は、/etc/fstab に登録してマウント。今回は/jailとした。

ezjailを使ってFreeBSD jailを効率よく管理するを参考にしつつ ezjail をインストール。

Jailのインストールのために、/etc/ezjail.conf.sample を元に ezjail.conf を作成して、ezjail_jaildir を先程のディレクトリに向け、ezjail_ftphostをftp.jp.freebsd.orgに変更。ベースとなる環境をまずはインストールする。

# ezjail-admin install

次に、ホスト側のdaemonの調整。

syslogdは、/etc/rc.confに一言追加。

syslogd_flags="-s -b 192.168.xxx.xxx"

同様に、ssh は、/etc/ssh/sshd_config で ListenAddressを追加。

sendmail も動いていたので、とりあえず /etc/mail/sendmail.cf を編集

# SMTP client options
O ClientPortOptions=Family=inet, Address=192.168.1.129

一応Update

# mkdir /jail/freebsd-update
# freebsd-update -b /jail/basejail/ -d /jail/freebsd-update/ fetch
# freebsd-update -b /jail/basejail/ -d /jail/freebsd-update/ install

Jailごとにネットワークスタックが独立するVIMAGEを使いたかったので、/usr/src/sys/amd64/conf/GENERIC を編集。SCTPは元からあったのを潰しておく。

# for Jail with Vimage
options         VIMAGE
nooptions       SCTP

ざっと make world

# cd /usr/src
# make KERNCONF=GENERIC buildkernel
# make KERNCONF=GENERIC installkernel

doggie氏情報によると、ReleaseのVMImageはtracerouteできないなどの一部バグがあるので、stableを追いかけた方が良いらしい。

ESXi4にFreeBSD 8.0Rをインストール

ESXi4にFreeBSD 8.0Rをインストール。事前にDVDイメージを取得していたのだが、どうやら壊れていたらしく、CDブート時にブートローダからイメージを読みにいって延々止まってしまっていた。最初はESXiとの相性問題を疑ったせいで、延々時間をかけてしまう。

結局、Boot用の最小イメージを落としてきて、それでネットワークインストール。

そういえば、PC 64bit archの名称が”amd64″なので、ダウンロード時に一瞬とまどってしまう。Release Noteを読めば Intel の 64bit も含まれているのはわかるし、そもそも歴史的にAMDが(珍しく)勝った命令セットでIntelが追随したというのも記憶を掘りかえせば知っている。歴史的・技術的には至極正しい。

よって、arch名としてはそのままでも問題ない。ただ一点、せめてウェブの誘導のところくらいはおもてなしの観点から “FreeBSD Intel/AMD 64bit “とか書いておいて欲しい、というような意味をtwitterで呟いてみたら、はたのさんから妙な顔をされた。ええ、技術者的に気持ち悪いのはわかります。

久しぶりなので、インストールはベースだけにして、そこから追加することにする。まずはscreenとかsudoとか色々と必要なツールをportsからインストール。

あ…Xを禁止するのを忘れていた。あわてて /etc/make.conf に WITHOUT_X11=yes をつけ加える。

[物欲] メモリ到着

メモリが到着したので、早速GT110bに装着し、VMWare ESXi4をインストール。今度は何事もなく入ってくれる。

問題があるのはクライアントの方。何といってもMac OS XにはVMware Infrastructure(VI) Clientはない。コマンドラインでリモート管理はできるようだが、最初からそれでやれると思う程自惚れてはいない。

というわけで、VMWare Fusion上のVI Clientからアクセスすることになる。普段はWindows Messenger程度しか入れていない仮想マシンなので、起動ももたつきなかなか面倒だ。

なんとかVMを作れるかな? と思えるようになったあたりで終了。

Home > Tags > ソフトウェア

Return to page top

123...Last »