독립 실행형 배포 가이드


Red Hat OpenStack Platform 16.1

테스트 및 개념 증명 환경을 위한 올인원 OpenStack 클라우드 생성

OpenStack Documentation Team

초록

Red Hat OpenStack Platform 독립 실행형 환경을 사용하여 테스트 환경에서 Red Hat OpenStack Platform 16.1을 설치, 구성 및 배포합니다. 이 가이드를 사용하여 간단한 단일 노드 OpenStack 클라우드를 배포합니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견을 보내 주십시오. Red Hat이 어떻게 이를 개선하는지 알려주십시오.

DDF(직접 문서 피드백) 기능 사용

특정 문장, 단락 또는 코드 블록에 대한 직접 주석은 피드백 추가 DDF 기능을 사용하십시오.

  1. 다중 페이지 HTML 형식으로 설명서를 봅니다.
  2. 문서 오른쪽 상단에 Feedback (피드백) 버튼이 표시되는지 확인합니다.
  3. 주석 처리하려는 텍스트 부분을 강조 표시합니다.
  4. 피드백 추가를 클릭합니다.
  5. 주석을 사용하여 Add Feedback (피드백 추가) 필드를 작성합니다.
  6. 선택 사항: 설명서 팀이 문제에 대한 자세한 내용을 문의할 수 있도록 이메일 주소를 추가하십시오.
  7. Submit(제출)을 클릭합니다.

1장. 올인원 Red Hat OpenStack Platform 설치

올인원 설치 방법은 TripleO를 사용하여 간단한 단일 노드 환경과 Red Hat OpenStack Platform 및 관련 서비스를 배포합니다. 이 설치를 사용하여 후속 작업이 제한되거나 없는 단일 노드에서 개념 증명, 개발 및 테스트 배포를 활성화합니다.

참고

이 기능은 이번 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.

1.1. 사전 요구 사항

  • 시스템에 Red Hat Enterprise Linux 8.2 기본 운영 체제가 설치되어 있어야 합니다.
  • TripleO에서 두 번째 인터페이스를 구성하는 동안 인터넷 연결이 중단되지 않도록 시스템에 두 개의 네트워크 인터페이스가 있어야 합니다.
  • 시스템에는 CPU 4개, 8GB RAM, 30GB 디스크 공간이 있어야 합니다.

네트워크 구성 예

  • 기본 네트워크 192.168.122.0/24에 할당된 인터페이스 eth0. 일반적인 연결에는 이 인터페이스를 사용합니다. 이 인터페이스에는 인터넷 액세스가 있어야 합니다.
  • 관리 네트워크 192.168.25.0/24에 할당된 인터페이스 eth1. TripleO에서는 이 인터페이스를 OpenStack 서비스에 사용합니다.

2장. 올인원 Red Hat OpenStack Platform 환경 개요

이 섹션에서는 간단한 단일 노드 Red Hat OpenStack Platform 환경을 설치, 구성 및 배포하는 방법에 대해 설명합니다. 이 시나리오에는 기존 Undercloud 종속성이 없습니다. 대신 설치 프로그램에서 인라인 heat-all 인스턴스를 실행하여 배포 프로세스를 부트스트랩하고 선택한 heat 템플릿을 로컬 시스템에서 실행할 수 있는 Ansible 플레이북으로 변환합니다.

기본 테스트 및 개발을 위해 올인원 설치를 사용합니다. 올인원 설치는 Red Hat OpenStack Platform을 위한 좋은 시작 지점과 테스트 환경이지만 복잡한 작업을 수행하려면 프로덕션 수준 확장 클라우드를 배포해야 합니다.

워크플로

간단한 단일 노드 Red Hat OpenStack Platform 환경을 설치, 구성, 배포하려면 다음 기본 워크플로우에서 작업을 완료합니다.

  1. 사용자 환경을 준비합니다.
  2. 올인원 환경을 위한 패키지를 설치합니다.
  3. 올인원 환경을 구성합니다.
  4. 올인원 환경을 배포합니다.

일체형 설치의 이점

  • 구성 가능 서비스.
  • 사전 정의된 역할.
  • 축소된 단일 노드 환경.
  • 컨테이너에서 작은 풋프린트 설치 프로그램을 실행하고 Ansible 플레이북을 생성하는 데 사용할 수 있는 플레이북.

설정

역할 및 서비스 구성을 실험하려면 8장. 사용자 지정 역할 및 서비스 작업7.1절. “코어 heat 템플릿” 을 참조하십시오.

구성 가능 역할

사용자 지정 구성 가능 역할을 생성하고 각 역할에 대한 특정 서비스를 배포할 수 있습니다.

Ansible

이 설치는 배포 명령을 사용하여 Ansible 플레이북을 자동으로 적용합니다. 다른 환경에서 사용할 수 있는 Ansible 플레이북을 출력하도록 배포 명령을 지시할 수도 있습니다. 예를 들어 올인원 설치에서 테스트를 완료한 다음 확인된 Ansible 플레이북을 다른 환경에 적용할 수 있습니다.

3장. 올인원 Red Hat OpenStack Platform 환경 설치

