Installing OpenStack using PackStack on CentOS 9

OpenStack Dalmatian 릴리즈를 CentOS Stream 9 환경에서 단일 노드에 PackStack으로 설치하는 방법입니다.

 

Packstack

Packstack은 Red Hat OpenStack을 설치하고 구성하기 위한 자동화된 배포 도구입니다. Red Hat 계열 운영체제에서 동작하도록 설계되었으며, 단일 명령어로 전체 OpenStack 환경을 구성할 수 있는 장점이 있습니다
Packstack은 내부적으로 Puppet이라는 시스템 자동화 솔루션을 활용합니다. Packstack을 사용하면 Puppet 모듈을 직접 작성할 필요 없이 설치 과정에서 필요한 모듈들이 자동으로 다운로드되고 적용됩니다. 또한 각 OpenStack 구성 요소들 간의 복잡한 의존성도 자동으로 처리해줍니다.
Packstack은 주로 테스트나 개발 환경, 또는 소규모 프로덕션 환경을 구축하는 데 사용되고, 단일 노드뿐만 아니라 다중 노드 환경 구성도 모두 지원합니다.

 

Prerequisites

OpenStack을 설치하기 전에 몇 가지 시스템 설정이 필요합니다. 먼저, 호스트의 FQDN(Fully Qualified Domain Name)을 설정합니다.

[root@packstack ~]# sudo hostnamectl set-hostname packstack.adder.pe.kr

 

다음으로, 가상머신의 가상화 지원 여부를 확인합니다. CPU flags에 VMX(Intel) 또는 SVM(AMD)이 포함되어 있다면 가상화를 지원한다는 의미입니다.

[root@packstack ~]# egrep '(vmx|svm)' /proc/cpuinfo

 

설치 과정에서 문제를 방지하기 위해 방화벽과 SELinux를 permissive 모드로 변경합니다.

[root@packstack ~]# systemctl disable firewalld --now
[root@packstack ~]# setenforce 0

 

OpenStack의 네트워크 구성을 위해 NetworkManager를 비활성화하고, 기본 network 서비스를 활성화 합니다.

# NetworkManager 비활성화
[root@packstack ~]# systemctl disable NetworkManager --now

# network 서비스 활성화
[root@packstack ~]# systemctl enable network --now
[root@packstack ~]# systemctl start network

 

Installation

Packstack을 사용하기 위해 필요한 패키지를 설치하고 시스템을 최신 상태로 업데이트합니다.

[root@packstack ~]# dnf config-manager --enable crb
[root@packstack ~]# dnf install -y centos-release-openstack-dalmatian
[root@packstack ~]# dnf update -y

 

그 다음 Packstack을 설치합니다.

[root@packstack ~]# dnf install -y openstack-packstack

 

Packstack을 이용한 설치는 answer 파일을 생성하고 이를 이용해 진행합니다. answer 파일에는 설치에 필요한 모든 설정이 포함됩니다

[root@packstack ~]# packstack --gen-answer-file=/root/answerfile.txt

 

answer 파일이 생성되면 필요한 설정을 검토하고 수정할 수 있습니다. 기본 설정으로도 설치가 가능하지만, 필요에 따라 네트워크 설정이나 서비스 구성을 변경할 수 있습니다. 수정된 answer 파일을 이용해 최종적으로 OpenStack 설치를 진행합니다. 설치 과정은 시스템 사양에 따라서 다르겠지만 30분에서 1시간 정도 소요될 수 있습니다. 설치가 완료되면 기본적인 OpenStack 환경이 구성됩니다.

[root@packstack ~]# packstack --answer-file=/root/answerfile.txt

 

Troubleshooting

설치 과정에서 문제가 발생한 경우, 로그를 확인하고 문제가 되는 부분을 해결하고 다시 설치를 진행해야 합니다. 설치 로그는 /var/tmp/packstack 디렉토리에서 확인할 수 있습니다. 가장 최근 설치의 상세 로그는 다음 경로에서 확인 가능합니다.

[root@packstack ~]# tail -f /var/tmp/packstack/latest/openstack-setup.log

 

