4.3. Puppet 모듈에 대한 구성 추가


OpenStack 모듈은 주로 핵심 서비스를 구성하는 것을 목표로 합니다. 대부분의 경우 백엔드,에이전트 또는 플러그인 으로 알려진 추가 서비스를 구성하는 추가 매니페스트도 포함되어 있습니다. 예를 들어 cinder 모듈에는 NFS, iSCSI, Red Hat Ceph Storage 등을 비롯한 다양한 스토리지 장치에 대한 구성 옵션이 포함된 backends 라는 디렉터리가 포함되어 있습니다.

예를 들어 manifests/backends/nfs.pp 파일에는 다음 구성이 포함되어 있습니다.

define cinder::backend::nfs (
  $volume_backend_name  = $name,
  $nfs_servers          = [],
  $nfs_mount_options    = undef,
  $nfs_disk_util        = undef,
  $nfs_sparsed_volumes  = undef,
  $nfs_mount_point_base = undef,
  $nfs_shares_config    = '/etc/cinder/shares.conf',
  $nfs_used_ratio       = '0.95',
  $nfs_oversub_ratio    = '1.0',
  $extra_options        = {},
) {

  file {$nfs_shares_config:
    content => join($nfs_servers, "\n"),
    require => Package['cinder'],
    notify  => Service['cinder-volume']
  }

  cinder_config {
    "${name}/volume_backend_name":  value => $volume_backend_name;
    "${name}/volume_driver":        value =>
      'cinder.volume.drivers.nfs.NfsDriver';
    "${name}/nfs_shares_config":    value => $nfs_shares_config;
    "${name}/nfs_mount_options":    value => $nfs_mount_options;
    "${name}/nfs_disk_util":        value => $nfs_disk_util;
    "${name}/nfs_sparsed_volumes":  value => $nfs_sparsed_volumes;
    "${name}/nfs_mount_point_base": value => $nfs_mount_point_base;
    "${name}/nfs_used_ratio":       value => $nfs_used_ratio;
    "${name}/nfs_oversub_ratio":    value => $nfs_oversub_ratio;
  }

  create_resources('cinder_config', $extra_options)

}

다음과 같은 몇 가지 작업을 수행할 수 있습니다.

  • define 문에서는 cinder::backend::nfs 라는 정의된 유형을 생성합니다. 정의된 유형은 클래스와 유사합니다. 주요 차이점은 Puppet에서 정의된 유형을 여러 번 평가합니다. 예를 들어 여러 NFS 백엔드가 필요할 수 있으므로 구성에는 각 NFS 공유에 대해 여러 평가가 필요합니다.
  • 다음 몇 줄에서는 이 구성 및 기본값에 매개 변수를 정의합니다. 사용자가 새 값을 cinder::backend::nfs 정의된 유형으로 전달하면 기본값을 덮어씁니다.
  • file 함수는 파일 생성을 호출하는 리소스 선언입니다. 이 파일에는 NFS 공유 목록과 이 파일의 이름이 매개 변수에 정의되어 있습니다($nfs_shares_config = '/etc/cinder/shares.conf'). 추가 속성을 확인합니다.
  • content 속성은 $nfs_servers 매개 변수를 사용하여 목록을 생성합니다.
  • require 속성은 cinder 패키지가 설치되어 있는지 확인합니다.
  • notify 속성은 cinder-volume 서비스가 재설정되도록 지시합니다.
  • cinder_config 함수는 모듈에 있는 lib/puppet/ 디렉터리의 플러그인을 사용하는 리소스 선언입니다. 이 플러그인은 /etc/cinder/cinder.conf 파일에 구성을 추가합니다. 이 리소스의 각 행에는 cinder.conf 파일의 관련 섹션에 구성 옵션이 추가됩니다. 예를 들어 $name 매개 변수가 mynfs 인 경우 다음 속성입니다.

      "${name}/volume_backend_name":  value => $volume_backend_name;
      "${name}/volume_driver":        value =>
        'cinder.volume.drivers.nfs.NfsDriver';
      "${name}/nfs_shares_config":    value => $nfs_shares_config;

    다음을 cinder.conf 파일에 저장합니다.

    [mynfs]
    volume_backend_name=mynfs
    volume_driver=cinder.volume.drivers.nfs.NfsDriver
    nfs_shares_config=/etc/cinder/shares.conf
  • create_resources 함수는 해시를 리소스 세트로 변환합니다. 이 경우 매니페스트는 $extra_options 해시를 백엔드의 추가 구성 옵션 세트로 변환합니다. 이를 통해 매니페스트의 핵심 매개변수에 포함되지 않은 구성 옵션을 추가할 수 있는 유연한 방법이 제공됩니다.

이는 하드웨어의 OpenStack 드라이버를 구성하는 매니페스트를 포함하는 것이 중요합니다. 매니페스트는 director가 하드웨어와 관련된 설정 옵션을 포함하는 간단한 방법을 제공합니다. 이는 director가 하드웨어를 사용하도록 오버클라우드를 구성하는 기본 통합 지점 역할을 합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.