2.4. Ceph 클라이언트 인증 구성

Red Hat OpenStack Platform에 액세스하도록 Ceph 클라이언트에 대한 인증을 구성할 수 있습니다.

사전 요구 사항

  • Ceph Monitor 호스트에 대한 루트 수준 액세스.
  • 실행 중인 Red Hat Ceph Storage 클러스터.

절차

  1. Ceph Monitor 호스트에서 Cinder, Cinder Backup 및 Glance에 사용할 새 사용자를 만듭니다.

    [root@mon ~]# ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'
    
    [root@mon ~]# ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups'
    
    [root@mon ~]# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
  2. client.cinder , client.cinder -backupclient.glance 의 인증 키를 적절한 노드에 추가하고 소유권을 변경합니다.

    [root@mon ~]# ceph auth get-or-create client.cinder | ssh CINDER_VOLUME_NODE sudo tee /etc/ceph/ceph.client.cinder.keyring
    [root@mon ~]# ssh CINDER_VOLUME_NODE chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
    
    [root@mon ~]# ceph auth get-or-create client.cinder-backup | ssh CINDER_BACKUP_NODE tee /etc/ceph/ceph.client.cinder-backup.keyring
    [root@mon ~]# ssh CINDER_BACKUP_NODE chown cinder:cinder /etc/ceph/ceph.client.cinder-backup.keyring
    
    [root@mon ~]# ceph auth get-or-create client.glance | ssh GLANCE_API_NODE sudo tee /etc/ceph/ceph.client.glance.keyring
    [root@mon ~]# ssh GLANCE_API_NODE chown glance:glance /etc/ceph/ceph.client.glance.keyring
  3. OpenStack Nova 노드에는 nova-compute 프로세스의 키링 파일이 필요합니다.

    [root@mon ~]# ceph auth get-or-create client.cinder | ssh NOVA_NODE tee /etc/ceph/ceph.client.cinder.keyring
  4. OpenStack Nova 노드에서도 client.cinder 사용자의 시크릿 키를 libvirt 에 저장해야 합니다. Cinder에서 블록 장치를 연결하는 동안 libvirt 프로세스에 클러스터에 액세스하려면 시크릿 키가 필요합니다. OpenStack Nova 노드에 시크릿 키의 임시 사본을 만듭니다.

    [root@mon ~]# ceph auth get-key client.cinder | ssh NOVA_NODE tee client.cinder.key

    스토리지 클러스터에 전용 잠금 기능을 사용하는 Ceph 블록 장치 이미지가 포함된 경우 모든 Ceph 블록 장치 사용자에게 클라이언트를 차단할 수 있는 권한이 있는지 확인합니다.

    [root@mon ~]# ceph auth caps client.ID mon 'allow r, allow command "osd blacklist"' osd 'EXISTING_OSD_USER_CAPS'
  5. OpenStack Nova 호스트로 돌아갑니다.

    [root@mon ~]# ssh NOVA_NODE
  6. 시크릿의 UUID를 생성하고 나중에 nova-compute 를 구성하기 위해 시크릿의 UUID를 저장합니다.

    [root@nova ~]# uuidgen > uuid-secret.txt
    참고

    모든 Nova 컴퓨팅 노드에 UUID가 필요하지는 않습니다. 그러나 플랫폼 일관성 관점에서 동일한 UUID를 유지하는 것이 좋습니다.

  7. OpenStack Nova 노드에서 libvirt 에 시크릿 키를 추가하고 키의 임시 사본을 제거합니다.

    cat > secret.xml <<EOF
    <secret ephemeral='no' private='no'>
      <uuid>`cat uuid-secret.txt`</uuid>
      <usage type='ceph'>
        <name>client.cinder secret</name>
      </usage>
    </secret>
    EOF
  8. libvirt 시크릿을 설정하고 정의합니다.

    [root@nova ~]# virsh secret-define --file secret.xml
    [root@nova ~]# virsh secret-set-value --secret $(cat uuid-secret.txt) --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml

추가 리소스