문제가 되는 부분을 해결하고 다시 설치할 경우에는 기존 오픈스택 패키지를 제거하고 다시 설치를 진행합니다.

[root@packstack ~]# dnf remove -y openstack-*
[root@packstack ~]# dnf install -y openstack-packstack
[root@packstack ~]# packstack --answer-file=/root/answerfile.txt

 

After Installation

설치가 성공적으로 완료되면 다음과 같은 방법으로 서비스를 확인할 수 있습니다.

1. CLI를 통한 확인

오픈스택 명령어를 사용하기 위해 설치 완료 시에 생성된 관리자 인증 파일을 읽어들입니다.

[root@packstack ~]# source keystonerc_admin

 

아래의 명령어를 통해 오픈스택 사용자 목록, 서비스 목록, 앤드포인트 목록을 확인합니다.

# 사용자 목록 확인
[root@packstack ~(keystone_admin)]# openstack user list
+----------------------------------+------------+
| ID                               | Name       |
+----------------------------------+------------+
| bb152604cc4c407db38d02f86d41bb9a | admin      |
| e141d4927b5440ab9eae748ec3f4406e | demo       |
| bd64ba166fcb46c58799ae2fdb5b47b4 | glance     |
| bb903da049e345d0840a9fd3b1e9ae06 | cinder     |
| e36bab011e864213a1675f467d5b054c | nova       |
| 28c0ed6e0f054a6a830d7d10d38a468b | placement  |
| 67705291d3c2488981c2d380f08e474b | neutron    |
| 52ae2030d47443cd9798d6a1e5d9dd11 | swift      |
| 2e60294f97834b9c98a6e65b7c2d3215 | gnocchi    |
| 7ec0730696384131923fbb374783aeb2 | ceilometer |
| 2743b582eecf4713a65046ffe146c41e | aodh       |
+----------------------------------+------------+

# 서비스 목록 확인
[root@packstack ~(keystone_admin)]# openstack service list
+----------------------------------+-----------+--------------+
| ID                               | Name      | Type         |
+----------------------------------+-----------+--------------+
| 3ad000d7868240dc86b8909eff0a5d9e | aodh      | alarming     |
| 3df52844ff794d1b83927d69fc06d13f | placement | placement    |
| 442f4d415fe4487dadcad1e7d3296775 | glance    | image        |
| 585d6a84c17c45e9b3f9badade3bd256 | swift     | object-store |
| 6577c48dc5364c0db3016cc7565f7576 | cinderv3  | volumev3     |
| 8be4dba5fcec445d957b954c6feddaba | nova      | compute      |
| ac3470135f8547fdb82061c28450d08c | neutron   | network      |
| c0d2f234f44a479dac09ab5322e3fa7f | gnocchi   | metric       |
| e62bb15a34d845cea5e6cfb057200cb1 | keystone  | identity     |
+----------------------------------+-----------+--------------+

