2017-12-12 1 views
1

나는 ID와 IQ를 가지고 :어떻게 정의 노드 속성에 변수 값을 할당하고 다른 조리법에이 값을 사용하는

나는 다른 조리법 (요리사 클라이언트에서 실행됩니다 PowerShell 스크립트)에서 사용할 필요가
bkp_id = List_volume_attached_acc.list_volume_acc('ocid1.instance.oc1.iad.adlad') 
ids = bkp_id.map(&:ipv4) 
iq = bkp_id.map(&:iqn) 
node['ids'] = ids 

.

powershell_script "run-isci" do 
code <<-EOH 
Set-Service -Name msiscsi -StartupType Automatic 
Start-Service msiscsi 
New-IscsiTargetPortal -TargetPortalAddress #{node['iscsi']['ids']} 
Connect-IscsiTarget -NodeAddress #{node['iscsi']['iq']} -TargetPortalAddress #{node['iscsi']['ids']} -IsPersistent $True 

EOH 
end 

ids 및 iq에 노드 속성으로 값을 할당하여 두 번째 레시피에서 사용할 수있는 방법은 무엇입니까?

답변

0

복잡한 Ruby 코딩에 익숙하지 않은 경우 getter 코드를 다른 레시피에도 복사하여 붙여 넣기 만하면됩니다. 꽤 작고 자주 변경되지 않으므로 node.run_state을 사용하는 방법보다 코드를 복제하는 것이 더 쉽습니다.

+0

죄송합니다. Ruby를 처음 사용했습니다. –

+0

그건 완전히 괜찮습니다. 단지 볼륨 목록을 한 번만 실행하는 것이 더 기분이 좋지만 시작하기 전에 "모든 경우에 간단한"방법을 사용하면됩니다. 리팩터링하여 Ruby 기술을 향상 시키십시오. – coderanger

+0

필자는 getter 코드를이 레서피에 복사하여 붙여 넣을 수 있지만 PowerShell 레서피는 종속 라이브러리가 없으므로 bkp_id = List_volume_attached_acc.list_volume_acc의 값이없는 원격 서버에서 실행됩니다. 그래서 제 게터 제조법은 요리사 서버에서 실행되며 powershell은 클라이언트 컴퓨터에서 실행됩니다. 첫 번째 스크립트에서 값을 가져오고 클라이언트 컴퓨터에서 실행되는 두 번째 스크립트에서 할당해야합니다 –

관련 문제