올인원 환경 구성, 배포 및 테스트를 시작하기 전에 루트가 아닌 사용자를 구성하고 필요한 패키지 및 종속성을 설치해야 합니다.

  1. 올인원 호스트에 root가 아닌 사용자를 만듭니다.

    [root@all-in-one]# useradd stack
    Copy to Clipboard Toggle word wrap
  2. stack 사용자의 암호를 설정합니다.

    [root@all-in-one]# passwd stack
    Copy to Clipboard Toggle word wrap
  3. stack 사용자로 sudo 를 사용할 때 암호 요구 사항을 비활성화합니다.

    [root@all-in-one]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack
    [root@all-in-one]# chmod 0440 /etc/sudoers.d/stack
    Copy to Clipboard Toggle word wrap
  4. 올인원 호스트에 루트가 아닌 사용자로 로그인합니다.

    $ ssh stack@<all-in-one>
    Copy to Clipboard Toggle word wrap
  5. Red Hat Subscription Manager에 시스템을 등록합니다. 프롬프트에 Red Hat 서브스크립션 인증 정보를 입력합니다.

    [stack@all-in-one]$ sudo subscription-manager register
    Copy to Clipboard Toggle word wrap
  6. Red Hat 서브스크립션을 인타이틀먼트 서버에 연결합니다.

    [stack@all-in-one]$ sudo subscription-manager attach --auto
    Copy to Clipboard Toggle word wrap
    참고

    auto 옵션은 올바른 서브스크립션 풀을 서브스크립션하지 못할 수 있습니다. 올바른 풀에 가입했는지 확인합니다. 그렇지 않으면 이 설치에 필요한 모든 리포지토리를 활성화하지 못할 수 있습니다. subscription-manager list --all --available 명령을 사용하여 올바른 풀 ID를 확인합니다.

  7. 언더클라우드를 Red Hat Enterprise Linux 8.2에 고정합니다:

    $ sudo subscription-manager release --set=8.2
    Copy to Clipboard Toggle word wrap
  8. 다음 명령을 실행하여 dnf-utils 를 설치하고, 모든 기본 리포지토리를 비활성화한 다음 필요한 리포지토리를 활성화합니다.

    [stack@all-in-one]$ sudo dnf install -y dnf-utils
    [stack@all-in-one]$ sudo subscription-manager repos --disable=*
    [stack@all-in-one]$ sudo subscription-manager repos \
    --enable=rhel-8-for-x86_64-baseos-eus-rpms \
    --enable=rhel-8-for-x86_64-appstream-eus-rpms \
    --enable=rhel-8-for-x86_64-highavailability-eus-rpms \
    --enable=ansible-2.9-for-rhel-8-x86_64-rpms \
    --enable=openstack-16.1-for-rhel-8-x86_64-rpms \
    --enable=fast-datapath-for-rhel-8-x86_64-rpms
    Copy to Clipboard Toggle word wrap
    참고

    올인원 환경은 Red Hat OpenStack Platform 16의 기술 프리뷰 기능입니다.

  9. container-tools 모듈 버전을 설정합니다.

    [stack@all-in-one]$ sudo dnf module disable -y container-tools:rhel8
    [stack@all-in-one]$ sudo dnf module enable -y container-tools:2.0
    Copy to Clipboard Toggle word wrap
  10. 기본 운영 체제를 업데이트하고 시스템을 재부팅합니다.

    [stack@all-in-one]$ sudo dnf update
    [stack@all-in-one]$ sudo reboot
    Copy to Clipboard Toggle word wrap
  11. 재부팅한 후 호스트에 다시 로그인합니다.
  12. TripleO CLI(명령줄 인터페이스)를 설치합니다.

    [stack@all-in-one]$ sudo dnf install -y python3-tripleoclient
    Copy to Clipboard Toggle word wrap

4장. 올인원 Red Hat OpenStack Platform 환경 구성

올인원 Red Hat OpenStack Platform 환경을 배포하기 전에 다음 구성 파일을 수동으로 생성해야 합니다.

  • $HOME/containers-prepare-parameters.yaml
  • $HOME/standalone_parameters.yaml

개발 또는 테스트를 위해 올인원 환경을 사용자 지정하려면 다음 구성 파일을 편집합니다.

  • /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml
  • /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml

4.1. 올인원 RHOSP(Red Hat OpenStack Platform) 환경에 대한 YAML 파일 생성

