나는 내 데이터 디렉토리에서 다음 YAML 파일을 가지고인형 템플릿 반복하고 YAML 파일
내.erb
템플릿은 다음과 같습니다
---
type:
- config_setting1:
foo: bar
- config_setting2:
foo: bar
:
conf {
<% settings = YAML.load_file('/etc/puppetlabs/code/environments/example/data/conf.yaml') -%>
<% settings['type'].each do |val| -%>
<%= val %>
<% end -%>
}
내 에이전트 시스템의 I에 꼭두각시를 실행 이 끝까지 :
conf {
{"config_setting1"=>nil, "foo"=>"bar"}
{"config_setting2"=>nil, "foo"=>"bar"}
}
최종 목표는 다음과 같이 출력을 얻는 것입니다.
conf {
config_setting1 {
foo: bar
}
config_setting2 {
foo: bar
}
}
는 내가 어떤 실제로 출력 방법에 물건을 얻기 위해 내 템플릿에 어떻게 청소해야 알아,하지만 난에 더 집중 해요 어떻게 순간에 최종 결과보다. 보시다시피 중첩 된 해시를 탐색하기 위해 설정 끝 부분에 ['type']
을 사용하는 것에 익숙합니다. 하드 코딩 한 경우이 구조를 매우 쉽게 만들 수 있지만 반복적으로 사용하는 방법을 이해하고 싶습니다. . 나는 반복을 통해 Puppet Documentation을 따르려고 시도했지만 예제를 그대로 그대로 복사해도 예제가 작동하지 않으므로 상황이 다소 어려워집니다. 내가 가지고있는 것처럼 중첩 된 yaml 파일에서 하나의 데이터 조각을 꺼내려면 어떻게해야합니까? 키 또는 특정 값일까요? 내가 좋아하는 뭔가를 시도 :이의
<% settings['type'].each do |val| -%>
<%= settings['val'] %>
<% end -%>
여러 변화를하지만 난 내가 원하는 것을 얻을 수있는 권리 구문을 찾을 수 없습니다. 나는 또한 <% settings['type'].each do |index, value| -%>
의 라인을 따라 뭔가를 시도했지만, 그 중 내가 사용할 수있는 결과를 얻을 수 없습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 나는 그것을 감사 할 것입니다. 나는 내가 완전히 잘못된 길로 나아가고 있다고 들었습니다. 이 데이터를 얻는 더 좋은 방법이 있다면 나는 모든 귀입니다.
중요하지 않은 또 다른 질문이지만 내 부하 파일에는 절대 경로가 있습니다 ... 친척을 사용할 수있는 방법이 있습니까?
이것은 각 요소의 첫 번째 키에있는'{}'를 놓치지 않는다는 점을 제외하면 작동합니다. 그게 중요합니까? –
개념적으로는 작동하지만 실제 결과를 얻으려면 약간의 정리가 필요했습니다. 그래도 절대 경로 문제를 파악하려고합니다! – Merakel