5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Tips]chef-td-agentで自作のpluginを利用する

Last updated at Posted at 2023-08-31

chef-td-agentで、fluent-plugin-bigqueryの最新バージョンを使うために、chef-td-agentの記述で下記のように記述していたとします。

name "base"
description "base server role."
run_list(
  "recipe[apt]",
  "recipe[yum]",
  "recipe[td-agent]",
)
override_attributes(
  :td_agent => 
    plugins: [
      { 'bigquery' },
    ],
  }
)

基本的に、pluginなどは正式にリリースされたものを利用するのが普通ですが、バグ修正や新機能をリリースより先に取り込みたいケースがあります。
その場合、自分で用意したソースコードを使用することになりますが、それには少々工夫が必要です。
いくつか方法はありますが、今回はsourceオプションを使って解決します。

手順

大まかには2ステップです。

  • gemをビルドする
  • ビルドしたファイルを読み込む

gemのビルドする

やることは単純で、利用するgemに対してbuildコマンドを行うだけです。
例として、fluent-plugin-bigquery をビルドする場合は下記のようなコマンドになります。

gem build fluent-plugin-bigquery.gemspec

実行すると、fluent-plugin-bigquery-3.1.0.gemというバイナリが作成されます。3.1.0はfluent-plugin-bigqueryの執筆時点でのバージョンが3.1.0であるためです。

ビルドしたファイルを読み込む

作成したバイナリファイルを使うように設定を書き換えます。バイナリファイルを/tmpに置いた場合下記のようにします。

name "base"
description "base server role."
run_list(
  "recipe[apt]",
  "recipe[yum]",
  "recipe[td-agent]",
)
override_attributes(
  :td_agent => 
    plugins: [
-      { 'bigquery' },
+      { 'bigquery' => { 'source' => '/tmp/fluent-plugin-bigquery-3.1.0.gem' } },
    ],
  }
)

sourceオプションを使うことで、gemをダウンロードするのではなく、オプションで指定したファイルを使います。
これにより、Chefで自作のfluentdのpluginを使えます。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?