2017-10-20 8 views
0

unattended_upgrades을 최신 apt=6.1.4 쿡북 내에 설치한다고 가정 해 보겠습니다. 그것에 대해요리사의 요리 책 배열 속성을 대체하는 유스 케이스는 무엇입니까?

나는 다음을 사용 역할 : 같은

{                                      
    "name": "default_base", 
    "description": "Role applied to all workstations and servers", 
    "json_class": "Chef::Role", 
    "default_attributes": { 
    "apt": { 
     "unattended_upgrades" : { 
     "enable": "true", 
     "allowed_origins" : [ 
      "${distro_id}:${distro_codename}-security" 
     ], 
     "mail": "[email protected]" 
     } 
    } 
} 

하지만 설정의 마지막 부분이 보인다 :

Unattended-Upgrade::Allowed-Origins { 
     "Ubuntu xenial"; 
     "${distro_id}:${distro_codename}-security"; 
}; 

Ubuntu xenial는 경향이 요리 책에 정의 된 배열 요소는`/ default.rb 파일 속성 . 그리고 doc에 설명 된 역할 속성과 병합됩니다. 이것은 배열이기 때문입니다.

default_base 역할의 default_attributes 섹션에있는 해당 속성을 다시 설정하는 중 하나의 해결책을 찾았습니다. 다음과 같이 :

"default_attributes": { 
    "apt": { 
    "unattended_upgrades" : { 
     "allowed_origins" : [] 
    } 
    } 
} 

결과적으로 결과 역할에는 동일한 역할의 동일한 속성 선언이 있지만 다른 우선 순위 수준이 포함됩니다.

이것은 무엇입니까?

Common use case | Good solution | Dirty hack | Unskillful engineer

답변

0

나는 당신이 이것에 대한 해결 방법입니다 override_attributes을 할 사람들의 두 번째 의미 생각합니다. 불행히도 속성의 배열 병합 메커니즘은 매우 까다롭고 많은 요리사 내부 구조에 의존하기 때문에 아마도 가장 쉬운 옵션 일 것입니다.