3장. novajoin을 사용하여 IdM과 통합
novajoin을 사용하면 배포 프로세스의 일부로 Red Hat IdM(Identity Manager)에 노드를 등록할 수 있습니다. 결과적으로 ID, kerberos 자격 증명, 액세스 제어를 포함하여 IdM 기능을 OpenStack 배포와 통합할 수 있습니다.
novajoin을 통한 IdM 등록은 현재 언더클라우드 및 오버클라우드 노드에만 사용할 수 있습니다. 오버클라우드 인스턴스의 novajoin 통합은 이후 릴리스에서 지원될 예정입니다.
3.1. 언더클라우드에 novajoin 설치 및 설정 링크 복사링크가 클립보드에 복사되었습니다!
3.1.1. CA에 언더클라우드 추가 링크 복사링크가 클립보드에 복사되었습니다!
오버클라우드를 배포하기 전에 CA(인증 기관)에 언더클라우드를 추가해야 합니다.
언더클라우드 노드에서
python-novajoin패키지를 설치합니다.$ sudo yum install python-novajoin언더클라우드 노드에서
novajoin-ipa-setup스크립트를 실행하여 배포에 맞게 값을 조정합니다.$ sudo /usr/libexec/novajoin-ipa-setup \ --principal admin \ --password <IdM admin password> \ --server <IdM server hostname> \ --realm <overcloud cloud domain (in upper case)> \ --domain <overcloud cloud domain> \ --hostname <undercloud hostname> \ --precreate다음 섹션에서는 생성된 TTL(단시간 암호)을 사용하여 언더클라우드를 등록합니다.
3.1.2. IdM에 언더클라우드 추가 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 IdM에 언더클라우드를 등록하고 novajoin을 구성합니다. undercloud.conf ( [DEFAULT] 섹션에 있는)에서 다음 설정을 설정합니다.
novajoin 서비스는 기본적으로 비활성화되어 있습니다. 활성화하려면 다음을 수행합니다.
[DEFAULT] enable_novajoin = true언더클라우드 노드를 IdM에 등록하려면 One-Time Password(OTP)를 설정해야 합니다.
ipa_otp = <otp>neutron의 DHCP 서버에서 제공하는 오버클라우드의 도메인 이름이 IdM 도메인(대소문자의 kerberos 영역)과 일치하는지 확인합니다.
overcloud_domain_name = <domain>언더클라우드에 적절한 호스트 이름을 설정합니다.
undercloud_hostname = <undercloud FQDN>IdM을 언더클라우드의 네임서버로 설정합니다.
undercloud_nameservers = <IdM IP>대규모 환경의 경우 novajoin 연결 시간 초과 값을 검토해야 합니다.
undercloud.conf에서 이름이undercloud-timeout.yaml인 새 파일에 대한 참조를 추가합니다.hieradata_override = /home/stack/undercloud-timeout.yamlundercloud-timeout.yaml에 다음 옵션을 추가합니다. 시간 제한 값을 초 단위로 지정할 수 있습니다(예:5:nova::api::vendordata_dynamic_connect_timeout: <timeout value> nova::api::vendordata_dynamic_read_timeout: <timeout value>-
undercloud.conf파일을 저장합니다. 언더클라우드 배포 명령을 실행하여 기존 언더클라우드에 변경 사항을 적용합니다.
$ openstack undercloud install
검증
언더클라우드의
키항목의 키탭 파일을 확인합니다.[root@undercloud-0 ~]# klist -kt Keytab name: FILE:/etc/krb5.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 1 04/28/2020 12:22:06 host/undercloud-0.redhat.local@REDHAT.LOCAL 1 04/28/2020 12:22:06 host/undercloud-0.redhat.local@REDHAT.LOCAL [root@undercloud-0 ~]# klist -kt /etc/novajoin/krb5.keytab Keytab name: FILE:/etc/novajoin/krb5.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 1 04/28/2020 12:22:26 nova/undercloud-0.redhat.local@REDHAT.LOCAL 1 04/28/2020 12:22:26 nova/undercloud-0.redhat.local@REDHAT.LOCAL/etc/krb.keytab파일을 호스트 원칙으로 테스트합니다.[root@undercloud-0 ~]# kinit -k [root@undercloud-0 ~]# klist Ticket cache: KEYRING:persistent:0:0 Default principal: host/undercloud-0.redhat.local@REDHAT.LOCAL Valid starting Expires Service principal 05/04/2020 10:34:30 05/05/2020 10:34:30 krbtgt/REDHAT.LOCAL@REDHAT.LOCAL [root@undercloud-0 ~]# kdestroy Other credential caches present, use -A to destroy allnovajoin
/etc/novajoin/krb.keytab파일을 nova 원칙으로 테스트합니다.[root@undercloud-0 ~]# kinit -kt /etc/novajoin/krb5.keytab 'nova/undercloud-0.redhat.local@REDHAT.LOCAL' [root@undercloud-0 ~]# klist Ticket cache: KEYRING:persistent:0:0 Default principal: nova/undercloud-0.redhat.local@REDHAT.LOCAL Valid starting Expires Service principal 05/04/2020 10:39:14 05/05/2020 10:39:14 krbtgt/REDHAT.LOCAL@REDHAT.LOCAL