containers-prepare-parameters.yaml 및 standalone _parameters.yaml 파일을 생성하려면 다음 단계를 완료합니다.

  1. 기본 ContainerImagePrepare 매개변수가 포함된 containers-prepare-parameters.yaml 파일을 생성합니다.

    [stack@all-in-one]$ sudo openstack tripleo container image prepare default --output-env-file $HOME/containers-prepare-parameters.yaml
    Copy to Clipboard Toggle word wrap
  2. containers-prepare-parameters.yaml 파일을 편집하고 배포 프로세스에서 registry.redhat.io로 인증하고 컨테이너 이미지를 성공적으로 가져올 수 있도록 ContainerImageRegistryCredentials 매개변수에 Red Hat 인증 정보를 포함합니다.

    parameter_defaults:
      ContainerImagePrepare:
      ...
      ContainerImageRegistryCredentials:
        registry.redhat.io:
          <USERNAME>: "<PASSWORD>"
    Copy to Clipboard Toggle word wrap
    참고

    일반 텍스트로 암호를 입력하지 않으려면 Red Hat 서비스 계정을 만드십시오. 자세한 내용은 Red Hat Container Registry Authentication 을 참조하십시오.

  3. containers-prepare-parameters.yaml에서 ContainerImageRegistryLogin 매개변수를 true 로 설정합니다.

    parameter_defaults:
      ContainerImagePrepare:
      ...
      ContainerImageRegistryCredentials:
        registry.redhat.io:
          <USERNAME>: "<PASSWORD>"
      ContainerImageRegistryLogin: true
    Copy to Clipboard Toggle word wrap

    all-in-one 호스트를 컨테이너 레지스트리로 사용하려면 이 매개변수를 생략하고 openstack tripleo container image prepare 명령에 --local-push-destination 을 포함합니다. 자세한 내용은 컨테이너 이미지 준비를 참조하십시오.

  4. $HOME/standalone_parameters.yaml 파일을 생성하고 네트워크 구성 및 일부 배포 옵션을 포함하여 올인원 RHOSP 환경에 대한 기본 매개변수를 구성합니다. 이 예에서 네트워크 인터페이스 eth1 은 RHOSP를 배포하는 데 사용하는 관리 네트워크의 인터페이스입니다. eth1 의 IP 주소는 192.168.25.2:입니다.

    [stack@all-in-one]$ export IP=192.168.25.2
    [stack@all-in-one]$ export NETMASK=24
    [stack@all-in-one]$ export INTERFACE=eth1
    [stack@all-in-one]$ export DNS1=1.1.1.1
    [stack@all-in-one]$ export DNS2=8.8.8.8
    
    [stack@all-in-one]$ cat <<EOF > $HOME/standalone_parameters.yaml
    parameter_defaults:
      CloudName: $IP
      CloudDomain: <DOMAIN_NAME>
      ControlPlaneStaticRoutes: []
      Debug: true
      DeploymentUser: $USER
      DnsServers:
        - $DNS1
        - $DNS2
      NeutronPublicInterface: $INTERFACE
      NeutronDnsDomain: localdomain
      NeutronBridgeMappings: datacentre:br-ctlplane
      NeutronPhysicalBridge: br-ctlplane
      StandaloneEnableRoutedNetworks: false
      StandaloneHomeDir: $HOME
      StandaloneLocalMtu: 1500
    EOF
    Copy to Clipboard Toggle word wrap

    DNS 주소를 사용하여 DnsServers 매개변수를 구성해야 합니다. 이 주소는 /etc/resolv.conf 파일에서 찾을 수 있습니다.

    [stack@all-in-one]$ cat /etc/resolv.conf
    192.168.122.1
    Copy to Clipboard Toggle word wrap

    단일 네트워크 인터페이스만 사용하는 경우 기본 경로를 정의해야 합니다.

    ControlPlaneStaticRoutes:
      - ip_netmask: 0.0.0.0/0
        next_hop: $GATEWAY
        default: true
    Copy to Clipboard Toggle word wrap

    내부 시간 소스가 있거나 환경에서 외부 시간 소스에 대한 액세스를 차단하는 경우 NtpServer 매개변수를 사용하여 사용하려는 시간 소스를 정의합니다.

    parameter_defaults:
      NtpServer: clock.example.com
    Copy to Clipboard Toggle word wrap

    가상 환경에서 올인원 RHOSP 설치를 사용하려면 NovaComputeLibvirtType 매개변수를 사용하여 가상화 유형을 정의해야 합니다.

    parameter_defaults:
      NovaComputeLibvirtType: qemu
    Copy to Clipboard Toggle word wrap

    로드 밸런싱 서비스(octavia)에서는 SSH를 구성할 필요가 없습니다. 그러나 로드 밸런싱 인스턴스(amphorae)에 대한 SSH 액세스를 원하는 경우 stack 사용자의 공개 키 파일의 절대 경로 값을 사용하여 OctaviaAmphoraSshKeyFile 매개변수를 추가합니다. OctaviaAmphoraSshKeyFile: "/home/stack/.ssh/id_rsa.pub"

5장. 올인원 Red Hat OpenStack Platform 환경 배포

올인원 환경을 배포하려면 다음 단계를 완료합니다.

  1. Red Hat 자격 증명을 사용하여 registry.redhat.io에 로그인합니다.

    [stack@all-in-one]$ sudo podman login registry.redhat.io
    Copy to Clipboard Toggle word wrap
  2. 배포 명령에서 사용하는 환경 변수를 내보냅니다. 이 예에서는 관리 네트워크에 IP 주소가 192.168.25.2인 eth1 인터페이스를 사용하여 올인원 환경을 배포합니다.

    [stack@all-in-one]$ export IP=192.168.25.2
    [stack@all-in-one]$ export NETMASK=24
    [stack@all-in-one]$ export INTERFACE=eth1
    Copy to Clipboard Toggle word wrap
  3. 호스트 이름을 설정합니다. 노드에서 localhost.localdomain을 사용하는 경우 배포에 실패합니다.

    [stack@all-in-one]$ hostnamectl set-hostname all-in-one.example.net
    [stack@all-in-one]$ hostnamectl set-hostname all-in-one.example.net --transient
    Copy to Clipboard Toggle word wrap
  4. 배포 명령을 실행합니다. 환경과 관련된 all .yaml 파일을 포함해야 합니다.

    [stack@all-in-one]$ sudo openstack tripleo deploy \
      --templates \
      --local-ip=$IP/$NETMASK \
      -e /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml \
      -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml \
      -e $HOME/containers-prepare-parameters.yaml \
      -e $HOME/standalone_parameters.yaml \
      --output-dir $HOME \
      --standalone
    Copy to Clipboard Toggle word wrap

