hdhwang 2023. 3. 20. 00:07

Attribute recipe에서 사용하는 변수이다. 4.3장에서 노드의 플랫폼을 확인하는 <%= node[:platform] %> node[:platform] 등으로 Attribute 값을 확인할  있었다.

cookbook  디렉터리의 attributes 디렉터리에 default.rb라는 이름으로 파일을 만들어 다음과 같이 정의하면, 템플릿이나 recipe에서 node["apache"["dir"]이라고 기술하여  값을 얻을  있다.

default["apache"]["dir"] = "/etc/apache2"
default["apache"]["apache"]["listen_ports" = ["80", "443"]

Attribute는 다음의 몇 가지 방법으로 정의할 수 있다.

  1. 초기 값을 미리 cookbook 내에 정의해 둔다.
  2. Role별로 값을 정의해 둔다. (4.8 Role에서 설명)
  3. JSON 파일로 노드별로 값을 정의해 둔다.

각각 같은 키를 사용하여 값을 정의한 경우, 우선순위는 attributes 디렉터리에 정의된 기본 값보다 Role의 값이 높으며, Role의 값보다 JSON 파일에 작성되어 있는 Node Object에 정의된 값이 높다. 

참 고 문 헌

[1] 이토 나오야, 박상욱, “인프라스트럭처 자동화 프레임워크 Chef Solo 입문”, 제이펍, 2014.