2.4. novajoin을 사용하여 Red Hat IdM(Identity Manager)에 노드 등록


novajoin은 배포 프로세스의 일부로 Red Hat IdM(Identity Manager)에 노드를 등록하는 데 사용하는 기본 도구입니다. Red Hat은 TLS-e를 사용하여 언더클라우드 및 오버클라우드를 설정하기 위해 기본 novajoin 솔루션을 통해 새로운 ansible 기반 tripleo-ipa 솔루션을 권장합니다. 자세한 내용은 Ansible을 사용하여 TLS-e 구현에서 참조하십시오.

나머지 IdM 통합을 진행하기 전에 등록 프로세스를 수행해야 합니다. 등록 과정에는 다음 단계가 포함됩니다.

  1. 언더클라우드 노드를 CA(인증 기관)에 추가
  2. IdM에 언더클라우드 노드 추가
  3. 선택 사항: IdM 서버를 오버클라우드의 DNS 서버로 설정
  4. 환경 파일 준비 및 오버클라우드 배포
  5. IdM 및 RHOSP에서 오버클라우드 등록 테스트
  6. 선택 사항: IdM에서 novajoin의 DNS 항목 추가
참고

novajoin에 IdM 등록은 현재 언더클라우드 및 오버클라우드 노드에서만 사용할 수 있습니다. 오버클라우드 인스턴스에 대한 novajoin 통합은 이후 릴리스에서 지원될 것으로 예상됩니다.

2.4.1. 인증 기관에 언더클라우드 노드 추가

오버클라우드를 배포하기 전에 언더클라우드 노드에 python3-novajoin 패키지를 설치하고 novajoin -ipa-setup 스크립트를 실행하여 언더클라우드를 CA(인증 기관)에 추가합니다.

절차

  1. 언더클라우드 노드에서 python3-novajoin 패키지를 설치합니다.

    $ sudo dnf install python3-novajoin
  2. 언더클라우드 노드에서 novajoin-ipa-setup 스크립트를 실행하고 배포에 맞게 값을 조정합니다.

    $ sudo /usr/libexec/novajoin-ipa-setup \
        --principal admin \
        --password <IdM admin password> \
        --server <IdM server hostname> \
        --realm <realm> \
        --domain <overcloud cloud domain> \
        --hostname <undercloud hostname> \
        --precreate

    결과 OTP(One-Time Password)를 사용하여 Undercloud를 등록합니다.

2.4.2. Red Hat IdM(Identity Manager)에 언더클라우드 노드 추가

언더클라우드 노드를 CA(인증 기관)에 추가한 후 IdM을 사용하여 언더클라우드를 등록하고 novajoin을 구성합니다. undercloud.conf 파일의 [DEFAULT] 섹션에 다음 설정을 구성합니다.

절차

  1. novajoin 서비스를 활성화합니다.

    [DEFAULT]
    enable_novajoin = true
  2. IdM을 사용하여 언더클라우드 노드를 등록할 수 있도록 1회성 암호(OTP)를 설정합니다.

    ipa_otp = <otp>
  3. neutron의 DHCP 서버에서 제공할 오버클라우드의 도메인 이름을 설정합니다.

    overcloud_domain_name = <domain>
  4. 언더클라우드의 호스트 이름을 설정합니다.

    undercloud_hostname = <undercloud FQDN>
  5. IdM을 언더클라우드의 이름 서버로 설정합니다.

    undercloud_nameservers = <IdM IP>
  6. 더 큰 환경의 경우 novajoin 연결 시간 제한 값을 검토하십시오. undercloud.conf 파일에서 undercloud-timeout.yaml이라는 새 파일에 참조를 추가합니다.

    hieradata_override = /home/stack/undercloud-timeout.yaml

    undercloud-timeout.yaml 에 다음 옵션을 추가합니다. 시간 제한 값을 초 단위로 지정할 수 있습니다(예: 5):

    nova::api::vendordata_dynamic_connect_timeout: <timeout value>
    nova::api::vendordata_dynamic_read_timeout: <timeout value>
  7. 선택 사항: 로컬 openSSL 인증 기관에서 director의 공용 끝점에 대한 SSL 인증서를 생성 하려면 generate_service_certificate 매개변수를 true 로 설정합니다.

    generate_service_certificate = true
  8. undercloud.conf 파일을 저장합니다.
  9. 언더클라우드 배포 명령을 실행하여 기존 언더클라우드에 변경 사항을 적용합니다.

    $ openstack undercloud install