배포가 완료되면 /home/$USER/ .config/openstack 디렉터리에 있는 clouds. yaml 구성 파일을 사용하여 OpenStack 서비스를 쿼리하고 확인할 수 있습니다.

[stack@all-in-one]$ export OS_CLOUD=standalone
[stack@all-in-one]$ openstack endpoint list
Copy to Clipboard Toggle word wrap

대시보드에 액세스하려면 http://192.168.25.2/dashboard 로 이동하여 ~/standalone-passwords.conf 파일에서 기본 사용자 이름 adminundercloud_admin_password 를 사용합니다.

[stack@all-in-one]$ cat standalone-passwords.conf | grep undercloud_admin_password:
Copy to Clipboard Toggle word wrap

6장. 올인원 Red Hat OpenStack Platform 환경에서 Ansible Playbook 생성

배포 명령은 Ansible 플레이북을 환경에 자동으로 적용합니다. 그러나 배포 명령을 수정하여 배포에 적용하지 않고 Ansible 플레이북을 생성하고 나중에 플레이북을 실행할 수 있습니다.

deploy 명령에 --output-only 옵션을 포함하여 standalone-ansible-XXXXX 디렉터리를 생성합니다. 이 디렉터리에는 다른 호스트에서 실행할 수 있는 Ansible 플레이북 세트가 포함되어 있습니다.

  1. Ansible 플레이북 디렉터리를 생성하려면 --output-only 옵션을 사용하여 배포 명령을 실행합니다.

    [stack@all-in-one]$ sudo openstack tripleo deploy \
      --templates \
      --local-ip=$IP/$NETMASK \
      -e /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml \
      -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml \
      -e $HOME/containers-prepare-parameters.yaml \
      -e $HOME/standalone_parameters.yaml \
      --output-dir $HOME \
      --standalone \
      --output-only
    Copy to Clipboard Toggle word wrap
  2. Ansible 플레이북을 실행하려면 ansible-playbook 명령을 실행하고 inventory.yaml 파일과 deploy_steps_playbook.yaml 파일을 포함합니다.

    [stack@all-in-one]$ cd standalone-ansible-XXXXX
    [stack@all-in-one]$ sudo ansible-playbook -i inventory.yaml deploy_steps_playbook.yaml
    Copy to Clipboard Toggle word wrap

7장. heat 템플릿 작업

이 가이드의 사용자 지정 구성에서는 heat 템플릿 및 환경 파일을 사용하여 Overcloud의 특정 측면을 정의합니다. 이 장에서는 Red Hat OpenStack Platform 컨텍스트에서 heat 템플릿의 구조를 기본 소개합니다. 템플릿의 목적은 heat에서 생성하는 리소스 컬렉션과 리소스의 구성인 스택을 정의하고 생성하는 것입니다. 리소스는 OpenStack의 오브젝트이며 컴퓨팅 리소스, 네트워크 구성, 보안 그룹, 확장 규칙 및 사용자 지정 리소스를 포함할 수 있습니다.

heat 템플릿의 구조에는 세 가지 주요 섹션이 있습니다.

매개 변수

매개 변수는 설정이 heat로 전달됩니다. 이러한 매개 변수를 사용하여 기본값과 기본값이 아닌 값을 정의하고 사용자 지정합니다. 이러한 매개 변수를 템플릿의 parameters 섹션에 정의합니다.

Resources

리소스는 스택의 일부로 생성 및 구성할 특정 오브젝트입니다. OpenStack에는 모든 구성 요소에 걸쳐 있는 핵심 리소스 세트가 포함되어 있습니다. 템플릿의 resources 섹션에 리소스를 정의합니다.

출력 결과

스택 생성 후 heat에서 전달되는 값입니다. heat API 또는 클라이언트 도구를 통해 이러한 값에 액세스할 수 있습니다. 이러한 값을 템플릿의 output 섹션에 정의합니다.

Heat에서 템플릿을 처리하면 템플릿의 스택과 리소스 템플릿의 하위 스택 세트를 생성합니다. 이 스택 계층 구조는 템플릿으로 정의한 기본 스택에서 내보냅니다. 다음 명령을 사용하여 스택 계층 구조를 볼 수 있습니다.

$ heat stack-list --show-nested
Copy to Clipboard Toggle word wrap

7.1. 코어 heat 템플릿

Red Hat OpenStack Platform에는 오버클라우드의 코어 heat 템플릿 컬렉션이 포함되어 있습니다. 이 컬렉션은 /usr/share/openstack-tripleo-heat-templates 디렉터리에서 찾을 수 있습니다.

이 컬렉션에는 많은 heat 템플릿과 환경 파일이 있습니다. 이 섹션에는 배포를 사용자 지정하는 데 사용할 수 있는 기본 파일과 디렉터리에 대한 정보가 포함되어 있습니다.

