public_attributes.json 작업하기

Chef는 노드 속성의 복사본을 /opt/gitlab/embedded/nodes/$NODE_NAME.json에 저장합니다. 일부 속성의 민감한 특성으로 인해 루트 사용자만 읽을 수 있습니다. 이를 우회하기 위해, 우리는 비루트 서비스에서 사용하기 위해 화이트리스트에 추가된 속성 세트를 포함하는 파일을 생성했습니다 (기본 경로는 /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']