一緒に働くpublic_attributes.json
Chefは再設定終了時にノードの属性のコピーを/opt/gitlab/embedded/nodes/$NODE_NAME.json
に保存します。いくつかの属性は機密性が高いため、rootユーザーしか読めません。これを回避するために、非 root サービスが使用できるようにホワイトリスト化した属性のセットを含むファイル(デフォルトは/var/opt/gitlab/public_attributes.json
)を作成しました。このファイルはgitlab-ctl reconfigure
を実行するたびに再作成されます。
にエントリを追加します。public_attributes.json
public_attributes.json
ファイルは、ヘルパークラスのpublic_attributes
メソッドを呼び出した結果をマージすることで生成されます。たとえば
class TestHelper < BaseHelper
attr_accessor :node
def public_attributes
{
'gitlab' => {
'test' => node['gitlab']['test']
}
}
end
end
このファイルはGitLabHandlerの一部として生成されます。
gitlab-ctl
コマンドからのpublic_attributes.json
からのエントリーの読み込み
公開ノードにアクセスするには、提供されているGitlabCtl::Util.get_public_node_attributes
メソッドを使用する必要があります。
attributes = GitlabCtl::Util.get_public_node_attributes
puts attributes['gitlab']['test']