overcloud.j2.yaml

이 파일은 Overcloud 환경을 생성하는 데 사용되는 기본 템플릿 파일입니다. 이 파일은 Jinja2 구문을 사용하고 템플릿의 특정 섹션을 반복하여 사용자 지정 역할을 생성합니다. Jinja2 형식은 Overcloud 배포 프로세스 중에 YAML로 렌더링됩니다.

overcloud-resource-registry-puppet.j2.yaml

이 파일은 오버클라우드 환경을 생성하는 데 사용하는 기본 환경 파일입니다. 이 파일에는 오버클라우드 이미지의 Puppet 모듈에 대한 구성이 포함되어 있습니다. director가 각 노드에 오버클라우드 이미지를 쓰고 나면 heat는 이 환경 파일에 등록된 리소스를 사용하여 각 노드의 Puppet 구성을 시작합니다. 이 파일은 Jinja2 구문을 사용하고 템플릿의 특정 섹션을 반복하여 사용자 지정 역할을 생성합니다. Jinja2 형식은 Overcloud 배포 프로세스 중에 YAML로 렌더링됩니다.

roles_data.yaml

이 파일에는 Overcloud의 역할 정의가 포함되어 있으며 서비스를 각 역할에 매핑합니다.

network_data.yaml

이 파일에는 서브넷, 할당 풀, VIP 상태를 포함하여 오버클라우드의 네트워크 정의와 해당 속성 정의가 포함되어 있습니다. 기본 network_data.yaml 파일에는 기본 네트워크만 포함되어 있습니다. 외부, 내부 API, 스토리지, 스토리지 관리, 테넌트 및 관리. 사용자 지정 network_data.yaml 파일을 생성하고 -n 옵션을 사용하여 openstack overcloud deploy 명령에 포함할 수 있습니다.

plan-environment.yaml

이 파일에는 계획 이름, 사용할 기본 템플릿, 오버클라우드에 적용할 환경 파일 등 오버클라우드 계획에 대한 메타데이터 정의가 포함되어 있습니다.

capabilities-map.yaml

이 파일에는 오버클라우드 계획에 대한 환경 파일 매핑이 포함되어 있습니다. 이 파일을 사용하여 Director web UI에서 환경 파일을 설명하고 활성화합니다. environment 디렉터리에 사용자 지정 환경 파일을 포함하지만 capabilities-map.yaml 파일에서 이러한 파일을 정의하지 않는 경우 이러한 환경 파일은 웹 UI의 Overall Settings (전체 설정) 페이지의 Other (기타) 하위 탭에 있습니다.

환경

이 디렉터리에는 오버클라우드 생성과 함께 사용할 수 있는 추가 heat 환경 파일이 포함되어 있습니다. 이러한 환경 파일을 사용하면 Red Hat OpenStack Platform 환경에 추가 기능을 사용할 수 있습니다. 예를 들어 cinder-netapp-config.yaml 환경 파일을 사용하여 블록 스토리지 서비스(cinder)에 NetApp 백엔드 스토리지를 활성화할 수 있습니다. environment 디렉터리에 사용자 지정 환경 파일을 포함하지만 capabilities-map.yaml 파일에서 이러한 파일을 정의하지 않는 경우 이러한 환경 파일은 웹 UI의 Overall Settings (전체 설정) 페이지의 Other (기타) 하위 탭에 있습니다.

network

이 디렉터리에는 격리된 네트워크 및 포트를 생성하는 데 사용할 수 있는 heat 템플릿 세트가 포함되어 있습니다.

Puppet

이 디렉터리에는 puppet 템플릿이 포함되어 있습니다. overcloud-resource-registry-puppet.j2.yaml 환경 파일은 puppet 디렉터리의 파일을 사용하여 각 노드에서 Puppet 구성의 애플리케이션을 구동합니다.

Puppet/서비스

이 디렉터리에는 구성 가능 서비스 아키텍처의 모든 서비스에 대한 heat 템플릿이 포함되어 있습니다.

extraconfig

이 디렉터리에는 추가 기능을 활성화하는 데 사용할 수 있는 템플릿이 포함되어 있습니다. 예를 들어 extraconfig/pre_deploy/rhel-registration 디렉터리를 사용하여 노드를 Red Hat Content Delivery 네트워크에 등록하거나 자체 Red Hat Satellite 서버로 노드를 등록할 수 있습니다.

8장. 사용자 지정 역할 및 서비스 작업

Red Hat OpenStack Platform은 일반적으로 사전 정의된 역할의 노드로 구성됩니다(예: 컨트롤러 역할, 컴퓨팅 역할 및 다양한 스토리지 역할 유형의 노드). 이러한 각 기본 역할에는 코어 heat 템플릿 컬렉션에 정의된 서비스 세트가 포함되어 있습니다. 그러나 올인원 Red Hat OpenStack Platform 설치는 모든 OpenStack 서비스가 포함된 단일 노드에서 실행됩니다. /usr/share/openstack-tripleo-heat-templates/roles 디렉터리의 Standalone.yaml 역할 파일은 all-in-one 설치의 모든 서비스가 포함된 구성 파일입니다. Standalone.yaml 역할 파일을 복제하고 수정하여 설치 시 서비스를 활성화하고 비활성화할 수 있습니다.