검증

다음 단계를 완료하여 언더클라우드가 올바르게 등록되었는지 확인합니다.

  1. IdM에 호스트를 나열합니다.

    $ kinit admin
    $ ipa host-find
  2. 언더클라우드에 /etc/novajoin/krb5.keytab 이 있는지 확인합니다.

    ls /etc/novajoin/krb5.keytab

2.4.3. 오버클라우드의 DNS 서버로 Red Hat IdM(Identity Manager) 설정

IdM 환경에 대한 자동 감지 및 등록이 용이하려면 DNS 서버로 IdM을 설정합니다. 이 절차는 선택 사항이지만 권장되는 절차입니다.

절차

  1. 언더클라우드에 연결합니다.

    $ source ~/stackrc
  2. IdM을 DNS 이름 서버로 사용하도록 컨트롤 플레인 서브넷을 구성합니다.

    $ openstack subnet set ctlplane-subnet --dns-nameserver  <idm_server_address>
  3. IdM 서버를 사용하도록 환경 파일에서 DnsServers 매개변수를 설정합니다.

    parameter_defaults:
      DnsServers: ["<idm_server_address>"]

    일반적으로 이 매개변수는 사용자 지정 network-environment.yaml 파일에 정의됩니다.

2.4.4. novajoin 등록을 사용하여 환경 파일 준비 및 오버클라우드 배포

IdM 통합을 사용하여 오버클라우드를 배포하려면 환경 파일을 생성하고 편집하여 오버클라우드에서 정의한 도메인을 기반으로 사용자 지정 도메인 매개변수 CloudDomain 및 CloudName 을 사용하도록 오버클라우드를 구성합니다. 그런 다음 모든 환경 파일과 배포에 필요한 추가 환경 파일을 사용하여 오버클라우드를 배포합니다.

