요리사의 log
리소스를 사용하여 다음 코드를 참조하십시오.Ruby/Chef : 'name'리소스를 참조하고 함수에 전달할 수있는 방법이 있습니까?
log 'Hello there' do
level :info
notifies :run, "log_to_chat('Hello there')"
end
자원 name
을 참조 할 수있는 방법이 있나요 (이 경우는 '안녕하세요') 나는 기능 log_to_chat
에 통과 할 때. log_to_chat 내 시도를 추가
log 'Hello there' do
level :info
notifies :run, "log_to_chat(#{name})"
end
:
내가 좋아하는 뭔가를 상상한다.
시도 1
resource_name :log_to_chat
property :message, kind_of: String, name_property: true
chat_url = 'https://chat.server/abcdef'
action :run do
execute do
command "curl -m 5 -i -X POST -d \"payload={...}\" #{chat_url}"
ignore_failure true
end
end
질문 : notifies
라인에서 하나의 라이너로 :message
파라미터를 전달하는 방법?
notifies :run, "log_to_chat[message]", --pass :message how??--
시도 2 :
module Chat
def log_to_chat(message)
chat_url = 'https://chat.server/abcdef'
action :run do
execute "curl" do
command "curl -m 5 -i -X POST -d \"payload={...}\" #{chat_url}"
ignore_failure true
end
end
end
end
편집 : 당신이 정의
감사합니다. 그러면 다음과 같이됩니다 :'알림 : 실행 ', log_to_chat (# {name}) "'? – vikingsteve
글쎄 그것은 코드베이스에 달려 있지만'log_to_chat [# {name}]'가능성이 더 높습니다. https://docs.chef.io/resource_common.html#notifies – smefju
'log_to_chat' 부분을 쓰는 방법에 대해 안내 할 수있는 기회는 모듈이나 맞춤 리소스의 메소드입니까? 그것은 기본적으로 하나의'curl' 명령입니다. – vikingsteve