Roles을 이용하면 비슷한 성격을 가지는 노드들을 하나의 그룹으로 묶어서 설정을 관리할 수 있다. 서비스를 위한 웹서버를 운용한다고 가정해 보자. 이들 웹 서버는 apache 웹서버, php, mysql이 올라간다. 그렇다면 앞으로 추가되는 웹 서버들도 모드 동일한 애플리케이션과 설정을 가질 것이다. 그렇다면 webserver role을 만들어서 여기에 APM에 대한 정보를 넣어 넣고, 웹서버 node가 추가될 때마다 webserver role을 추가하면 간단하게 자동화 할 수 있을 것이다.
또한 동일한 APM으로 구성된 웹 서버라고 할지라도 서비스를 위한 웹 서버와 내부 개발을 위해서 사용하는 웹서버는 설정이 다를 것이다. 이때는 webserver-dev 등의 role을 따로 만들어서 관리할 수 있을 것이다. ubunt와 centos등 운영체제에 따라서 다른 룰을 만들 수도 있을 것이다.
role을 이용해서 복잡한 자동화 관리를 간단히 만들어 보자.
이 문서는 chef install, node 및 cookbook 등록은 할 줄 안다는 가정하에 만들었습니다.
<!> env_run_lists는 Chef 10.0이상에서 사용할 수 있다.
Env에 대한 용어 정리를 하고 넘어가자. Env는 설정이 적용되는 환경을 의미한다. 예컨데 제대로된 프로세스를 밟는 제품이라면 개발 환경과 스테이지 환경, 상용 환경이 구분될 것이다. 개발 환경에서 개발을 끝낸 다음 스테이징 환경에서 테스트를 끝내고, 마지막에 상용 환경에 적용해서 실제 서비스를 하는 식이다. 이 경우 동일한 설정이라도 환경에 따라 달라질 수 있을 것이다.
env_run_lists를 이용하면 환경별로 chef 코드를 적용할 수 있다.
Contents
1. Roles
1.1. role 구성
1.2. role 관리
1.3. role 작업 방법
2. Ruby DSL을 이용한 role 관리
2.1. name
2.2. description
2.3. run_list
2.4. env_run_lists
2.5. default_attributes
2.6. override_attributes
3. JSON을 이용한 role 관리
3.1. json_class
3.2. chef_type
4. knife로 role 관리하기
4.1. Node에 role 추가하기
4.2. role 만들기
4.3. role 편집
4.4. role 보기
4.5. role 삭제
4.6. 파일에서 role 만들기
5. role 다루기 예
5.6.1. cookbook 만들기
5.6.1.1. mysql cookbook
5.6.1.2. apache cookbook
5.6.2. role 만들기
5.6.3. role 추가및 확인
6. 히스토리
1. Roles
1.1. role 구성
1.2. role 관리
1.3. role 작업 방법
2. Ruby DSL을 이용한 role 관리
2.1. name
2.2. description
2.3. run_list
2.4. env_run_lists
2.5. default_attributes
2.6. override_attributes
3. JSON을 이용한 role 관리
3.1. json_class
3.2. chef_type
4. knife로 role 관리하기
4.1. Node에 role 추가하기
4.2. role 만들기
4.3. role 편집
4.4. role 보기
4.5. role 삭제
4.6. 파일에서 role 만들기
5. role 다루기 예
5.6.1. cookbook 만들기
5.6.1.1. mysql cookbook
5.6.1.2. apache cookbook
5.6.2. role 만들기
5.6.3. role 추가및 확인
6. 히스토리
Recent Posts
Archive Posts
Tags