mackerel-agentをchefでamazon-linuxにインストールするとエラーになった件
公式の手順にあるようにchefのcookbookを利用してインストールすると、サービスの起動時にエラーになる。
エラーの内容は以下
Starting mackerel-agent:/etc/init.d/mackerel-agent: 36 行: 7214 Trace/breakpoint trap $BIN ${APIBASE:+--apibase=$APIBASE} ${APIKEY:+--apikey=$APIKEY} --pidfile=$PIDFILE --root=$ROOT $OTHER_OPTS >> $LOGFILE 2>&1
結論:
最新版(v1.2.1)を利用する
cookbook 'mackerel-agent', tag: 'v1.1.0'
ではなく
cookbook 'mackerel-agent', tag: 'v1.2.1'
以下調べた履歴
mackerel.io
で、Amazon Linux AMI 2016.03での不具合が報告されているものの、修正済みのはず。
試しにchefではなく公式の手順で手動でインストールしてみると問題なくインストールできる。
手順は下記の内容
mackerel.io
この手順で入るってことは、何か別のものをインストールしているのかも?ってことで公式の手順にある "https://mackerel.io/file/script/amznlinux/setup-yum.sh"の内容を確認してみると
# import GPG key gpgkey_path=`mktemp` curl -fsS -o $gpgkey_path https://mackerel.io/assets/files/GPG-KEY-mackerel rpm --import $gpgkey_path rm $gpgkey_path # add config for mackerel yum repos rpm -ivh http://yum.mackerel.io/amznlinux/latest/x86_64/mackerel-repo-1-0.noarch.rpm
となっていて、amazon linux用のレポジトリを用意している様子。
一方chefのrecipeは
if platform?('centos') or platform?('redhat') or platform?('amazon') ~ yum_repository "mackerel" do gpgkey gpgkey_url if yum_cookbook_ver >= Gem::Version.new('3.0.0') description "mackerel-agent monitoring" url "http://yum.mackerel.io/centos/$basearch" action :add end
となっていて、これが原因だった。
"http://yum.mackerel.io/centos/$basearch"を"http://yum.mackerel.io/amznlinux/$releasever/$basearch"に書き換えたところ問題なく動作した。
そしてここまでたどり着いたところで、最新のレポジトリでは対応済みなことに気づいた。。
Support Amazon Linux repo · mackerelio/cookbook-mackerel-agent@499d779 · GitHub