Standalone.yaml 파일에는 역할 독립 실행형 에 서비스 목록이 포함되어 있습니다. 다음 예제를 사용하여 이 파일의 구문을 파악합니다.

- name: Standalone
  description: |
    A standalone role that includes a minimal set of services. Use this role for testing in a single node configuration with the 'openstack tripleo deploy --standalone' command, or with the 'openstack overcloud deploy' command.
  CountDefault: 1
  tags:
    - primary
    - controller
  disable_constraints: True
  ServicesDefault:
    - OS::TripleO::Services::Aide
    - OS::TripleO::Services::AodhApi
    - OS::TripleO::Services::AodhEvaluator
    ...
    - OS::TripleO::Services::Tuned
    - OS::TripleO::Services::Vpp
    - OS::TripleO::Services::Zaqar
Copy to Clipboard Toggle word wrap

이 역할 파일을 배포 명령에 포함하여 역할 파일의 ServicesDefault: 섹션에 포함하는 서비스를 포함하는 Standalone 역할 역할로 스택을 구성합니다.

[stack@all-in-one]$ sudo openstack tripleo deploy --templates -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml
Copy to Clipboard Toggle word wrap

그러나 프로덕션 다중 노드 Red Hat OpenStack Platform 환경에서는 모든 서비스를 단일 노드에 포함하는 역할을 각 노드에 할당합니다. 예를 들어 기본 컨트롤러 역할에는 관리, 네트워킹 및 고가용성 서비스가 포함되며, 기본 Compute 역할에는 컴퓨팅 서비스가 포함됩니다. 다중 노드 환경의 기본 역할 파일은 /usr/share/openstack-tripleo-heat-templates/roles_data.yaml 파일입니다. 이 파일은 다음 역할 유형을 정의합니다.

  • 컨트롤러
  • Compute
  • BlockStorage
  • ObjectStorage
  • CephStorage

다음 예제를 사용하여 다중 노드 환경의 역할 구문을 파악합니다.

- name: Controller
  description: |
    Controller role that contains all of the services for database, messaging and network functions.
  ServicesDefault:
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CephClient
    ...
- name: Compute
  description: |
    Basic Compute Node role
  ServicesDefault:
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CephClient
    ...
Copy to Clipboard Toggle word wrap

배포 명령을 실행할 때마다 역할 파일을 포함해야 합니다. 배포 명령에서 -r 인수를 사용하여 이 파일을 재정의하고 사용자 지정 역할 파일을 사용할 수 있습니다.

[stack@all-in-one]$ sudo openstack tripleo deploy --templates -r ~/templates/roles_data-custom.yaml
Copy to Clipboard Toggle word wrap

8.1. 올인원 Red Hat OpenStack Platform 환경에서 서비스 활성화 및 비활성화

/usr/share/openstack-tripleo-heat-templates/roles 디렉터리의 Standalone.yaml 역할 파일은 all-in-one 설치의 모든 서비스가 포함된 구성 파일입니다. 개별 서비스를 활성화하거나 비활성화할 수 있습니다.

절차
  1. 서비스를 비활성화하려면 새 환경 파일을 생성하고 비활성화하려는 서비스에 대한 값 OS::Heat::None 을 포함합니다.

        - OS::TripleO::Services::<SERVICE>: OS::Heat::None
    Copy to Clipboard Toggle word wrap

    배포 명령에 이 환경 파일을 포함합니다.

  2. 서비스를 활성화하려면 새 환경 파일을 생성하고 활성화하려는 서비스에서 OS::Heat::None 값을 제거합니다.

        - OS::TripleO::Services::<SERVICE>:
    Copy to Clipboard Toggle word wrap

    배포 명령에 이 환경 파일을 포함합니다.

9장. 예

다음 예제를 사용하여 다양한 네트워크 구성으로 계산 인스턴스를 배포 후 시작하는 방법을 이해합니다.

이 예제를 사용하여 올인원 Red Hat OpenStack Platform 환경을 배포한 후 사설 프로젝트 네트워크와 공급자 네트워크로 인스턴스를 시작하는 방법을 알아보십시오. 이 예는 단일 NIC 구성을 기반으로 하며 3개 이상의 IP 주소가 필요합니다.

사전 요구 사항

이 예제를 성공적으로 완료하려면 사용자 환경에서 다음 IP 주소를 사용할 수 있어야 합니다.

  • OpenStack 서비스용 IP 주소 1개.
  • 프로젝트 네트워크에 연결을 제공하는 가상 라우터에 대한 IP 주소 1개입니다. 이 IP 주소는 이 예에서 자동으로 할당됩니다.
  • 프로바이더 네트워크에서 유동 IP에 대해 하나 이상의 IP 주소입니다.
