부록 C. 전체 디스크 이미지

기본 오버클라우드 이미지는 플랫 파티션 이미지입니다. 즉, 이미지 자체에 파티셔닝 정보 또는 부트로더가 포함되어 있지 않습니다. director는 부팅할 때 별도의 커널 및 램디스크를 사용하고 오버클라우드 이미지를 디스크에 쓸 때 기본 파티셔닝 레이아웃을 생성합니다. 하지만 파티셔닝 레이아웃, 부트로더, 강화된 보안을 포함한 전체 디스크 이미지를 생성할 수 있습니다.

중요

다음 프로세스는 director의 이미지 구축 기능을 사용합니다. Red Hat은 이 섹션에 포함된 가이드라인을 사용한 이미지 구축만 지원합니다. 이 사양에 해당하지 않는 사용자 지정 이미지 구축은 지원되지 않습니다.

보안 강화 이미지에는 Red Hat OpenStack Platform 배포에 필요한 별도의 보안 측정 기능이 포함되어 있습니다. 이러한 배포에서는 보안이 매우 중요합니다. 보안 이미지에 대한 권장 사항은 다음과 같습니다.

  • /tmp 디렉터리가 별도의 볼륨이나 파티션에 마운트되어 있고 rw, nosuid, nodev, noexec, relatime 플래그를 보유합니다.
  • /var, /var/log, /var/log/audit 디렉터리는 별도의 볼륨이나 파티션에 마운트되어 있으며 rw ,relatime 플래그를 보유합니다.
  • /home 디렉터리는 별도의 파티션이나 볼륨에 마운트되어 있으며 rw, nodev, relatime 플래그를 보유합니다.
  • GRUB_CMDLINE_LINUX 설정에 대한 다음 변경 사항을 포함합니다.

    • 외부 커널 부팅 플래그를 포함한 감사를 활성화하려면 audit=1를 추가합니다.
    • 부트 로더 구성을 사용하는 USB에 대한 커널 지원을 비활성화하려면 nousb를 추가합니다.
    • 비보안 부팅 플래그를 삭제하려면 crashkernel=auto를 설정합니다.
  • 비보안 모듈(usb-storage, cramfs, freevxfs, jffs2, hfs, hfsplus, squashfs, udf, vfat)을 블랙리스트로 지정하고 로드되지 않도록 합니다.
  • 기본적으로 설치한 이미지에서 비보안 패키지(kexec-toolstelnet이 설치한 kdump)를 삭제합니다.
  • 보안에 필요한 새 screen 패키지를 추가합니다.

보안 강화 이미지를 구축하려면 다음을 수행해야 합니다.

  1. 기본 Red Hat Enterprise Linux 7 이미지 다운로드
  2. 등록과 관련된 환경 변수 설정
  3. 파티션 스키마 및 크기를 수정하여 이미지 사용자 지정
  4. 이미지 생성
  5. 배포에 업로드

다음 섹션에서는 이러한 작업을 수행하기 위한 절차를 자세히 설명합니다.

C.1. 기본 클라우드 이미지 다운로드

전체 디스크 이미지를 구축하기 전에 기준으로 사용할 Red Hat Enterprise Linux의 기존 클라우드 이미지를 다운로드해야 합니다. Red Hat Customer Portal에서 다운로드할 KVM 게스트 이미지를 선택합니다. 예를 들어 최신 Red Hat Enterprise Linux의 KVM 게스트 이미지는 다음 페이지에서 이용할 수 있습니다.

C.2. 디스크 이미지 환경 변수

디스크 이미지 빌드 프로세스의 일환으로 director는 새 오버클라우드 이미지 패키지를 가져오기 위해 기본 이미지와 등록 세부 정보가 필요합니다. Linux 환경 변수를 사용하여 이러한 부분을 정의할 수 있습니다.

참고

이미지 빌드 프로세스는 Red Hat 서브스크립션에서 이미지를 임시로 등록하고 이미지 구축 프로세스가 완료되면 시스템을 등록 취소합니다.

디스크 이미지를 빌드하기 위해 사용자의 환경과 요건에 맞는 Linux 환경 변수를 설정합니다.

DIB_LOCAL_IMAGE
기준으로 사용할 로컬 이미지를 설정합니다.
REG_ACTIVATION_KEY
등록 프로세스의 일환으로 활성키를 대신 사용합니다.
REG_AUTO_ATTACH
가장 호환 가능한 서브스크립션을 자동으로 첨부할 지 여부를 정의합니다.
REG_BASE_URL
패키지를 가져올 콘텐츠 전달 서버의 기본 URL입니다. 기본 고객 포털 서브스크립션 관리 프로세스는 https://cdn.redhat.com을 사용합니다. Red Hat Satellite 6 서버를 사용하려면 이 매개 변수는 Satellite 서버의 기본 URL을 사용해야 합니다.
REG_ENVIRONMENT
조직 내의 환경에 등록합니다.
REG_METHOD
등록 방식을 설정합니다. portal을 사용하여 시스템을 Red Hat Customer Portal에 등록합니다. satellite를 사용하여 Red Hat Satellite 6에서 시스템을 등록할 수 있습니다.
REG_ORG
이미지를 등록할 조직입니다.
REG_POOL_ID
제품 서브스크립션 정보의 풀 ID입니다.
REG_PASSWORD
이미지를 등록하는 사용자 계정에 암호를 제공합니다.
REG_REPOS