절차

  1. /usr/share/openstack-tripleo-heat-templates/environments/predictable-placement/custom-domain.yaml 환경 파일의 사본을 생성합니다.

    $ cp /usr/share/openstack-tripleo-heat-templates/environments/predictable-placement/custom-domain.yaml \
      /home/stack/templates/custom-domain.yaml
  2. /home/stack/templates/custom-domain.yaml 환경 파일을 편집하고 배포에 맞게 CloudDomainCloudName* 값을 설정합니다.

    parameter_defaults:
      CloudDomain: lab.local
      CloudName: overcloud.lab.local
      CloudNameInternal: overcloud.internalapi.lab.local
      CloudNameStorage: overcloud.storage.lab.local
      CloudNameStorageManagement: overcloud.storagemgmt.lab.local
      CloudNameCtlplane: overcloud.ctlplane.lab.local
  3. 사용자 환경에 적합한 TLS 구현을 선택합니다.

    • enable-tls.yaml 환경 파일을 사용하여 사용자 정의 인증서로 외부 끝점을 보호합니다.

      1. /usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-tls.yaml/home/stack/templates 로 복사합니다.
      2. 사용자 정의 인증서 및 키를 포함하도록 /home/stack/enable-tls.yaml 환경 파일을 수정합니다.
      3. 배포에 다음 환경 파일을 포함하여 내부 및 외부 끝점을 보호합니다.

        • enable-internal-tls.yaml
        • tls-every-endpoints-dns.yaml
        • custom-domain.yaml
        • enable-tls.yaml

          openstack overcloud deploy \
            --templates \
            -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-internal-tls.yaml \
            -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/tls-everywhere-endpoints-dns.yaml \
            -e /home/stack/templates/custom-domain.yaml \
            -e /home/stack/templates/enable-tls.yaml
    • haproxy-public-tls-certmonger.yaml 환경 파일을 사용하여 IdM에서 발급한 인증서로 외부 엔드포인트를 보호합니다. 이 구현을 위해 novajoin에서 사용하는 VIP 끝점의 DNS 항목을 생성해야 합니다.

      1. novajoin에서 사용하는 VIP 끝점의 DNS 항목을 생성해야 합니다. '/home/stack/templates의 사용자 지정 network-environment.yaml 파일에 있는 오버클라우드 네트워크를 식별합니다.

        parameter_defaults:
            ControlPlaneDefaultRoute: 192.168.24.1
            ExternalAllocationPools:
            -   end: 10.0.0.149
                start: 10.0.0.101
            InternalApiAllocationPools:
            -   end: 172.17.1.149
                start: 172.17.1.10
            StorageAllocationPools:
            -   end: 172.17.3.149
                start: 172.17.3.10
            StorageMgmtAllocationPools:
            -   end: 172.17.4.149
                start: 172.17.4.10
      2. heat 템플릿에 각 오버클라우드 네트워크의 가상 IP 주소 목록을 생성합니다(예: /home/stack/public_vib.yaml ).

        parameter_defaults:
            ControlFixedIPs: [{'ip_address':'192.168.24.101'}]
            PublicVirtualFixedIPs: [{'ip_address':'10.0.0.101'}]
            InternalApiVirtualFixedIPs: [{'ip_address':'172.17.1.101'}]
            StorageVirtualFixedIPs: [{'ip_address':'172.17.3.101'}]
            StorageMgmtVirtualFixedIPs: [{'ip_address':'172.17.4.101'}]
            RedisVirtualFixedIPs: [{'ip_address':'172.17.1.102'}]
      3. 필요에 따라 각 VIP 및 영역에 대한 DNS 항목을 IdM에 추가합니다.

        ipa dnsrecord-add lab.local overcloud --a-rec 10.0.0.101
        ipa dnszone-add ctlplane.lab.local
        ipa dnsrecord-add ctlplane.lab.local overcloud --a-rec 192.168.24.101
        ipa dnszone-add internalapi.lab.local
        ipa dnsrecord-add internalapi.lab.local overcloud --a-rec 172.17.1.101
        ipa dnszone-add storage.lab.local
        ipa dnsrecord-add storage.lab.local overcloud --a-rec 172.17.3.101
        ipa dnszone-add storagemgmt.lab.local
        ipa dnsrecord-add storagemgmt.lab.local overcloud --a-rec 172.17.4.101
      4. 배포에 다음 환경 파일을 포함하여 내부 및 외부 끝점을 보호합니다.

        • enable-internal-tls.yaml
        • tls-everywhere-endpoints-dns.yaml
        • haproxy-public-tls-certmonger.yaml
        • custom-domain.yaml
        • public_vib.yaml

          openstack overcloud deploy \
            --templates \
             -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-internal-tls.yaml \
             -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/tls-everywhere-endpoints-dns.yaml \
             -e /usr/share/openstack-tripleo-heat-templates/environments/services/haproxy-public-tls-certmonger.yaml \
             -e /home/stack/templates/custom-domain.yaml \
             -e /home/stack/templates/public-vip.yaml
참고

novajoin을 사용하여 기존 배포에서 TLS-e(TLS-e)를 구현할 수 없습니다.

2.4.5. Red Hat IdM(Identity Manager)에서 오버클라우드 등록 테스트

novajoin을 사용하여 IdM에 언더클라우드 및 오버클라우드 등록을 완료한 후 IdM에서 오버클라우드 노드를 검색하고 호스트 항목에 Keytab:True 가 포함되어 있는지 확인하여 등록에 성공했는지 테스트할 수 있습니다. 또한 오버클라우드 노드에 로그인하여 sssd 명령에서 IdM 사용자를 쿼리할 수 있는지 확인할 수 있습니다.

  1. IdM에서 오버클라우드 노드를 찾고 host 항목에 Keytab:True:

    $ ipa host-show overcloud-node-01
      Host name: overcloud-node-01.lab.local
      Principal name: host/overcloud-node-01.lab.local@LAB.LOCAL
      Principal alias: host/overcloud-node-01.lab.local@LAB.LOCAL
      SSH public key fingerprint: <snip>
      Password: False
      Keytab: True
      Managed by: overcloud-node-01.lab.local
  2. Overcloud 노드에 로그인하고 sssd 가 IdM 사용자를 쿼리할 수 있는지 확인합니다. 예를 들어 이름이 susan 인 IdM 사용자를 쿼리하려면 다음을 수행합니다.

    $ getent passwd susan
    uid=1108400007(susan) gid=1108400007(bob) groups=1108400007(susan)
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동