절차
  1. 구성 도우미 변수를 생성합니다.

    # standalone with project networking and provider networking
    export OS_CLOUD=standalone
    export GATEWAY=192.168.25.1
    export STANDALONE_HOST=192.168.25.2
    export PUBLIC_NETWORK_CIDR=192.168.25.0/24
    export PRIVATE_NETWORK_CIDR=192.168.100.0/24
    export PUBLIC_NET_START=192.168.25.4
    export PUBLIC_NET_END=192.168.25.15
    export DNS_SERVER=1.1.1.1
    Copy to Clipboard Toggle word wrap
  2. 기본 플레이버를 생성합니다.

    $ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
    Copy to Clipboard Toggle word wrap
  3. CirrOS를 다운로드하고 OpenStack 이미지를 생성합니다.

    $ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
    $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
    Copy to Clipboard Toggle word wrap
  4. SSH를 구성합니다.

    $ ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem
    $ openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub default
    Copy to Clipboard Toggle word wrap
  5. 간단한 네트워크 보안 그룹을 생성합니다.

    $ openstack security group create basic
    Copy to Clipboard Toggle word wrap
  6. 새 네트워크 보안 그룹을 구성합니다.

    1. SSH를 활성화합니다.

      $ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
      Copy to Clipboard Toggle word wrap
    2. ping을 활성화합니다.

      $ openstack security group rule create --protocol icmp basic
      Copy to Clipboard Toggle word wrap
    3. DNS를 활성화합니다.

      $ openstack security group rule create --protocol udp --dst-port 53:53 basic
      Copy to Clipboard Toggle word wrap
  7. Neutron 네트워크를 생성합니다.

    $ openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
    $ openstack network create --internal private
    $ openstack subnet create public-net \
        --subnet-range $PUBLIC_NETWORK_CIDR \
        --no-dhcp \
        --gateway $GATEWAY \
        --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END \
        --network public
    $ openstack subnet create private-net \
        --subnet-range $PRIVATE_NETWORK_CIDR \
        --network private
    Copy to Clipboard Toggle word wrap
  8. 가상 라우터를 생성합니다.

    # NOTE: In this case an IP will be automatically assigned
    # from the allocation pool for the subnet.
    $ openstack router create vrouter
    $ openstack router set vrouter --external-gateway public
    $ openstack router add subnet vrouter private-net
    Copy to Clipboard Toggle word wrap
  9. 유동 IP를 만듭니다.

    $ openstack floating ip create public
    Copy to Clipboard Toggle word wrap
  10. 인스턴스를 시작합니다.

    $ openstack server create --flavor tiny --image cirros --key-name default --network private --security-group basic myserver
    Copy to Clipboard Toggle word wrap
  11. 유동 IP를 할당합니다.

    $ openstack server add floating ip myserver <FLOATING_IP>
    Copy to Clipboard Toggle word wrap

    FLOATING_IP 를 이전 단계에서 생성한 유동 IP의 주소로 바꿉니다.

  12. 테스트 SSH:

    ssh cirros@<FLOATING_IP>
    Copy to Clipboard Toggle word wrap

    FLOATING_IP 를 이전 단계에서 생성한 유동 IP의 주소로 바꿉니다.

네트워크 아키텍처

Standalone1NIC Tenant Provider

9.2. 예 2: 공급자 네트워크에서 하나의 NIC로 인스턴스 시작

이 예제를 사용하여 올인원 Red Hat OpenStack Platform 환경을 배포한 후 공급자 네트워크로 인스턴스를 시작하는 방법을 확인합니다. 이 예는 단일 NIC 구성을 기반으로 하며 4개 이상의 IP 주소가 필요합니다.

사전 요구 사항

이 예제를 성공적으로 완료하려면 사용자 환경에서 다음 IP 주소를 사용할 수 있어야 합니다.

  • OpenStack 서비스용 IP 주소 1개.
  • 프로젝트 네트워크에 연결을 제공하는 가상 라우터에 대한 IP 주소 1개입니다. 이 IP 주소는 이 예에서 자동으로 할당됩니다.
  • 프로바이더 네트워크에서 DHCP의 IP 주소 1개.
  • 프로바이더 네트워크에서 유동 IP에 대해 하나 이상의 IP 주소입니다.
절차
  1. 구성 도우미 변수를 생성합니다.

    # standalone with project networking and provider networking
    export OS_CLOUD=standalone
    export GATEWAY=192.168.25.1
    export STANDALONE_HOST=192.168.25.2
    export VROUTER_IP=192.168.25.3
    export PUBLIC_NETWORK_CIDR=192.168.25.0/24
    export PUBLIC_NET_START=192.168.25.4
    export PUBLIC_NET_END=192.168.25.15
    export DNS_SERVER=1.1.1.1
    Copy to Clipboard Toggle word wrap
  2. 기본 플레이버를 생성합니다.

    $ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
    Copy to Clipboard Toggle word wrap
  3. CirrOS를 다운로드하고 OpenStack 이미지를 생성합니다.

    $ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
    $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
    Copy to Clipboard Toggle word wrap
  4. SSH를 구성합니다.

    $ ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem
    $ openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub default
    Copy to Clipboard Toggle word wrap
  5. 간단한 네트워크 보안 그룹을 생성합니다.

    $ openstack security group create basic
    Copy to Clipboard Toggle word wrap
  6. 새 네트워크 보안 그룹을 구성합니다.

    1. SSH를 활성화합니다.

      $ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
      Copy to Clipboard Toggle word wrap
    2. ping을 활성화합니다.

      $ openstack security group rule create --protocol icmp basic
      Copy to Clipboard Toggle word wrap
  7. Neutron 네트워크를 생성합니다.

    $ openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
    $ openstack network create --internal private
    $ openstack subnet create public-net \
        --subnet-range $PUBLIC_NETWORK_CIDR \
        --gateway $GATEWAY \
        --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END \
        --network public \
        --host-route destination=0.0.0.0/0,gateway=$GATEWAY \
        --dns-nameserver $DNS_SERVER
    Copy to Clipboard Toggle word wrap
  8. 인스턴스를 시작합니다.

    $ openstack server create --flavor tiny --image cirros --key-name default --network public --security-group basic myserver
    Copy to Clipboard Toggle word wrap
  9. 테스트 SSH:

    ssh cirros@<VM_IP>
    Copy to Clipboard Toggle word wrap

    VM_IP 를 이전 단계에서 생성한 가상 시스템의 주소로 바꿉니다.

