ansible のお試しがてら、 Raspberry に Python MPI 環境を作ってみる

サーバを同一用途で複数台用意してある環境って、仕事関係ではフツーにある環境なわけですが、それらの設定変更となると、同じ手順を台数分だけ繰り返し。なるべく作業者のレベルに左右されないような手順を用意したとしても、稀に手順ミスってトラブルなんてことも起きちゃうわけですよ。
作業者しても、出来る限り楽したいですし、定型化可能な作業だったら、コマンド一発で対象全台に設定適用したり、必要なファイルを配布したり出来れば、余計な手順やミス発生のリスクも減らせて、万々歳。

というわけで、オープンソース界隈でも「構成管理ツール」と言われるものが、いくつか開発されているんですが、その中でも ansible が、最近はお薦めらしので、ちょっといじってみようかと思った次第。

Ansible seamlessly unites workflow orchestration with configuration management, provisioning, and application deployment in one easy-to-use and deploy platform.

[From Ansible Use Cases]

Ansible(アンシブル)は、レッドハットが開発するオープンソースの構成管理ツールである。構成管理に加え、オーケストレーションやソフトウェアデプロイメントの機能を持つ。

[From Ansible (ソフトウェア) - Wikipedia]

同じようなツールだと、 Chef や Puppet と言うものもあるようですが、

  • エージェントレスで、管理したい側へは ssh 接続出来れば良い

と、利用するまでの敷居が低い、というのもお薦めのポイントになっているようです。

とりあえず、ラズパイ Cluster (モドキ)を構成してみる準備

まずは構成

今のところ、Raspberry Pi3 は1台しかないので、それを管理対象に。それと別に管理サーバとして Debian sid を仮想マシンで準備して、ここに ansible をインストール、という非常にミニマムな構成です。

ansibleのテスト環境

図にも書いてある通り、ホントは何台も並べて、クラスタリングしたいんですけどね…。

これに関してはどっちかというと、親である自分のほうが複数台並べて Rasp Pi クラスタ組んでみたいという気持ちのほうが大きかったりしますけど、息子もプログラミング自体には興味があるようなので、作ったクラスタで一緒に遊ぶってのも出来るなぁ、とかとか。

