Fedora Server 40搭載のRaspberry Pi 4BにLaminarをインストール

この記事は約5分で読めます。

Laminarとは

Laminarはシンプルかつ軽量なCIツールです。機能が最小限に抑えられておりLaminarを使うために覚えることはほとんどありません。LaminarはWebUIなどを提供するデーモンであるlaminardとジョブをキックするためのlaminarcコマンドの2つから構成されます。

WebUIはジョブの実行状況や履歴の表示だけであり一切の設定は行えず、ジョブの実行はlaminarcコマンドからしか行えないというとても尖った設計ですが、個人レベルや小規模なプロジェクトで使う分にはシンプルでよさそうということで、今回Raspberry Pi 4Bにインストールしてみました。

Laminarのインストール

FedoraのパッケージにLaminarは含まれていないので、今回はGitからソースコードをダウンロードしてきて自前でコンパイルしました。Fedora Serverでは開発ツールがデフォルトで入っていないので、最初にgitcmakeをインストールしておきました。

$ sudo dnf install git
$ sudo dnf install cmake

gitのインストールが出来たら下記のようにソースコードをダウンロードします。

$ git clone https://github.com/ohwgiles/laminar.git

この時点で依存しているライブラリがいろいろと不足している気がしますが、一旦cmakeを実行してみます。

$ cd laminar
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

すると、そもそもコンパイラが入っていなくて怒られてしまうのでgccg++をインストールします。

$ sudo dnf install gcc gcc-c++

再度cmakeを実行すると今度はライブラリ等が不足していて怒られてしまうので、エラーメッセージを見ながら都度下記のようにライブラリ等をインストールしました。

$ sudo dnf install capnproto-devel
$ sudo dnf install capnproto
$ sudo dnf install sqlite-devel
$ sudo dnf install zlib-ng-compat-devel

再度cmakeを実行すると成功してMakefileが生成されました。makeしてみますが、CMakefilesにかかれていなかった依存関係があるようで、さらに下記のようにライブラリを追加でインストールしました。

$ sudo dnf install boost-devel
$ sudo dnf install rapidjson-devel

再度makeを実行し、コンパイルが完了しました。laminarのインストールとサービスの起動を行います。

$ sudo make install
$ sudo systemctl start laminar

ここでも失敗しました。今回はソースからのインストールなのでlaminarユーザの作成とLaminar用のディレクトリの作成も必要なようです。下記のように作成しました。

$ sudo useradd laminar
$ sudo mkdir /var/lib/laminar

再度サービスの起動を行います。また、サービスの自動起動設定も行っておきます。

$ sudo systemctl start laminar
$ sudo systemctl enable laminar

ポート8080でWebUIにアクセスできます。外部からもアクセスできるようにポートを開放しておきます。

$ sudo firewall-cmd --add-port=8080/tcp --permanent
$ sudo firewall-cmd --reload

外部からもWebUIにアクセスできるようになりました。ジョブ用のディレクトリも作成しておきます。

$ cd /var/lib/laminar
$ mkdir -p cfg/jobs

/var/lib/laminar/cfg/jobs以下に実行権限を付与したシェルスクリプトなどを置くことでジョブを作成することが出来ます。あとはlaminarcコマンドでジョブを実行するだけです。

少し使ってみた感想

別記事で書こうと思っていますが、感想を少しだけ書いておきます。以前はJenkinsをRaspberry Pi 4Bにインストールして運用していましたが、Raspberry Pi 4Bだと力不足なのかWebUIの反応がいまいちでした。Laminarはシンプルで軽量なのでWebUIもきびきび動いています。また、Jenkinsだと実現方法に迷うことが多々ありましたが、LaminarはLinuxの知識でどうとでもできるのでほとんど迷うことがありません。Laminarが面倒を見てくれる部分は少ないですが、個人や小規模プロジェクトにはよいのではないかと思っています。

まとめ

本記事ではFedora 40 Serverを搭載したRaspberry Pi 4BにLaminarをインストールした際の流れを記載しました。Laminarを使った事例なども今後書いていきたいと思います。

コメント

タイトルとURLをコピーしました