6.2. 사용자 정의 구성 가능 서비스 생성
이 예제에서는 사용자 정의 구성 가능 서비스를 생성하는 방법을 검토하고 일(motd) 서비스의 메시지 구현에 중점을 둡니다. 이 예에서 오버클라우드 이미지에는 설정 후크를 통해 로드되거나 오버클라우드 이미지를 수정하여 로드된 사용자 지정 motd Puppet 모듈이 포함되어 있습니다. 자세한 내용은 3장. 오버클라우드 이미지 작업의 내용을 참조하십시오.
자체 서비스를 생성할 때 서비스의 heat 템플릿에 다음 항목을 정의해야 합니다.
- parameters
다음은 서비스 템플릿에 포함해야 하는 필수 매개변수입니다.
-
ServiceNetMap- 네트워크에 대한 서비스 맵입니다. 이 매개변수가 상위 Heat 템플릿의 값으로 재정의되므로 빈 해시({})를기본값으로 사용합니다. -
DefaultPasswords- 기본 암호 목록입니다. 이 매개변수가 상위 Heat 템플릿의 값으로 재정의되므로 빈 해시({})를기본값으로 사용합니다. -
EndpointMap- 프로토콜에 대한 OpenStack 서비스 끝점 목록입니다. 이 매개변수가 상위 Heat 템플릿의 값으로 재정의되므로 빈 해시({})를기본값으로 사용합니다.
서비스에 필요한 추가 매개변수를 정의합니다.
-
- outputs
- 다음 출력 매개 변수는 호스트에서 서비스 구성을 정의합니다. 자세한 내용은 부록 A. 구성 가능 서비스 매개변수의 내용을 참조하십시오.
다음은 motd 서비스의 heat 템플릿(service.yaml)의 예입니다.
- 1
- 템플릿에는 오늘의 메시지를 정의하는
MotdMessage매개 변수가 포함되어 있습니다. 매개 변수에는 기본 메시지가 포함되지만 사용자 지정 환경 파일에서 동일한 매개변수를 사용하여 재정의할 수 있습니다. - 2
outputs섹션에서는config_settings에서 일부 서비스 hieradata를 정의합니다.motd::contenthieradata는MotdMessage매개변수의 콘텐츠를 저장합니다.motdPuppet 클래스는 이 hieradata를 읽고 사용자 정의 메시지를/etc/motd파일에 전달합니다.- 3
outputs섹션에는step_config에 Puppet 매니페스트 스니펫이 포함되어 있습니다. 코드 조각은 구성에 2단계에 도달했는지 확인하고 있는 경우motdPuppet 클래스를 실행합니다.