[From 子供に PC を渡そうと思ってるんですけどね - Soukaku's HENA-CHOKO Blog]

ま、 ansible に慣れることが目的なので、このまま進めます。

HA8000の中古を手に入れるなど

ヤフオクも上手く立ち回れば、かなりの掘り出し物を手にすることが出来るわけですが、今回はホント上手くいったということで、HA8000/TS10 AK1 という日立の IA サーバの中古を入手することに成功しました。

2010 年後半に出たモデルですが、Xeon X3430 が載ってて、それに LSI Logic の MegaRAID SAS 2108 が載って RAID も組めるぜ〜、というのが、送料込みで 3,000 円以内で手に入ったんだから、これはもう小躍りするほかないという状況。あと、出品者側の説明にはなかった SCSI I/F と DAT72 ドライブが載ってたというオマケも付きましたし…。(ただ、媒体の容量的には DAT72 、微妙なんだよねぇ…。)

ここ二週ほど、ちまちまと動作の確認をしていたんですが、DVD-ROM ドライブが動作不良でメディアを認識出来ない状態だったこと以外は、特に問題なし。
USB - SATA 変換ケーブル経由で繋いだスーパードライブ使えば、OS インストールできるし、何故か余らせてた ECC 付き の DDR3 DIMM も難なく認識してくれたし、HDD もこれまた手持ちの SATA の 1TB のものをホットスワップベイに挿して問題なく認識してくれたので、手持ちのコマで通常利用可能な状態まで持っていけたというのも、(お財布的に)かなり助かったなぁ、と…。

この先、どうするか、ですが

そもそも、新しく機材を調達しようと思ったのは、 Mac mini や LIFEBOOK で動かしていた VirtualBox による実験環境を集約。これにより、 LIFEBOOK を用途的に浮かすことが出来れば、家族が使っている調子の悪い ThinkPad をそれで置き換えられるな、というのが発端。
そこになんともタイミング良く、今回入手した HA8000 がヤフオクに出品された、というわけ…。

VyOSマシンは三代目に

さて、およそ 3 年前に仕立てた 二代目 VyOS マシン。

ま、XP 世代のマシンですが、よほどこのことがなければ、当面このままですね〜。

[From 急遽、Vyatta のハードを入れ替え - Soukaku's HENA-CHOKO Blog]

なんて書いていたんですけど、まるっと3年経過したところで、謎の電源ダウンから電源入らずうんともすんとも言わない状態になってしまったので、仕方なく対外接続を NTT 東日本からの貸与ルータで凌いでたんですが、ヤフオクでかなりお手頃な PC を落札。
それが今日到着したので、早速セットアップして、無事復旧したところ。

先代が、Sempron 18003000+ 、メモリ 1GB512MB だったのですが、今回のは Celeron E1400 でメモリ 4GB とハード的には大幅にスペックアップした感じですね。(で、何故か二代目、三代目と立て続けに富士通の PC だったり…。)

ヤフオクで買った中古だから、というわけじゃないでしょうけど、内蔵 HDD への VyOS 自体のインストールは問題なく終わるものの、なぜかそこからは起動できず、grub の設定で USB メモリにブートローダを入れることで起動出来るようになったという…。
HDD も部屋ん中に転がってたやつを適当に転用してますんで、PC に問題があるのか、 HDD がおかしいのかまでは切り分けてないんですが、今日のところは繋がっただけで善しとしておくことにします。
# 8GBクラスの USB メモリ調達して、 VyOS 入れ直そうかな…。

海老名市立図書館での著作権侵害状態は、改善されたのか?

以前、指摘していた、海老名市立図書館の Web サイトで恒常的に著作権の侵害をしている状態にあるのかも、と指摘していた件ですが、

Webサイトに掲載されているもの全てが「海老名市または指定管理者」と主張しているわけですけど、検索結果画面で利用している Google ブックスが提供している書影データって、著作権者は Google になるんじゃないでしょうか?

[From 海老名市立図書館での著作権侵害は他にもあるのでは?というお話 - Soukaku's HENA-CHOKO Blog]

どうやら、その状況が回避されたように思われます。

どこが問題だったのか?

問題だったのは、サイトポリシーに記載される「著作権について」の文章。

現存するアーカイブで 8月 20 日頃に取得されたものまでは、以下のように

本サイトに掲載されている情報(文章・ロゴ・商標・映像・写真・イラスト等を含むがそれらに限らない)の著作権その他の知的財産権は、特段の記載がない限り海老名市または指定管理者が保有しております。

[From サイトポリシー | 海老名市立図書館]

蔵書検索で表示される書影データを Google Books APIs を経由して表示しているにも関わらず、それについて「特段の記載」をしていないことから、Web サイト中のコンテンツ全てに対して「海老名市または指定管理者が保有」と権利主張しているような状態となっていたわけです。

最近になって、サイトポリシーをチェックしたところ、「著作権について」の部分が以下のように書き換えられていることが確認されたため、一応 Google に対する著作権侵害が行わていている疑いはなくなった、と言える状況になったのかな、と…。

本サイトに掲載されている個々の情報(文章・写真・イラストなど)は、著作権の対象となっています。また、本サイト全体も編集著作物として著作権の対象となっており、ともに著作権法により保護されています。

[From サイトポリシー | 海老名市立図書館]

まぁ、相変わらず Google Books APIs を利用した書影データの表示については、明示していないんですけどね。

あと、サイトポリシーの改訂をいつ行ったのか、という改版履歴の日付が入ってないので、いつ改版したのがよくわからないんですよねぇ。少ないことも、ここ 2 ヶ月以内に手直しされた、ということだけは言えるわけですがね。(リニューアルから1年近く放置していた、ということでもあるのだな。)

Karabiner-Elements を試してた

Sierra 対応版リリースまでの公開された Karabiner-Elements を試してみたのだけど、うちの環境では微妙な感じなので、一旦使うことを諦めた。

Sierra対応は、まずは単純なキーの変更を行える機能をKarabiner-Elementsとして開発中です。
(設定画面を除くとSierra上で動作しています)

Karabinerのフル機能のSierra対応はKarabiner-Elementsが完成してから対応します。

https://github.com/tekezo/Karabiner-Elements

[From Karabiner - OS X用のソフトウェア]
Karabiner-Elements Preferences画面

結局、GoogleAnalyticsプラグインが悪さしていたようで

MySQL から MariaDB にリプレースしたら MovableType のダッシュボードにアクセスできなかった件、実際には管理画面だけでなく、ブログ内の記事検索なんかもうまく動かないという状況だったわけですが…。

"GoogleAnalytics::Provider" に対応する Perl モジュールは存在しているので、内部的に何か不整合があって、うまくアクセスできないという状況の模様。

MovableType と MariaDB の組み合わせでエラー? - Soukaku's HENA-CHOKO Blog

復旧させるために色々試行錯誤。仮想マシン上に Debian sid インストール。そこにトラブっているのとほぼ同等の環境準備して、新規に MovableType インストールしてみたり、テスト環境と本番の間で DB のエクスポート/インポート繰り返してみたり、とやっていたわけですが…。
ふと「MovableType を今とは別のディレクトリにインストールして、テンプレート類はコピー、設定ファイルの PATH だけ書き換えてみたら動くかも?」と思いついて、実際にやってみたところ、管理画面へのログイン成功!

MovableType と MariaDB の組み合わせでエラー?

MariaDB へリプレースして特に問題ないや~、と思っていたら、なぜか MovableType の管理画面へのアクセスができなくなった。

ブラウザでアクセスして、管理画面にログインしようとすると、

mt.cgi にアクセスするとエラー

Can't locate object method "is_ready" via package "GoogleAnalytics::Provider"
というエラーが出て先に進めない状態。

MovableType のインストールディレクトリのしたを探してみたら、

root@vps2:/var/www/MT5# find -name "*Provider*" -type f
./lib/MT/Stats/Provider.pm
./plugins/GoogleAnalytics/lib/GoogleAnalytics/Provider.pm

"GoogleAnalytics::Provider" に対応する Perl モジュールは存在しているので、内部的に何か不整合があって、うまくアクセスできないという状況の模様。

とりあえず、xmlrpc 経由で画像をアップロードしたり、エントリーを書いたりということは問題なく出来ているんで、mt.cgi だけの問題の模様。

さて、どうしたものかね…。
#切り分けのために、 MariaDB → MySQL という方向でのリプレースをやってみる、という手はあるが。

MySQL を MariaDB でリプレース

MySQL で不満があるわけじゃないんですけどね。MySQL からフォークした MariaDB の話を聞くことが多くなってきた。

MariaDBは、MySQL派生として開発されている、オープンソースの関係データベース管理システム (RDBMS) である。

[From MariaDB - Wikipedia]

互換性の面での問題もないようだし、Zabbix と組み合わせるデータベースとして使う事例も増えてきているいるようですけど、

Red Hatは次期メジャーアップグレードバージョンとなる「Red Hat Enterprise Linux 7」では、デフォルトで使われるリレーショナルデータベースが「MySQL」から「MariaDB」へ変更される見通しであることがRed Hatサミットで発表されたことを、ITWire.comの記事「Red Hat ditches MySQL, switches to MariaDB」が伝えている。

[From RHEL7、MySQLからMariaDBへ変更 | マイナビニュース]

RHEL 7 で MySQL から MariaDB へデフォルトが変更になっているとなると、今後お仕事で使う機会が確実に出てきそう。ということで、手元の環境でも試しておこうとリプレースしてみた次第。
#Oracle に買収されたことで、先行きが見えにくいというのも、 MySQL が使われなくなりつつある理由みたい。

「社内の常識」の押し付けで躓いたゴルスタ

利用者である中高生に、「運営批判したら即アカウント凍結、解除には反省文」という対応を行っていた中高生専用を謳っていたSNS 「ゴルスタ」の騒動ですが、結局運営会社であったスプリックスが非を認め(形式上は)謝罪することになったわけですが…。

ちなみに、スプリックス社長の平石明氏は、自身のインタビューが掲載されたWebページにどんどん削除依頼を出しているのか、ページが消えていってます。

[From ゴルスタ運営会社スプリックスの「謝罪文その2」がいろいろと酷い - Hagex-day info]

とまあ、社長の過去のインタビュー記事消されているということなのですけど、残ってたら困るようなことでも話してたんですかね、と勘ぐりたくなりますね。

やはり、騒動の影響は大きかったのでしょう。一時期、謝罪文とゴルスタ終了の告知の画像だけが表示されるページを表示していたスプリックスのWebサイトも、先週あたりから通常時のものに近いものが表示されるようにはなりましたが、企業コンセプトを説明するページや採用情報といったメニューが復活しておらず、事業の柱のひとつであるはずの教育IT事業の紹介ページへのリンクも消されているなど、本来の内容には戻せていないようです。

なぜ、スナップスタディまで?

「教育IT事業」の目玉としていたゴルスタで、盛大に躓いたわけですから、事業体制の立て直しは大変でしょうね。で、本来サービス止めなくても良さそうな「スナップスタディ」というサービスも終了しているんですね。

その辺の疑問のヒントとなるようなことをまとめてくれていた人が居たようで、

ツイッターおじさんがなぜ「ゴルスタ」が生まれたのか
をかってに推測してみた。

[From 「ゴルスタ」がなぜ生まれたか考えてたツイッターおじさん。(だれも聞いてない) - Togetterまとめ]

Raspberry Wifi Router を試してみたんだけど

試してみる、というか、イメージさえ、ちゃんと MicroSD に書き込めれば、あっさりと使えるようになりますな〜。

This project aims to build a descent Wifi Router out of a Raspberry Pi which is easily configurable via a dynamic web interface designed in HTML/PHP.

[From Raspberry Pi - Wifi Router Project]

Paspberry Pi 3 であれば、 AP モードに対応した Wi-Fi チップが載っているようなので、 ほんとアッサリと立ち上がるのはいいんですけど、ポートフォワーディングやパケットフィルタと言った機能の実装は、これからの予定になっているようなので、本格的に使うにはまたきつい感じですね。

Raspberry WiFi RouterのWeb GUIトップ

中身は、 Raspbian / Debian なので、CUI から設定したり、足りないパッケージがあったらインストールしていけばいいわけですが、それだと「お手軽さ」はなくなっちゃいますもんね。

ネットワークゲートウェイに特化した OpenWrtRapsberry シリーズに対応しているようなので試しているんですが、こちらはまだうまく動かせてなかったりします。
#多分、またイメージ焼くの失敗しているんだと思う…。

#お出かけ用ルータには、ちょうどいいぐらいのサイズなんですけどねぇ…。