2016-09-13 8 views
0

my_cookbook::recipe_old.rb이라는 제조법이 있다고 가정 해 봅시다. 이 조리법은 노드, 역할 등의 실행 목록에 적용되었습니다.레시피의 이름을 바꾸고 모든 노드의 실행 목록에서 바꿉니다.

하지만 요리법의 이름을 recipe_new.rb으로 바꿔야한다고 가정 해 봅니다. 모든 노드와 역할의 실행 목록을 어떻게 업데이트 할 수 있습니까?

레시피가 적용된 모든 노드와 역할을 찾으려면 knife search을 수행하고 새로 실행 된 레서피를 실행 목록에 추가 한 다음 실행 목록에서 이전 레시피를 삭제해야한다고 생각합니다.

이것이 최선의 방법입니까, 아니면 요리사가 더 좋은 해결책이 있습니까? roles.transform 비슷한이

knife exec -E 'nodes.transform("*:*") {|n| n.run_list.each_index {|i| if n.run_list[i] == "recipe[my_cookbook::recipe_old]"; n.run_list[i] = "recipe[my_cookbook::recipe_new"; return true; end } false }' 

그리고 뭔가 같은

답변