4.2. Compute 서비스 내에서 셀 생성
새 셀 스택을 사용하여 오버클라우드를 배포한 후 Compute 서비스 내에 셀을 생성해야 합니다. Compute 서비스 내에서 셀을 생성하려면 글로벌 API 데이터베이스에 셀 및 메시지 큐 매핑에 대한 항목을 생성합니다. 참고: 만들고 시작하는 각 셀에 대해 이 프로세스를 반복해야 합니다. Ansible 플레이북의 단계를 자동화할 수 있습니다. Ansible 플레이북의 예는 OpenStack 커뮤니티 설명서 의 셀 생성 및 컴퓨팅 노드 검색 섹션을 참조하십시오. 커뮤니티 문서는 그대로 제공되며 공식적으로 지원되지 않습니다.
절차
컨트롤 플레인 및 셀 컨트롤러의 IP 주소를 가져옵니다.
$ CTRL_IP=$(ansible-inventory -i /home/stack/overcloud-deploy/overcloud/config-download/overcloud/tripleo-ansible-inventory.yaml --host <controller_node> | jq -r .ctlplane_ip) $ CELL_CTRL_IP=$(ansible-inventory -i /home/stack/overcloud-deploy/cell1/config-download/cell1/tripleo-ansible-inventory.yaml --host <cell_controller_node> | jq -r .ctlplane_ip)
-
&
lt;controller_node&
gt;를 컨트롤러 노드의 이름으로 바꿉니다(예:controller-0
). -
&
lt;cell_controller_node
>를 셀 컨트롤러 노드의 이름으로 바꿉니다(예:cell1-controller-0
).
-
&
모든 컨트롤러 노드에 셀 정보를 추가합니다. 이 정보는 언더클라우드의 셀 엔드포인트에 연결하는 데 사용됩니다. 다음 예제에서는 접두사
cell1
을 사용하여 셀 시스템만 지정하고 컨트롤러 시스템을 제외합니다.(undercloud)$ CELL_INTERNALAPI_INFO=$(ssh tripleo-admin@${CELL_CTRL_IP} \ egrep cell1.*\.internalapi /etc/hosts) (undercloud)$ ansible -i /home/stack/overcloud-deploy/overcloud/config-download/overcloud/tripleo-ansible-inventory.yaml \ Controller -b -m lineinfile -a "dest=/etc/hosts line=\"$CELL_INTERNALAPI_INFO\""
transport_url
매개변수에서 컨트롤러 셀의 메시지 큐 끝점과database.connection
매개변수에서 컨트롤러 셀에 대한 데이터베이스 연결을 가져옵니다.(undercloud)$ CELL_TRANSPORT_URL=$(ssh tripleo-admin@${CELL_CTRL_IP} \ sudo crudini --get /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf \ DEFAULT transport_url) (undercloud)$ CELL_MYSQL_VIP=$(ssh tripleo-admin@${CELL_CTRL_IP} \ sudo crudini --get /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf \ database connection | awk -F[@/] '{print $4}')
글로벌 컨트롤러 노드 중 하나에 로그인하고 셀을 생성합니다.
$ ssh tripleo-admin@${CTRL_IP} sudo podman \ exec -i -u root nova_api \ nova-manage cell_v2 create_cell --name cell1 \ --database_connection "{scheme}://{username}:{password}@$CELL_MYSQL_VIP/nova?{query}" \ --transport-url "$CELL_TRANSPORT_URL"
셀이 생성되고 셀 목록에 표시되는지 확인합니다.
$ ssh tripleo-admin@${CTRL_IP} sudo podman \ exec -i -u root nova_api \ nova-manage cell_v2 list_cells --verbose
컨트롤러 노드에서 컴퓨팅 서비스를 다시 시작합니다.
$ ansible -i /usr/bin/tripleo-ansible-inventory Controller -b -a \ "systemctl restart tripleo_nova_api tripleo_nova_conductor tripleo_nova_scheduler"
셀 컨트롤러 서비스가 프로비저닝되었는지 확인합니다.
(overcloud)$ openstack compute service list -c Binary -c Host -c Status -c State +----------------+-------------------------+---------+-------+ | Binary | Host | Status | State | +----------------+-------------------------+---------+-------+ | nova-conductor | controller-0.ostest | enabled | up | | nova-scheduler | controller-0.ostest | enabled | up | | nova-conductor | cellcontroller-0.ostest | enabled | up | | nova-compute | compute-0.ostest | enabled | up | | nova-compute | compute-1.ostest | enabled | up | +----------------+-------------------------+---------+-------+