[ #ARM ][ #docker ][Golang][監視] mackerel-agent-plugins をAArch64でbuildする。

AIX、UNIX、LinuxARM
Screenshot-2018-3-16 kometchのダッシュボード · kometch

mackerel使ってますかね?

個人的にmackerelの嬉しいところは、ARM向けのバイナリを配布しているところでしょうか。
不満といえば、mackerel-agentはARMバイナリを配布しているのに、mackerel-agent-pluginは配布していないことです。

ということで、自分の家用にAArch64向けにbuildする方法をメモしておきます。

前提条件:

docker-engineを導入しておくこと。

$ uname -rm
4.14.26-sunxi64 aarch64
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

mackerelio/mackerel-agent-plugins: Plugins for mackerel-agent

手順

1. mackerel-agent-pluginsをgit cloneしておきます。

git clone https://github.com/mackerelio/mackerel-agent-plugins.git

2. /mackerel-agent-plugins/packagingに移動し、deb-v2をdeb-v3としてコピーする。

3. deb-v3/debianに移動し、以下のファイルを編集する。

Source: mackerel-agent-plugins
Maintainer: Mackerel Developers <[email protected]>
Section: misc
Priority: optional
Build-Depends: debhelper
Standards-Version: 3.9.3

Package: mackerel-agent-plugins
Depends: ${shlibs:Depends}, ${misc:Depends}
-Architecture: amd64
+Architecture: arm64
Description: metric plugins for mackerel-agent
metric plugins for https://mackerel.io (Monitoring SaaS)

4. mackerel-agent-pluginsディレクトリに戻り、Makefileを編集する。

--- Makefile.org 2018-03-03 22:29:31.621339892 +0900
+++ Makefile 2018-03-16 19:23:06.727160630 +0900
@@ -1,4 +1,4 @@
-VERSION = 0.45.0
+VERSION = 0.46.0
VERBOSE_FLAG = $(if $(VERBOSE),-verbose)
CURRENT_REVISION = $(shell git rev-parse --short HEAD)

@@ -95,6 +95,10 @@
cp build/mackerel-plugin packaging/deb-v2/debian/
cd packaging/deb-v2 && debuild --no-tgz-check -rfakeroot -uc -us

+deb-v3:
+ $(MAKE) build/mackerel-plugin GOOS=linux GOARCH=arm64
+ cp build/mackerel-plugin packaging/deb-v3/debian/
+ cd packaging/deb-v3 && debuild --no-tgz-check -rfakeroot -uc -us
release: check-release-deps
(cd tool && cpanm -qn --installdeps .)
perl tool/create-release-pullrequest

5. 以下のコマンドを実行する。

$ docker run --rm -it -v $PWD:/root -w /root kometchtech/mackerel-build:latest make deb-v3

golang-1.10の入ったイメージをベースに、debパッケージを作成できるように、開発用ツールを追加導入したものです。AArch64ベースで作成しているので、他の環境では動作しません。

これで、Docker containerでエラーがなく正常に終了したのならば、packaging/deb-v3/debian/以下にdebパッケージが作成されているはずです。
ホスト環境にgolangなどを追加で用意する必要はありません。

この記事を書いた人

kometchtech

うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。 Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

kometchtechをフォローする
タイトルとURLをコピーしました