public_attributes.json
작업
셰프는 노드의 특성을 다시 구성(reconfigure)의 끝에 /opt/gitlab/embedded/nodes/$NODE_NAME.json
에 복사합니다. 일부 특성이 민감한 성격을 띄기 때문에 이 파일은 root 사용자만 읽을 수 있습니다. 이를 해결하기 위해 비루트 서비스의 사용을 위해 화이트리스트로 관리되는 일련의 특성을 포함하는 파일(기본값: /var/opt/gitlab/public_attributes.json
)을 만들었습니다. 이 파일은 gitlab-ctl reconfigure
실행 시마다 재생성됩니다.
public_attributes.json
에 항목 추가하기
public_attributes.json
파일은 헬퍼 클래스의 public_attributes
메서드를 호출한 결과를 Merge하여 채워집니다. 예를 들어:
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']