第18回 Dockerで植物が育つ様子を自動録画してみよう――その2古賀政純の「攻めのITのためのDocker塾」(3/3 ページ)

» 2016年03月16日 08時00分 公開
前のページへ 1|2|3       

サービス起動・監視用の設定ファイルを作成する

 次に、Motionとhttpdを稼働・監視するsupervisord.confファイルをホストOS上で作成します。


# pwd
/root/supervisord_httpd_motion/
# vi supervisord.conf
[supervisord]
nodaemon=true
 
[inet_http_server]
port = 0.0.0.0:9001 ←クライアントのWebブラウザでSupervisorの管理画面にアクセスする場合に必要
username = admin ←SupervisorのWeb管理画面にログインするためのアカウント
password = abcd1234 ←SupervisorのWeb管理用のアカウントのパスワード
 
[program:motion]
command=/usr/bin/motion -n ←録画アプリを起動
 
[program:httpd]
command=/usr/sbin/httpd -DFOREGROUND ←Webサーバを起動

 Supervisorにおいて、Webブラウザ経由でサービスの監視を行うには、上記の例のように、「[inet_http_server]」の直下にアクセスを許可するネットワークとポート番号(0.0.0.0:9001)、ユーザー名(username =で指定)とパスワード(password =で指定)を記述しています。今回の例ではユーザー名「admin」、パスワード「abcd1234」でHTTPプロトコルを使って、DockerコンテナのIPアドレスに9001番ポートを付与することで、SupervisorのWeb管理画面にアクセスできるようになります。

録画アプリの設定ファイルを入手する

 次に、録画アプリの設定ファイルmotion.confをホストOS上で作成します。設定ファイルは、Motionに付属しているものを入手し、カスタマイズするのがよいでしょう。まずはMotionのRPMパッケージを入手し、ホストOS上に展開します。CentOS 7.xの環境において、RPMパッケージをインストールするのではなく、入手するだけの場合はyumdownloaderコマンドが有用です。yumdownloaderコマンドは、yum-utils RPMパッケージに含まれていますので、インストールされていない場合は、yumコマンドでインストールしておきます。


# yum install -y yum-utils
# yum install -y \
http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
# yumdownloader motion
# ls 
Dockerfile	motion-3.3.0.trunkREV557-11.el7.nux.x86_64.rpm	supervisord.conf

 ホストOS上に、「motion-3.3.0.trunkREV557-11.el7.nux.x86_64.rpm」がダウンロードできましたので、rpm2cpioコマンドとcpioコマンドを使えば、RPMパッケージを展開し、中に含まれているファイルを取り出すことができます。以下のように、入手したMotionのRPMパッケージをホストOS上で展開し、RPMパッケージに付属のmotion.confファイルを取り出します。


# pwd
/root/supervisord_httpd_motion/
# rpm2cpio motion-3.3.0.trunkREV557-11.el7.nux.x86_64.rpm |cpio -id
# cp ./etc/motion/motion.conf .

 取り出したmotion.confファイルをカスタマイズします。


# vi motion.conf

 設定ファイルmotion.confの中身はDockerと直接関係がありませんので、今回はパラメータの詳しい説明を省きますが、RPMパッケージに付属しているmotion.confファイルにおいて、筆者が変更したパラメータを以下に示しておきます。これ以外のパラメータは、RPMパッケージに付属のmotion.confファイルのものをそのまま使用しました。

パラメータ 意味
setup_mode on onの場合は、Motionが非デーモンモードで起動
ffmpeg_timelapse 60 60秒ごとに画像フレームを保存した動画を生成
sdl_threadnr 0 SDLウィンドウで表示するMotionのスレッド数(デフォルトは0)
snapshot_interval 60 60秒毎にスナップショットを撮影
target_dir /var/www/html/motion 画像や動画の出力先ディレクトリを/var/www/html/motionに設定
stream_quality 100 生成されたJPEG画像のクォリティを100%に設定
stream_motion on 動体検出時、stream_maxrateに指定したfps値に変更。通常は1fps
stream_maxrate 30 動体検出時は30fpsに設定
stream_localhost off ストリーム接続をローカルホストのみに制限しない
webcontrol_localhost off Web経由によるMotionの設定をローカルホストのみに制限しない

 コンテナが生成する画像・録画データを保管するためのディレクトリ「/var/www/html/motion」をホストOS上に作成しておきます。


# mkdir -p /var/www/html/motion

 次回はいよいよ、これまでに用意したDocker環境を使って撮影までのステップを紹介します。

古賀政純(こが・まさずみ)

日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリスト。兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国HPからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は日本HPにて、Linux、FreeBSD、Hadoopなどのサーバー基盤のプリセールスSE、文書執筆を担当。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