리포지토리 이름 문자열은 쉼표(공백 없음)로 구분됩니다. 이 문자열의 각 리포지토리는 subscription-manager를 통해 활성화됩니다.

보안이 강화된 전체 디스크 이미지에 다음 리포지토리를 사용하십시오.

  • rhel-7-server-rpms
  • rhel-7-server-extras-rpms
  • rhel-ha-for-rhel-7-server-rpms
  • rhel-7-server-optional-rpms
  • rhel-7-server-openstack-14-rpms
REG_SERVER_URL
사용할 서브스크립션 서비스의 호스트 이름을 제공합니다. Red Hat Customer Portal에 대한 기본값은 subscription.rhn.redhat.com에 있습니다. Red Hat Satellite 6 서버를 사용하는 경우 이 매개 변수는 Satellite 서버의 호스트 이름으로 사용해야 합니다.
REG_USER
이미지를 등록하는 계정에 사용자 이름을 제공합니다.

다음은 로컬 QCOW2 이미지를 Red Hat Customer Portal에 임시로 등록하기 위해 환경 변수 세트를 내보내는 명령의 예입니다.

$ export DIB_LOCAL_IMAGE=./rhel-server-7.5-x86_64-kvm.qcow2
$ export REG_METHOD=portal
$ export REG_USER="[your username]"
$ export REG_PASSWORD="[your password]"
$ export REG_REPOS="rhel-7-server-rpms \
    rhel-7-server-extras-rpms \
    rhel-ha-for-rhel-7-server-rpms \
    rhel-7-server-optional-rpms \
    rhel-7-server-openstack-14-rpms"

C.3. 디스크 레이아웃 사용자 지정

기본 보안 강화 이미지 크기는 20G이며 사전 정의된 파티션 크기를 사용합니다. 하지만 오버클라우드 컨테이너 이미지를 수용하려면 파티션 레이아웃을 일부 수정해야 합니다. 다음 섹션에서는 이미지 크기를 40G로 늘립니다. 또한 필요에 따라 파티션 레이아웃과 디스크 크기를 더 수정할 수 있습니다.

파티션 레이아웃과 디스크 크기를 수정하려면 다음 단계를 따르십시오.

  • DIB_BLOCK_DEVICE_CONFIG 환경 변수를 사용하여 파티션 스키마를 수정합니다.
  • DIB_IMAGE_SIZE 환경 변수를 업데이트하여 이미지 전체 크기를 수정합니다.

C.3.1. 파티션 스키마 수정

파티션 스키마를 수정하여 파티션 크기를 변경하고 새 파티션을 생성하거나 기존 파티션을 삭제할 수 있습니다. 다음 환경 변수로 새 파티션 스키마를 정의할 수 있습니다.

$ export DIB_BLOCK_DEVICE_CONFIG='<yaml_schema_with_partitions>'

다음 YAML 구조는 오버클라우드 컨테이너 이미지를 가져올 충분한 공간을 수용하기 위해 수정된 논리 볼륨 파티션 레이아웃을 나타냅니다.

export DIB_BLOCK_DEVICE_CONFIG='''
- local_loop:
    name: image0
- partitioning:
    base: image0
    label: mbr
    partitions:
      - name: root
        flags: [ boot,primary ]
        size: 40G
- lvm:
    name: lvm
    base: [ root ]
    pvs:
        - name: pv
          base: root
          options: [ "--force" ]
    vgs:
        - name: vg
          base: [ "pv" ]
          options: [ "--force" ]
    lvs:
        - name: lv_root
          base: vg
          extents: 23%VG
        - name: lv_tmp
          base: vg
          extents: 4%VG
        - name: lv_var
          base: vg
          extents: 45%VG
        - name: lv_log
          base: vg
          extents: 23%VG
        - name: lv_audit
          base: vg
          extents: 4%VG
        - name: lv_home
          base: vg
          extents: 1%VG
- mkfs:
    name: fs_root
    base: lv_root
    type: xfs
    label: "img-rootfs"
    mount:
        mount_point: /
        fstab:
            options: "rw,relatime"
            fsck-passno: 1
- mkfs:
    name: fs_tmp
    base: lv_tmp
    type: xfs
    mount:
        mount_point: /tmp
        fstab:
            options: "rw,nosuid,nodev,noexec,relatime"
            fsck-passno: 2
- mkfs:
    name: fs_var
    base: lv_var
    type: xfs
    mount:
        mount_point: /var
        fstab:
            options: "rw,relatime"
            fsck-passno: 2
- mkfs:
    name: fs_log
    base: lv_log
    type: xfs
    mount:
        mount_point: /var/log
        fstab:
            options: "rw,relatime"
            fsck-passno: 3
- mkfs:
    name: fs_audit
    base: lv_audit
    type: xfs
    mount:
        mount_point: /var/log/audit
        fstab:
            options: "rw,relatime"
            fsck-passno: 4
- mkfs:
    name: fs_home
    base: lv_home
    type: xfs
    mount:
        mount_point: /home
        fstab:
            options: "rw,nodev,relatime"
            fsck-passno: 2
'''

