OpenStack은 오픈소스(open source) 클라우드 플랫폼 중 하나입니다. 이번 포스팅에서는 DevStack을 이용하여 OpenStack을 설치하는 방법에 대한 내용을 담고 있습니다.
DevStack 이용하여 OpenStack환경을 쉽게 구축할 수 있습니다.
DevStack 이란 무엇인가?
DevStack은 OpenStack 개발 환경을 구축할 수 있는 개발 툴입니다. 사용자가 필요한 환경을 스크립트로 만들어 두고 이를 이를 이용하여 OpenStack환경을 간편하게 구축할 수 있습니다. 하지만 DevStack을 이용한 방법은 서비스를 구성하는데 몇 가지 불편한 사항이 있지만, 복잡한 OpenStack 환경 구성을 자동으로 구축할 수 있기 때문에 OpenStack에 대한 지식이 부족한 사람도 쉽게 사용할 수 있습니다. 설치 순서는 다음과 같습니다.
- 사전 준비 사항
- stack 사용자 준비
- DevStack 다운로드
- DevStack 구동
- OpenStack 사용하기
OpenStack을 구성하기 위해서는 노드가 몇 개 준비 되어 있는지, 네트워크는 어떻게 구성되어있는지, 어떤 서비스를 제공해야하는지 등 변수가 아주 많습니다. 이 포스팅에서는 1개의 가상 머신에 최소한의 서비스만 필요하다고 가정하고 DevStack을 구성 합니다.
1. 사전 준비 사항
DevStack의 설치 환경은 OpenStack 버전에 따라 달라지게 됩니다. 이 포스팅을 하는 시점에서 OpenStack 최신 버전은 Liberty 버전입니다. 이 버전에서 공식적으로 지원하는 Linux 배포판은 다음과 같습니다.
OpenStack Liberty 에서 공식적으로 지원하는 리눅스 배포판
- openSUSE 13.2, SUSE Linux Enterprise Server 12
- RHEL(Red Hat Enterprise Linux) 7 또는 CentOS 7
- Ubuntu 14.04(LTS)
- Debian 8 (현재 불가능)
시작하기 앞서 저는 Virtualbox를 이용하여 가상머신을 생성하고, 가상 머신에 Ubuntu 14.04를 설치하였습니다. Virtualbox 대신 VMware같은 다른 하이퍼바이저를 사용하셔도 무방합니다. 가상 머신을 생성할 때 아래와 같이 자원을 할당 하였습니다.
- 프로세서 개수: 4
- 기본메모리: 4096 MB
- 디스크 크기: 20GB
가상 머신에 리눅스 설치가 완료 되면 가상 머신이 사용하는 IP를 확인합니다. 제가 만든 가상 머신은 10.0.2.15를 사용하고 있습니다. 이것은 ifconfig 명령을 통해 확인할 수 있습니다. 이 IP 는 아래에 4. DevStack 구동 부분에서 OpenStack 설치에 필요한 매개 변수 중 하나인 HOST_IP에 필요한 값입니다. 반드시 확인해야 합니다.
2. stack 사용자 준비
DevStack을 사용하기 위해 stack 이라는 사용자를 추가하고, 이 사용자가 sudo 명령을 사용할 수 있도록 설정을 바꿉니다.
stack 사용자 생성명령
sudo adduser stack
그 다음 stack이라는 사용자가 sudo를 사용할 수 있도록 /etc/sudoers에 추가해야 합니다. 이것은
sudo visudo
명령을 통해 아래 내용을 추가해 주면 됩니다.
stack ALL=(ALL) NOPASSWD: ALL
그 다음 아래 명령을 통해 stack 사용자로 로그인합니다.
sudo su stack
3. DevStack 다운로드
DevStack의 배포는 git 이라고 불리는 버전관리 시스템을 이용하고 있습니다. 이것은
sudo apt-get install git
명령을 통해 설치 합니다. 그 다음 아래 명령을 통해 DevStack을 다운 받습니다.
git clone https://git.openstack.org/openstack-dev/devstack
다운이 완료 되면 devstack 이라는 폴더가 생성 됩니다.
4. DevStack 구동
DevStack을 구동하기 위해서는 local.conf 파일을 생성해야합니다. 이 파일은 DevStack을 통해 OpenStack을 구성할 때 필요한 환경 변수를 담고 있습니다. 지금은 OpenStack을 설치해 보는것이 목적이기 때문에 devstack 폴더 안에 있는 local.conf 파일 최소한으로 수정하겠습니다.
이 예제 파일의 위치는 DevStack/sample안에 있습니다. 이 파일을 DevStack의 루트에 복사한 다음 진행 합니다.
sudo cp ./samples/local.conf ./
그 다음 방금 복사한 local.conf 파일을 수정해야 합니다. 수정될 내용은 local.conf 파일 내에 있 는 [[local|localrc]] 라는 문자열 아래에 위치해야 합니다. VI 같은 편집기를 이용하여 옆에 있는 그림과 같이 암호와 가상머신의 IP 주소를 입력하고 저장합니다. 그림에 있는 각각의 매개변수는 아래와 같이 세팅 되어야 합니다.
- ADMIN_PASSWORD: OpenStack 관리자의 암호를 입력. DevStack을 통해 생성되는 admin과 demo 사용자에 대한 암호도 동일하게 사용
- DATABASE_PASSWORD: OpenStack을 관리하는 데이터베이스의 로그인 암호로 데이터베이스에 직접 접근하기 위해서 사용
- RABBIT_PASSWORD: OpenStack을 구성하고 있는 컴포넌트 간에 메시지를 전달할 때 사용되는 RabbitMQ에 대한 접근 암호를 입력
- SERVICE_PASSWORD: OpenStack에서 제공하고 있는 서비스에 대해 접근할 수 있는 암호
- HOST_IP: OpenStack을 설치하는 가상 머신의 IP를 입력
그 다음 stack.sh 를 실행시킵니다. 만약 정상적으로 설지가 진행 된다면 앞에서 작성한 local.conf 파일에 따라 설치가 진행 됩니다. 처음 설치할 때는 시간이 조금 걸립니다. 저는 25분이 조금 넘게 걸렸습니다. 아래 내용을 읽어보면 Horizon 과 Keystone 이 등장합니다. 이 두 가지는 OpenStack 안에 포함 되 있는 컴포넌트 입니다.
- Horizon: Horizon 이라는 컴포넌트는 OpenStack에서 직접 관리하고 있는 dashboard 입니다. OpenStack의 서비스를 이용할 수 있는 웹 기반의 UI를 제공해 줍니다. OpenStack을 사용하는데 반드시 필요한 컴포넌트는 아니지만 기본적인 기능에 충실하도록 구현 되어 있습니다.
- Keystone: OpenStack에서 인증 서비스를 제공하는 필수적인 컴포넌트 입니다. 사용자 또는 서비스를 인증하기 위해 사용됩니다.
5. OpenStack 사용하기
이제 가상머신의 IP를 웹 브라우저를 통해 접속하면 아래와 같은 모습을 보실 수 있습니다. 왼쪽과 같은 화면은 Horizon 을 통해 보이는 화면 입니다. 사용자 이름 항목에 admin 또는 demo를 입력하고 local.conf 파일에 입력한 암호를 입력하면 로그인 할 수 있습니다.
지금 부터 할수 있는 일은 무엇인가?
지금까지 DevStack을 이용한 OpenStack의 설치가 완료 되었습니다. local.conf 에 설정한 기능을 테스트 해볼 수 있지만 DevStack을 이용한 OpenStack 설정 방법은 재 부팅하면 다시 DevStack을 실행해야 하기 때문에 클라우드 서비스를 목적으로 사용하기 보다는 OpenStack을 테스트 하는 용도로 사용하기 적합합니다.
참고 자료
- DevStack 공식 문서 - http://docs.openstack.org/developer/devstack/
- OpenStack 공식 문서 - http://docs.openstack.org/
'IT > OpenStack' 카테고리의 다른 글
TripleO를 이용한 OpenStack 배포 (Standalone) (2) | 2024.04.06 |
---|---|
Kolla를 이용한 OpenStack All-in-one 설치하기(1) (0) | 2022.12.07 |