サーバー構築一覧

git-media を使ってみる

git-media をインストールして使ってみます。Windows 環境にインストールして使っている事例がなかったのでちょっと手間取りました。

git-mediaとは

git-media とは巨大なバイナリファイルの扱いが苦手とされる git の拡張として作られたプラグインです。巨大なファイルにおいて、通常の git リポジトリに対してはファイルのハッシュ値を記録して、巨大なファイルの扱いに長けた別の場所にそのファイル実体を上げることが出来るようになります。
 こういった git のプラグインは他にもあって git annex とか有名(らしい)です。また最近の git には LFS( Large File Storage ) の拡張も出始めているので実は本内容はそのうち不要なものとなるかもしれません。

インストール

git-media では ruby スクリプトが使われているため、まずは Windows に Ruby を使えるようにするところからスタートです。
ここでは Ruby Installer (http://rubyinstaller.org/) を利用させてもらうことにしました。ここから 2.2.2 (32bit) を使用することにしました。32bit の理由は git 側が 32bit だったからです。 続きを読む


Gitlab (7.13.1) のその他の項目確認

メールサーバーの設定

新規にローカルのユーザーを作成した際にはメールで通知がいくようで、それがないとそのユーザーはパスワードを設定できないようです。
そのためにもメールサーバーの設定は済ませておく必要がありそうです。

これもまた /etc/gitlab/gitlab.rb ファイルに設定があるので適当なエディタで開きます。すると以下のような行が見つかるので、この部分を編集していきます。

これらをざっくりと以下のような感じにします

各設定項目は、メールサーバーの状態に合わせて設定します。
問題がなければユーザーを作成したりグループを作成したりといったタイミングでメール通知が飛ぶようになるかと思われます。

自分の環境ではメールが確認できず苦戦しましたが、外部メールサーバーを使う前提でローカルの Postfix を停止させたところうまくメールが飛ぶようになりました。同じような現象に出遭っている人はもしかするとコレで改善するかもしれません。

リポジトリの一覧

GitBucket 導入後に、公開リポジトリの一覧が見れたらいいなと思っていたので、 GitLab ではどうか確認してみました。
ここでは適当に2ユーザーくらい作ってそれぞれにリポジトリを作ってみました。

サインインしない状態で一覧みることができるかも気になりましたが、以下の画面に示すリンクから飛べるようです。

gitlab-search-repo-1

そこから All Projects というメニューを選ぶと以下のように既にあるリポジトリをリストとして見ることが出来ました。この画面を見るとさらに検索が出来るようなので多くのリポジトリがあっても大丈夫そうに見えます。(あくまでプロジェクト名での検索の模様です)

gitlab-repos-list

グループでのリストの様子もうかがえますし、さすがに機能がそろっているなと感じました。

リポジトリの操作

リポジトリへのプッシュ種別

HTTP でも SSH でもプッシュが可能なようです。プロキシのこととか考えると、httpが対応してくれているのはありがたいですね

リポジトリのフォーク

ちゃんとforkして作業が出来るようでした。fork元がどのくらい fork されたのかを正しく把握するのは難しそうです。フォークされた数がわかるようです。また forkした側は、どこからフォークしたのかが表示として出てくるみたいです。

マージリクエスト

いわゆるGitHubのプルリクエスト相当の機能で、マージリクエストと呼ぶリクエストを出すことが出来ます。forkしたブランチで何かしらの実装を行い、それを fork 元にマージしてもらって本家に反映する、というフローをするために使われます。
 マージリクエストを出されると、ちゃんとメールで通知が行われました。GitBucket のときのリクエストはメールが飛ばないような感じだったので、こちらはちゃんと使えそうな印象です。


Gitlab (7.13.1) でユーザー認証に LDAP を使う

タイトルの通りですが、認証に LDAP というか Active Directory を使えるかどうかを試してみました。Enterprise Edition だと間違いなく LDAP の機能を備えているのですが、 Community Edition でもこの機能が使えるかどうかがとても気になりました。

LDAPを使うように設定する

WebUI の画面からは設定することが不可能でした。
そこで、設定ファイルを編集して LDAP 認証を有効化します。

/etc/gitlab/gitlab.rb ファイルがあるのでこれを適当なエディタで開きます。すると以下のような行が見つかるので、この部分を編集していきます。

先頭の # がコメントの意味なので必要な部分をコメントから外します。このとき、後続の EOS の行もコメントになっているので外します。忘れがちなので注意します。この部分を見ると GitLab は2つめの LDAP サーバーを設定できるようですね。
コメントを外したら各項目を設定します。

設定したら、 reconfigureを実行します。
# gitlab-ctl stop
# gitlab-ctl reconfigure
# gitlab-ctl start

Webブラウザでアクセスして、再びログイン画面を開いてみます。するとログイン入力する箇所で以下のように変更されているかと思います。つまりこの画面にならなかったら、まず LDAP が有効化されていないので、設定を見直す必要があります。

gitlab-signin-ldap-7_13_1

当たり前ですが、ログインユーザーの種別に応じたタブでサインインしないと認証が通らないようです。

まとめ

LDAP (Active Directory) が認証に使えることがわかり、やりたいことの1つがクリアできました。Enterprise版だけの機能かと内心思っていただけに使うことが出来てよかったです。


CentOS6.5 に Gitlab 7.13.1 をインストール

GitBucket にほしい機能があったのですが、 GitLab にはあるかなと思ったので久しぶりにインストールしてみることにしました。欲しい機能というのは、リポジトリの横断的な探索機能とか一覧機能とかです。メンバーで寄って集ってコードを置くような場所だと一覧や検索は欲しい機能です。

CentOS7ではあまりにシステム周りが変わっているようなので、手慣れている CentOS 6.5 でまずは試してみることにしました。
ちなみにインストールタイプは Minimal として設定しています。
定番の SELinux無効化 も行っておきます。

Gitの更新

CentOS 6.5 の yum で Git インストールすると今となっては古いバージョンなので比較的新しいバージョンを入れることにします。

新しい git のために、古い git でソースリポジトリを clone して make します

こんな感じでやろうとしたら git がまだ入っていなかったようなので、以下のようにしてもうまとめて実行(Minimalインストールだからだと思います)

これをやってから再び git の clone を実行してソース類を取得します。

なにやら途中でエラーが出たので、別のパッケージを追加

改めて make all を実行します。

インストールが終わったので古い方を削除

GitLab本体のインストール

昔は1つ1つ手作業でインストールおよび設定していて、大変な思いをした記憶がありますが、最近はパッケージ化されて随分とインストールしやすくなりました。公式のページにもその手順は書いてあるので、スムーズに入れることが出来ると思います。
以下の手順は公式ページのものほぼそのままだったりしますが、問題なくインストールすることが出来ました。

こんな感じとなります。回線がやや遅いようで、320M程度といってもそこそこの時間がかかります。

日本語化

日本語化パッチを作っている方がいらっしゃるのでそれも利用させてもらうことにしました。英語のまま使う場合にはこの手順は不要です。
現時点においては 7.9.4 までのバージョンに対応しているようなので、その範囲で日本語化を行えるような印象です。英語が直接コーディングされているようなので、バージョンが変更になるとうまく日本語化できない箇所も多くあるようです。

うまくパッチを当てられる部分だけあてるので、このあと Y や Enter 連打だったりします。

Gitlab起動

それでは以下のコマンドを実行して起動してみます。最初はそこそこ時間がかかります。

なんかエラーが出てしまったのですがもう1回実行してみます。

サーバーの IP アドレスをいれて最初の画面が出るか確認します。問題なければ以下のような画面が出ると思います。ここでデフォルト管理者のID/パスワードでログインします(この情報は公式ページを参照)

gitlab-home-7_13_1

gitlab-signin-7_13_1

まとめ。次回へ続く

長くなってきたので1回ここらで区切りとします。昔は大変だった GitLab のインストールも随分とやりやすくなりました。さすがにコンテナ1つ配備して終了できる GitBucket 並ではありませんが、手こずる部分はなくなったと言えると思います。
 次回は GitLab の操作や設定そのものをチェックしてみたいと思います。



Gitblit でユーザー認証をドメインサーバーに任せる

GitblitがQNAPで動作できたという記事を以前に書きましたが、GitblitはWindows上でも簡単に動かすことが出来ます。公式ページで Gitblit GO というパッケージを配布しており、ダウンロード後は中に入っているバッチファイルを実行するだけで、サービスのホスティングが可能となります。

このGitblitの認証は割とたくさんの方式をサポートしています。通常だと管理者が1つずつユーザーを追加する状態ですが、これをWindowsドメインに任せることができます。GitblitはLDAP認証をサポートしています。日本語での記事が見つからないようなので、記事にしてみました。

早速設定方法です。
gitblitを展開した中に、data/gitblit.properties という設定ファイルがあります。
この中の項目を書き換えていきます。

ウィンドウズドメインサーバー(LDAP)を使うための設定

LDAP用の設定

ここからは各自の環境に合わせて適宜変更してください。
ここではサーバーを 192.168.0.1 とし、ドメイン名を mydomain.com (ユーザーはMYDOMAINに参加)と仮定して設定方法を下記に示します。

ドメインの中を検索するユーザーとして、searchUser というユーザーを準備して、パスワードを password としておきます。

これらの設定をしたうえで、gitblitを起動し直して、ユーザーがログインしようとするとWindowsドメインに認証にいくと思います。
うまくいかない場合にはサーバーのアドレスや、usernameが間違っていないかチェックしてみて下さい。またユーザー名の前にはドメイン名を付加させることもお忘れ無く。

企業などで、細かくグループが分かれている場合には、accountBase, groupBase らを変更するだけでなく、
realm.ldap.bindpattern といった項目も変更が必要になるかもしれません。

問題点

試したバージョンが 1.6.0 です。この場合 LDAP認証されたユーザーはデフォルトで様々な権限を持たないようです。そのため、リポジトリの作成権限すらありませんのでちょっと使いづらいかもしれません。パブリックなリポジトリがあればそれらに対してコードの取得程度は出来るんでしょうが・・・。
このあたりは改善される気配があるので、様子見です。せめてグループ単位でデフォルトの設定を適用できるような改良が望まれます。


Jetson TK1で地デジ録画

Raspberry Piで地デジ録画をやってみた事例はあるので、ではJetson TK1でやってみるか!と思って試してみました。基本的にはARMですし、プリインストールのOSがUbuntuベースであるのでそこまで難易度が高いわけではありません。

必要になるのが地デジチューナーです。ここではUSB接続の KTV-FSUSB2を使用しました。数年前に購入して、改造を施して押し入れに眠っていた物です。この改造についてはここでは触れません。
このドライバのソースをGitHubよりダウンロードしていきます。それとパッチもまた適用しておきます。
これらの手順についてこれから説明します。

ドライバの構築

GitHub(https://github.com/sh0/recfsusb2n)からダウンロードしてきました。
パッチについては、こちら(適当な何かの別館 recfsusb2n tsspliteer_lite内蔵・httpサーバー機能追加・recpt1ctl対応パッチ)。

ダウンロードしたらこれらをターゲット上へコピーしておきます。

$ unzip recfsusb2n-master.zip
$ mv recfsusb2n-master recfsusb2n
$ mkdir patch
$ unzip recfsusb2n_http_patch2.zip -d patch
$ cd patch
$ cp Makefile ../recfsusb2n/src/
$ cp *.h ../recfsusb2n/src/
$ cp *.cpp ../recfsusb2n/src/

Makefileを開いて、boost_thread-mtの箇所を書き換える。
そして、#LIBSの行を有効化して、元々のLIBS行をコメントアウトします。

LIBS   = -lpthread -lboost_system -lboost_thread -lboost_filesystem
#LIBS = -lpthread -lboost_thread -lboost_filesystem

boostライブラリを取得してきます。

$ sudo apt-get install libboost-thread-dev libboost-filesystem-dev

ビルドします

$ cd recfsusb2n/src
$ make

パーミッションルールの追加を行います

$ sudo gedit /lib/udev/rules.d/89-tuner.rules

ウィンドウが開いたら、以下のように中身を記述します。見やすいように改行を入れていますが、1行で書いてしまって下さい。

設定をリロードさせた後、念のため再起動します。ここではパワーオフまでです。

$ sudo udevadm control --reload-rules
$ sudo poweroff

KTV-FSUSB2を取り付けて、電源を入れます。
起動したらターミナルから認識しているかどうかを確認してみます。
以下のようになったら認識できていると思います。

適当に録画してみる

$ cd recfsusb2n/src
$ ./recfsusb2n -bv 27 30 test.ts

このtsファイルをWindows7側などに持ってきて、再生できるか確認してみます。
うまく動作していれば、そのままテレビ映像が表示されます

リアルタイム視聴してみる -NGでしたが-

VLCをインストールします。

$ sudo apt-get install vlc

インストール後、下記のようにコマンドを打ち込んでテレビ映像が表示されるか確認します。

$ ./recfsusb2n --b25 27 - - | vlc -

しかしながら、自分の環境では初期フレームは何か表示されるものの視聴できませんでした。

今回はパッチ当てて内蔵HTTPサーバー機能というものを取り込んでいるので、これで確認してみたいと思います。

$ ./recfsusb2n --b25 -v --http 8888

vlcを起動して、 http://localhost:8888/27/ を開いてしばらく待つと、ようやく再生が始まりました。
ただ非常に重く、CPUで全部デコード処理をやっているかのようです。
HWアクセラレータがデフォルトではOFF状態だったので、これらをONにしてみましたが変化せず。
ファイルキャッシュとして 300 だったものを10倍にしてみたところ多少はマシになったように思いますが視聴には耐えない感じ

$ sudo apt-get install vainfo
$ vainfo

結果を確認してみると、DRIのドライバがないようでハードウェアアクセラレートが効かない模様。
だからリアルタイム視聴がうまくいかなかったのだと思います。

まとめ

現時点でのドライバの都合もあるので、録画そのものは出来るけど視聴はこのボードでは難しいようです。
消費電力を売りにして、録画だけ行うサーバーにするのはアリのようです。当初は、うまくいったらCUDAを使ってエフェクトをリアルタイムで適用しつつ録画を再生するなんてことを考えていましたが、現時点ではそれは夢となってしまいました。
 また、ちゃんとした録画サーバーにするにはFoltiaだとか、epgrecだとかのシステムを入れる必要があると思いますが、それらについては未検証です。動くとは思いますが…。
折角のTegra K1搭載のボードなので、もうしばらくはグラフィックス寄りのプログラムを書いていじってみたいと思います。よって録画関連のテストはここまで!


QNAPファイルサーバー(NAS)で、Gitを使いたい

QNAPのファイルサーバー(NAS)にSubversionは以前いれてみたので、Gitも同様にできないかと考えていました。できればGitLabとか入れてみたいなと思っていたのですが手持ちの TS-439では厳しいようだったので、他の物を探してみました。
その結果、warファイル1つで簡単にGitリポジトリのホスティングをできるGitBucketがあったので、これを導入してみることにしました。以下はその導入記録です。

QNAPにtomcatを入れる

QNAP/AppCenter(QPKG) のページからJREをダウンロードしてPCに展開します。
そして、展開フォルダを指定してインストールを行います。
続いて Tomcat についても同様の手順でインストールを行います。
(ここでは、JRE_6.0.22_x86.qpkg, Tomcat_6.0.20_x86.qpkg を使用しました)

インストール後は Tomcat を起動して、画面を開いてみます。

qnap-tomcat

tomcat のアプリケーションを配置するフォルダは
/share/MD0_DATA/.qpkg/Tomcat/tomcat/webapps
になる模様。
$CATALINA_HOME は /share/MD0_DATA/.qpkg/Tomcat/tomcat ということのようです。
そこで、$CATALINA_HOME/conf/tomcat-users.xml を開いてユーザーを編集します。

※ ここ見れば既存のユーザーとパスワードの組み合わせもわかると思います。

そして、Tomcatの管理画面にログインすると次のように表示されます。

tomcat-manager

GitBucketのインストール

https://github.com/takezoe/gitbucket/releases
から gitbucket.war をダウンロードして、これを先ほどのTomcat管理画面からアップロードします。ここで使用した gitbucket.war は 1.8 のバージョンとなっています。

さて、GitBucket を Start を押すと・・・起動しません。
ログを確認してみると、クラスが足りていないような感じです。
javaが古いのかと思って調べてみたのですがどうやら Tomcat のほうが古いようです。qpkgでインストールされるのは 6.0系なようで、GitBucketは 7.0 以降のものを必要としているようです。残念。

というわけで、Tomcatの新しい物が利用可能になれば使えるのかもな~と思っている次第です。


RhodeCodeが様変わりしてた

RhodeCode が良さそうに思って以前に導入記事を書いてみましたが、久しぶりにどうなったかなと思って確認したところ、なんと色々と大きく変わっていました。

RhodeCode Enterprise というものになっていて、20ユーザーまではフリーで使えるという状態のようです。以前はそんな制約はなかったと思います。GPLv3 のライセンス下で配布されていたと思います。

検証当時は GitLab vs RhodeCode で、個人的には RhodeCode を推していこうと思っていたのに、この制限があるとチームで使う際には除外されていきそうです。残念。

追記

どうやら、1.7.1はGPLv3のままの提供、その後の新バージョン 2.x 系を RhodeCode Enterprise としてライセンス体系を変えたっぽいです。


メールサーバーにSPF設定

メールサーバーを構築して、いざ gmail のアカウントに到着するか?!と試したところ、迷惑メール扱いされたので対策してみました。これから記すのは OpenDKIMをインストールして SPF の設定を行った流れです。

続きを読む