# 엔드포인트 목록 확인
[root@packstack ~(keystone_admin)]# openstack endpoint list
+----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                            |
+----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------------+
| 020cd974899e4635a7c9dc586a95c9e9 | RegionOne | placement    | placement    | True    | public    | http://192.168.0.43:8778                       |
| 08e436ce59e842f2816a1e8461bb60e3 | RegionOne | keystone     | identity     | True    | admin     | http://192.168.0.43:5000                       |
| 0b241e920b5b47009e3a9d87a895f961 | RegionOne | aodh         | alarming     | True    | public    | http://192.168.0.43:8042                       |
| 234a406420204ed883687c725c2752b4 | RegionOne | neutron      | network      | True    | public    | http://192.168.0.43:9696                       |
| 25751c753c99428f9633ccbc7cd48799 | RegionOne | cinderv3     | volumev3     | True    | public    | http://192.168.0.43:8776/v3                    |
| 285b8a055e6e43a19b15da5aa795f1a2 | RegionOne | aodh         | alarming     | True    | internal  | http://192.168.0.43:8042                       |
| 28ad5ec75316492fa621066296c1671a | RegionOne | swift        | object-store | True    | public    | http://192.168.0.43:8080/v1/AUTH_%(tenant_id)s |
| 31276a1ec0a24880a8794c7c85a5907c | RegionOne | glance       | image        | True    | admin     | http://192.168.0.43:9292                       |
| 388fcb2459d1427b94f23a1c0e78c085 | RegionOne | glance       | image        | True    | public    | http://192.168.0.43:9292                       |
| 56e84f993ea74f0b982547904b4214aa | RegionOne | nova         | compute      | True    | admin     | http://192.168.0.43:8774/v2.1                  |
| 6a27534714564177abb2de99d2b2192f | RegionOne | cinderv3     | volumev3     | True    | admin     | http://192.168.0.43:8776/v3                    |
| 6ab1cebec10f4bed9f29f3f0dca69f47 | RegionOne | placement    | placement    | True    | internal  | http://192.168.0.43:8778                       |
| 725023f4570c4cfa943e8e4cd8297a16 | RegionOne | neutron      | network      | True    | admin     | http://192.168.0.43:9696                       |
| 72f72060a57d45cf88af9a766ca7080d | RegionOne | keystone     | identity     | True    | public    | http://192.168.0.43:5000                       |
| 78e0f641ff5c41ddafbbfe20b83b48fc | RegionOne | cinderv3     | volumev3     | True    | internal  | http://192.168.0.43:8776/v3                    |
| 7e5e4b9e870f4698a6ac6fca8ff48b80 | RegionOne | aodh         | alarming     | True    | admin     | http://192.168.0.43:8042                       |
| 9ad416931d9d43ee8cbba387115bec70 | RegionOne | swift        | object-store | True    | internal  | http://192.168.0.43:8080/v1/AUTH_%(tenant_id)s |
| 9b979ccd70884834b4e4f5a8748e4646 | RegionOne | glance       | image        | True    | internal  | http://192.168.0.43:9292                       |
| 9e2b0e37ecae43c18f3e337c0ab1a9d9 | RegionOne | keystone     | identity     | True    | internal  | http://192.168.0.43:5000                       |
| a5301aa6c0a74659a555014e7763f470 | RegionOne | gnocchi      | metric       | True    | internal  | http://192.168.0.43:8041                       |
| b0a9304b437249aca27d11099d79f889 | RegionOne | gnocchi      | metric       | True    | admin     | http://192.168.0.43:8041                       |
| b5ea1814b4994aaa90fb0e361a70f928 | RegionOne | swift        | object-store | True    | admin     | http://192.168.0.43:8080/v1/AUTH_%(tenant_id)s |
| be1dfa7b4cd04f96b5ea130e97a11c39 | RegionOne | neutron      | network      | True    | internal  | http://192.168.0.43:9696                       |
| c9e652b16a674899a21fbffb4affe152 | RegionOne | nova         | compute      | True    | internal  | http://192.168.0.43:8774/v2.1                  |
| d14427ccf9804aa1b9ffa1050c5d81a0 | RegionOne | placement    | placement    | True    | admin     | http://192.168.0.43:8778                       |
| efc67098ca3f450ab5ac17b7a2b67048 | RegionOne | gnocchi      | metric       | True    | public    | http://192.168.0.43:8041                       |
| ff7f1e1893a345118070ab970132278e | RegionOne | nova         | compute      | True    | public    | http://192.168.0.43:8774/v2.1                  |
+----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------------+

 

2. 대시보드 접속

  • 웹 브라우저에서 대시보드에 접속합니다. (예: http://192.168.0.42/dashboard)
  • 인증 정보는 /root/keystonerc_admin에서 확인할 수 있습니다.

오픈스택 대시보드

 

 

  • 대시보드에 접속하고 사용자, 암호 정보를 입력하면 아래의 화면과 같이 설치된 서비스들을 확인할 수 있습니다.

로그인 후 화면

 

참고 자료

https://www.rdoproject.org/deploy/packstack/

 

Packstack - An OpenStack distribution

Packstack: Create a proof of concept cloud Packstack is an OpenStack deployment tool intended to install Proof of Concept small environments in a quick and easy way using the RDO distribution on a CentOS Stream hosts. Production features such as High Avail

www.rdoproject.org