이 샘플 YAML 콘텐츠를 이미지 파티션 스키마를 위한 기준으로 사용합니다. 필요에 따라 파티션 크기와 레이아웃을 수정하십시오.

참고

배포 후에 크기를 변경할 수 없으므로 이미지에 대해 올바른 파티션 크기를 정의합니다.

C.3.2. 이미지 크기 수정

수정된 파티션 스키마의 총합이 기본 디스크 크기(20G)를 초과할 수도 있습니다. 이 경우에는 이미지 크기를 수정해야 합니다. 이미지 크기를 수정하려면 이미지 생성에 사용된 구성 파일을 편집하십시오.

/usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images.yaml 사본을 생성합니다.

# cp /usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images.yaml \
/home/stack/overcloud-hardened-images-custom.yaml

구성 파일에서 DIB_IMAGE_SIZE를 편집하여 필요한 값으로 조정합니다.

...

environment:
DIB_PYTHON_VERSION: '2'
DIB_MODPROBE_BLACKLIST: 'usb-storage cramfs freevxfs jffs2 hfs hfsplus squashfs udf vfat bluetooth'
DIB_BOOTLOADER_DEFAULT_CMDLINE: 'nofb nomodeset vga=normal console=tty0 console=ttyS0,115200 audit=1 nousb'
DIB_IMAGE_SIZE: '40' 1
COMPRESS_IMAGE: '1'
1
이 값을 새로운 디스크 전체 크기에 맞게 조정합니다.

이 파일을 저장합니다.

중요

director가 오버클라우드를 배포할 때 오버클라우드 이미지의 RAW 버전을 생성합니다. 즉, 언더클라우드에는 RAW 이미지를 수용하는 데 필요한 여유 공간이 있어야 합니다. 예를 들어 보안 강화 이미지 크기가 40G로 늘어나면 언더클라우드의 하드 디스크에 40G의 여유 공간이 있어야 합니다.

중요

결국 director가 이미지를 물리 디스크에 기록할 때 director는 디스크 끝 부분에 64MB의 구성 드라이브 주 파티션을 만듭니다. 전체 디스크 이미지를 만드는 경우 이 여분의 파티션을 수용할 수 있도록 물리 디스크 크기보다 작게 만들어야 합니다.

C.4. 보안 강화 전체 디스크 이미지 생성

환경 변수를 설정하고 이미지를 사용자 지정한 다음 openstack overcloud image build 명령을 사용하여 이미지를 생성합니다.

# openstack overcloud image build \
--image-name overcloud-hardened-full \
--config-file /home/stack/overcloud-hardened-images-custom.yaml \ 1
--config-file /usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images-rhel7.yaml
1
이 파일은 C.3.2절. “이미지 크기 수정”의 새로운 디스크 크기를 포함하는 사용자 지정 구성 파일입니다. 다른 사용자 지정 디스크 크기를 사용하지 않는 경우 대신 기존 /usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images.yaml 파일을 사용하십시오.

이를 통해 overcloud-hardened-full.qcow2라고 하는 이미지가 생성되며 필요한 모든 보안 기능이 포함됩니다.

C.5. 보안 강화 전체 디스크 이미지 업로드

이미지를 OpenStack Image(glance) 서비스에 업로드하고 Red Hat OpenStack Platform director에서 이를 사용하기 시작합니다. 보안 강화 이미지를 업로드하려면 다음 단계를 따르십시오.

  1. 새롭게 생성된 이미지 이름을 변경하고 이미지 디렉터리로 이동합니다.

    # mv overcloud-hardened-full.qcow2 ~/images/overcloud-full.qcow2
  2. 이전 오버클라우드 이미지를 모두 삭제합니다.

    # openstack image delete overcloud-full
    # openstack image delete overcloud-full-initrd
    # openstack image delete overcloud-full-vmlinuz
  3. 새 오버클라우드 이미지를 업로드합니다.

    # openstack overcloud image upload --image-path /home/stack/images --whole-disk

기존 이미지를 보안 강화 이미지로 교체하려는 경우 --update-existing 플래그를 사용하십시오. 플래그를 사용하면 기존 overcloud-full 이미지를 사용자가 생성한 새로운 보안 강화 이미지로 덮어씁니다.


Red Hat의 최신 제품 문서 번역을 신속하게 제공하기 위해 이 페이지에는 영어 원본을 한국어로 자동 번역한 내용이 포함되어 있을 수 있습니다. [자세한 내용보기]