Splunk /opt/splunkforwarder/etc/system/local/inputs.conf 파일을 추가해야하는 메타 데이터에 대한 단일 항목으로 업데이트하는 방법이 있습니다. 인덱서로 전달되는 이벤트Chef가 수렴하는 동안 test-kitchen을 실행할 때 테스트 데이터를 읽는 방법
이 메타 데이터 항목은 이미 호스트에 설치된 다른 소프트웨어의 구성 파일에있는 9 문자 텍스트 항목입니다.
이 파일에서 데이터를 읽을 수있는 코드가 있지만 test-kitchen을 실행할 때이 정보가있는 테스트 파일이 내 .kitchen.yml 파일에있는 위치를 선언하는 방법을 알지 못합니다.
:내가이이 역할, 환경, 요리 책 디렉토리처럼 복사 될 생각에이 파일 내의 repo의 루트 디렉토리를 생성 시도했습니다 그래서 내 .kitchen.yml는 항목을 포함
attributes:
splunk:
sliceconf_path: test/slice.conf
그러나 나는 많은 다른 위치를 시도했다 그러나 나는 여전히이 파일을 찾을 수 없습니다
Errno::ENOENT
-------------
No such file or directory @ rb_sysopen - test/slice.conf
같은 오류가 발생하는 것입니다. 그것은 내가 "파일/테스트/slice.conf"에 넣어 경우 복사 얻을 것이다 그러나 나는 경로를 선언하는 경우 그것은 여전히 그것을 찾을 수 있습니다
sliceconf_path: files/test/slice.conf
또는 (의 디렉토리 구조를 검사를 기반으로 테스트 - 부엌에 내가 사용하고있어 도커 이미지) 내가 요리사/테스트 - 부엌 파일을 찾아 갈 수있는 방법으로 난처한 상황에 빠진거야
cookbooks/cookbook-dh_rainbow_forwarders/files/test/slice.conf
.
---------------
코드는 다음과 같습니다. 명확히하기 위해 단지 사용 : 내 .kitchen.yml에서 노드 속성 (노드 [ 'sliceconf_path를']) 설정 한
Recipe
slice_name = ''
ruby_block 'read_slice_conf' do
block do
slice_name = File.read("#{node['sliceconf_path']}").chomp
end
end
# Update local input conf file with meta-data about slice.
template '/opt/splunkforwarder/etc/system/local/inputs.conf' do
source 'system_local_inputs.erb'
owner 'nobody'
group 'nobody'
mode 0o600
mode '0600'
action :create
variables(
slice_decorators: slice_name
)
end
Template
[default]
host = <%= node['fqdn'] %>
_meta = slice::#{slice_name}