A.2. 컨테이너화된 구성 가능 서비스
다음 매개변수는 컨테이너화된 구성 가능 서비스에 적용됩니다.
puppet_config
이 섹션은 puppet을 사용하여 구성 파일 생성을 유도하는 키 값 쌍의 중첩된 세트입니다. 필수 매개 변수는 다음과 같습니다.
- puppet_tags
-
Puppet으로 구성 파일을 생성하는 데 사용되는 Puppet 리소스 태그 이름입니다. 명명된 구성 리소스만 파일을 생성하는 데 사용됩니다. 태그를 지정하는 모든 서비스에는 file,concat,file_line,augeas 의 기본 태그가 설정에 추가됩니다. 예:
keystone_config
- config_volume
- 이 서비스에 대한 구성 파일이 생성되는 볼륨(디렉터리)의 이름입니다. 구성을 위해 실행 중인 Kolla 컨테이너에 마운트를 바인딩하는 위치로 사용합니다.
- config_image
- 구성 파일을 생성하는 데 사용할 Docker 이미지의 이름입니다. 이는 종종 런타임 서비스에서 사용하는 컨테이너와 동일합니다. 일부 서비스는 공통 기본 컨테이너에서 생성되는 공통 구성 파일 세트를 공유합니다.
- step_config
- 이 설정은 Puppet을 통해 Docker 구성 파일을 생성하는 데 사용되는 매니페스트를 제어합니다. 아래 Puppet 태그는 이 매니페스트와 함께 사용하여 이 컨테이너의 구성 디렉터리를 생성합니다.
kolla_config
컨테이너에 Kolla 구성 맵을 생성합니다. 형식은 구성 파일의 절대 경로로 시작하여 다음 하위 매개변수에 사용합니다.
- command
- 컨테이너가 시작될 때 실행할 명령입니다.
- config_files
-
서비스를 시작하기 전에 서비스 구성 파일(
소스
)의 위치와 컨테이너(dest
)의 대상입니다. 또한 파일 권한 및 기타 속성(preserve_properties
)을 유지할지 여부를 컨테이너에서 이러한 파일을병합
하거나 교체하는 옵션을 포함합니다. - 권한
-
컨테이너의 특정 디렉터리에 대한 권한을 설정합니다.
경로
,소유자
및 그룹이 필요합니다. 권한을 재귀적으로 적용할 수도 있습니다(
재귀).
다음은 keystone 서비스에 대한 kolla_config
매개 변수의 예입니다.
kolla_config: /var/lib/kolla/config_files/keystone.json: command: /usr/sbin/httpd -DFOREGROUND config_files: - source: "/var/lib/kolla/config_files/src/*" dest: "/" merge: true preserve_properties: true /var/lib/kolla/config_files/keystone_cron.json: command: /usr/sbin/crond -n config_files: - source: "/var/lib/kolla/config_files/src/*" dest: "/" merge: true preserve_properties: true permissions: - path: /var/log/keystone owner: keystone:keystone recurse: true
docker_config
docker-cmd
후크에 전달된 데이터는 각 단계에서 컨테이너를 구성합니다.
-
step_0
- hiera 설정별로 생성된 컨테이너 구성 파일입니다. step_1
- 로드 밸런서 구성- baremetal 구성
- 컨테이너 구성
step_2
- Core Services (Database/Rabbit/NTP/etc)- baremetal 구성
- 컨테이너 구성
step_3
- 초기 OpenStack 서비스 설정(Ringbuilder 등)- baremetal 구성
- 컨테이너 구성
step_4
- 일반 OpenStack 서비스- baremetal 구성
- 컨테이너 구성
- Keystone 컨테이너 사후 초기화(테넌트, 서비스, 엔드포인트 생성)
step_5
- 서비스 활성화 (Pacemaker)- baremetal 구성
- 컨테이너 구성
YAML은 매개변수 세트를 사용하여 각 단계에서 실행되도록 컨테이너 컨테이너를 정의하고 각 컨테이너와 연결된 Docker
설정을 정의합니다. 예를 들면 다음과 같습니다.
docker_config: step_3: keystone: start_order: 2 image: *keystone_image net: host privileged: false restart: always healthcheck: test: /openstack/healthcheck volumes: *keystone_volumes environment: - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
그러면 keystone
컨테이너가 생성되고 각 매개 변수를 사용하여 사용할 이미지, 네트워킹 유형 및 환경 변수를 포함하여 세부 정보를 정의합니다.
docker_puppet_tasks
docker-puppet.py
툴을 직접 구동하는 데이터를 제공합니다. 이 작업은 클러스터 내에서 한 번만 실행되며(각 노드에 아님) keystone 엔드포인트 및 데이터베이스 사용자와 같은 항목을 초기화하는 데 필요한 여러 Puppet 스니펫에 유용합니다. 예를 들면 다음과 같습니다.
docker_puppet_tasks: # Keystone endpoint creation occurs only on single node step_3: config_volume: 'keystone_init_tasks' puppet_tags: 'keystone_config,keystone_domain_config,keystone_endpoint,keystone_identity_provider,keystone_paste_ini,keystone_role,keystone_service,keystone_tenant,keystone_user,keystone_user_role,keystone_domain' step_config: 'include ::tripleo::profile::base::keystone' config_image: *keystone_config_image
host_prep_tasks
이는 노드 호스트에서 실행할 수 있는 ansible 코드 조각으로 컨테이너화된 서비스를 준비합니다. 예를 들어 컨테이너를 생성하는 동안 컨테이너에 마운트할 특정 디렉터리를 생성해야 할 수 있습니다.
fast_forward_upgrade_tasks
빠른 진행 업그레이드 프로세스에 도움이 되는 Ansible 스니펫입니다. 이 스니펫은 결합된 플레이북에 추가됩니다. 각 작업에서는 태그를 사용하여 단계
및 릴리스
를 정의합니다.
일반적으로 다음 단계
를 따릅니다.
-
step=0
- 실행 중인지 확인 -
step=1
- 서비스를 중지 -
step=2
- 클러스터를 중지합니다. -
step=3
- 리포지토리 업데이트 -
step=4
- 데이터베이스 백업 -
step=5
- 사전 패키지 업데이트 명령 -
step=6
- 패키지 업데이트 -
step=7
- Post-package 업데이트 명령 -
step=8
- 데이터베이스 업데이트 -
step=9
- 검증
태그
는 릴리스에 해당합니다.
-
tag=ocata
- OpenStack Platform 11 -
tag=pike
- OpenStack Platform 12 -
tag=queens
- OpenStack Platform 13