네트워크 아키텍처

Standalone1NIC Provider

이 예제를 사용하여 올인원 Red Hat OpenStack Platform 환경을 배포한 후 사설 프로젝트 네트워크와 공급자 네트워크로 인스턴스를 시작하는 방법을 알아보십시오. 이 예제는 듀얼 NIC 구성을 기반으로 하며 공급자 네트워크에 4개 이상의 IP 주소가 필요합니다.

사전 요구 사항
  • 프로바이더 네트워크의 게이트웨이에 대한 IP 주소 1개.
  • OpenStack 엔드포인트의 IP 주소 1개.
  • 프로젝트 네트워크에 연결을 제공하는 가상 라우터에 대한 IP 주소 1개입니다. 이 IP 주소는 이 예에서 자동으로 할당됩니다.
  • 프로바이더 네트워크에서 유동 IP에 대해 하나 이상의 IP 주소입니다.
절차
  1. 구성 도우미 변수를 생성합니다.

    # standalone with project networking and provider networking
    export OS_CLOUD=standalone
    export GATEWAY=192.168.25.1
    export STANDALONE_HOST=192.168.0.2
    export PUBLIC_NETWORK_CIDR=192.168.25.0/24
    export PRIVATE_NETWORK_CIDR=192.168.100.0/24
    export PUBLIC_NET_START=192.168.25.3
    export PUBLIC_NET_END=192.168.25.254
    export DNS_SERVER=1.1.1.1
    Copy to Clipboard Toggle word wrap
  2. 기본 플레이버를 생성합니다.

    $ openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
    Copy to Clipboard Toggle word wrap
  3. CirrOS를 다운로드하고 OpenStack 이미지를 생성합니다.

    $ wget https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
    $ openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.4.0-x86_64-disk.img
    Copy to Clipboard Toggle word wrap
  4. SSH를 구성합니다.

    $ ssh-keygen -m PEM -t rsa -b 2048 -f ~/.ssh/id_rsa_pem
    $ openstack keypair create --public-key ~/.ssh/id_rsa_pem.pub default
    Copy to Clipboard Toggle word wrap
  5. 간단한 네트워크 보안 그룹을 생성합니다.

    $ openstack security group create basic
    Copy to Clipboard Toggle word wrap
  6. 새 네트워크 보안 그룹을 구성합니다.

    1. SSH를 활성화합니다.

      $ openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
      Copy to Clipboard Toggle word wrap
    2. ping을 활성화합니다.

      $ openstack security group rule create --protocol icmp basic
      Copy to Clipboard Toggle word wrap
    3. DNS를 활성화합니다.

      $ openstack security group rule create --protocol udp --dst-port 53:53 basic
      Copy to Clipboard Toggle word wrap
  7. Neutron 네트워크를 생성합니다.

    $ openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
    $ openstack network create --internal private
    $ openstack subnet create public-net \
        --subnet-range $PUBLIC_NETWORK_CIDR \
        --no-dhcp \
        --gateway $GATEWAY \
        --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END \
        --network public
    $ openstack subnet create private-net \
        --subnet-range $PRIVATE_NETWORK_CIDR \
        --network private
    Copy to Clipboard Toggle word wrap
  8. 가상 라우터를 생성합니다.

    # NOTE: In this case an IP will be automatically assigned
    # from the allocation pool for the subnet.
    $ openstack router create vrouter
    $ openstack router set vrouter --external-gateway public
    $ openstack router add subnet vrouter private-net
    Copy to Clipboard Toggle word wrap
  9. 유동 IP를 만듭니다.

    $ openstack floating ip create public
    Copy to Clipboard Toggle word wrap
  10. 인스턴스를 시작합니다.

    $ openstack server create --flavor tiny --image cirros --key-name default --network private --security-group basic myserver
    Copy to Clipboard Toggle word wrap
  11. 유동 IP를 할당합니다.

    $ openstack server add floating ip myserver <FLOATING_IP>
    Copy to Clipboard Toggle word wrap

    FLOATING_IP 를 이전 단계에서 생성한 유동 IP의 주소로 바꿉니다.

  12. 테스트 SSH:

    ssh cirros@<FLOATING_IP>
    Copy to Clipboard Toggle word wrap

    FLOATING_IP 를 이전 단계에서 생성한 유동 IP의 주소로 바꿉니다.

네트워크 아키텍처

Standalone2NIC Tenant Provider

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동