본문 바로가기

Cloud/Openstack

OpenStack - Train 버전 설치(PackStack.Ver)

1. 프로젝트 개요

1.1 설치환경 구성표

Linux 버전 CentOS Linux 7 (Core)
Linux 3.10.0-1062.el7.x86_64
IP 192.168.214.120
DNS 192.168.10.1
CPU Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
RAM 32 GB
HDD 500 GB

 


2. 용어 설명

 

2.1 Openstack 이란?

OpenStack은 풀링된 가상 리소스를 사용해 프라이빗 및 퍼블릭 클라우드를 구축하고 관리하는 오픈소스 툴(또는 프로젝트)의 조합이다. 이러한 6개의 프로젝트가 컴퓨팅, 네트워킹, 스토리지, Identity, 이미지 서비스와 같은 핵심 클라우드 컴퓨팅 서비스를 처리하며 수십 개 이상의 옵션 프로젝트를 함께 묶어 고유하고 배포 가능한 클라우드를 생성할 수 있다.

 

즉, 클라우드 컴퓨팅 플랫폼을 개발하고 관리할 수 있는 오픈 소스 소프트웨어 기반의 클라우드 운영체제이다.

 

•개발 언어 : 파이썬

•버전 : Kilo(2015.01), Juno(2014.02), Icehouse(2014.01) ... ...

•지원하는 하이퍼바이저 : KVM, QEMU, VMware ESX/ESXi, Hyper-V, Xen등 다양한 하이퍼바이저를 지원한다.

2.2 Openstack 구성요소

Nova •가상 서버(인스턴스)를 생성하고 관리하기 위한 서비스
•오픈스택에서 가장 중요한 서비스
Cinder •블록 스토리지를 관리하기 위한 서비스
Swift •오브젝트 스토리지를 구축 및 관리하기 위한 서비스
•오픈스택과 달리 단독으로 구성
블록 스토리지
인스턴스에게 저장 공간(외장 하드)을 할당해주는 스토리지
현재 인스턴스에 연결된 하드디스크를 연결 해제한 후 다른 인스턴스에게
연결하여 사용 가능


오브젝트 스토리지
각 사용자들에게 저장 공간을 할당해주는 스토리지
Glance •가상 머신 이미지를 등록 및 관리하기 위한 서비스
•지원하는 이미지 :
Cirros, Ubuntu, CentOS, Fedora, Windows Server, Windows Client
Keystone •오픈스택의 인증 서비스
•인증 토큰, 사용자 관리 등
Neutron •네트워크를 관리하기 위한 서비스
•오픈스택의 네트워크는 Nova Network와 Neutron 네트워크가 있는데 Neutr
on 네트워크를 이용할 경우 VLAN 및 다양한 네트워크 설정이 가능하다.
•Neutron을 이용할 경우 컨트롤러 노드, 네트워크 노드, 컴퓨트 노드(권장)
3개의 서버가 필요
대시보드 Horizon •관리자 또는 사용자가 웹 UI를 통해 인스턴스 생성, 삭제, 관리 등을 할 수 있는 환경을 제공하는 서비스

 

2.3 Packstack 이란?

Redhat 계열의 Openstack 자동화 설치 툴이다

 

 

2.4 Openstack 버전 종류(2020-07-08기준)

- Packstack을 이용해 아래 버전중 'Train'버전을 설치 할 예정이다.

Module Version OpenStack Version Codename Community Supported
2.y.z Grizzly no - EOL (2014-03-29)
3.y.z Havana no - EOL (2014-09-30)
4.y.z Icehouse no - EOL (2015-07-02)
5.z.y Juno no - EOL (2015-12-07)
6.z.y Kilo no - EOL (2016-05-02)
7.z.y Liberty no - EOL (2016-11-17)
8.z.y Mitaka no - EOL (2017-04-10)
9.z.y Newton no - EOL (2017-10-11)
10.z.y Ocata yes - EOL (2017-02-26)
11.z.y Pike yes - EOL (2017-08-30)
12.z.y Queens yes - EOL (2018-02-28)
13.z.y Rocky yes - EOL (2018-08-30)
14.z.y Stein yes - EOL (2019-04-10)
15.z.y Train yes
16.z.y Ussuri yes (current master)
17.z.y Victoria yes (current master)

 

 

2.5 Fixed Ip Range & Floating Ip Range 란?

 

Fixed IP Range

Virtual Instance를 생성할 때 할당해 주는 사설 IP 범위. 이 IP는 호스트 내부에서만 통신이 가능하다.

 

Floating IP Range

Virtual Instance를 외부에서 접속할 수 있도록 할당해 주는 공인 IP 범위.


3. Openstack 설치

 

3.1 Ip 설정

- ifcfg-뒤에 이름은 다를 수 있다.

- static으로 고정을 안해주면 중간에 Ip가 바뀌어 서비스가 원할 하지 않을 수 있다.

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-네트워크 인터페이스명

 

[root@localhost ~]# systemctl restart network && ip a

 

…
BOOTPROTO=static
IPADDR=192.168.214.120
NETMASK=255.255.255.0
GATEWAY=192.168.214.1
DNS1=192.168.10.1
…

 

…
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:51:a1:c9 brd ff:ff:ff:ff:ff:ff
inet 192.168.214.120/24 brd 192.168.214.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe51:a1c9/64 scope link
valid_lft forever preferred_lft forever
…

 

3.2 Firewall, NetworkManager 중지 및 비활성화

- Openstack은 자제적으로 방화벽이 있으므로 기존 방화벽은 중지시킨다.

[root@localhost ~]# systemctl stop firewalld NetworkManager​

 

[root@localhost ~]# systemctl disable firewalld NetworkManager​

 

[root@localhost ~]# vi /etc/selinux/config
1
2 # This file controls the state of SELinux on the system.
3 # SELINUX= can take one of these three values:
4 # enforcing - SELinux security policy is enforced.
5 # permissive - SELinux prints warnings instead of enforcing.
6 # disabled - No SELinux policy is loaded.
7 SELINUX=disabled
8 # SELINUXTYPE= can take one of three values:
9 # targeted - Targeted processes are protected,
10 # minimum - Modification of targeted policy. Only selected processes are potected.
11 # mls - Multi Level Security protection.
12 SELINUXTYPE=targeted
13
14
:wq

- SELINUX 설정파일을 열어서 SELINUX를 disabled 해준다.(되어있으면 패스)3.3 SELinux 해제

 

 

3.4 Openstack 저장소 추가 및 Packstack 설치

 

[root@localhost ~]# yum –y install centos-release-openstack-train​

 

[root@localhost ~]# reboot

(희한하게 repository를 설치하고 reboot을 안하면 마지막에 packstack으로 설치 할때 mariaDB table설정부분에서 계속 오류가 납니다.... 이유는 아직 모르겠습니다..)

 

 

[root@localhost ~]# yum –y update --exclude=kernel*​

 

[root@localhost ~]# yum –y install openstack-packstack

- answer 파일은 환경설정 파일이다. (파일명은 다르게 설정해도 가능)
3.5 answer 파일 생성 및 편집

[root@localhost ~]# packstack --gen-answer-file answer.txt


- 왼쪽에 있는 라인으로 가서 값을 변경 해준 후 파일을 저장 종료시킨다.

[root@localhost ~]# vi answer.txt
…
※오케스트레이션 서비스 Heat(템플릿 기반의 엔진)
60 CONFIG_HEAT_INSTALL=y
…
79 CONFIG_NTP_SERVERS=kr.pool.ntp.org
…
※관리자(admin) 비번 설정
326 CONFIG_KEYSTONE_ADMIN_PW=(원하는 패스워드)
…
※클라우드서버의 총 용량 입력(Default 20G)
557 CONFIG_CINDER_VOLUMES_SIZE=100G
…
※neutron.ml2.type_drivers 로 사용할 드라이버 지정
795 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vlan,flat
…
※Tenant network(subnet Network)로 사용할 network type을 지정
801 CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vlan
…
※neutron.ml2.mechanism_drivers 로 로딩할 메커니즘 드라이버 지정
808 CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
…
※테넌트 네트워크로 제공할 물리 네트워크의 이름과 VLAN tag 범위를 입력합니다.
819 CONFIG_NEUTRON_ML2_VLAN_RANGES=extnet:1:1000
…
※OpenStack Networking으로 사용할 L2 agent지정
840 CONFIG_NEUTRON_L2_AGENT=openvswitch
…
br-ex:뒤에 적는 것은 네트워크 인터페이스 네임이다. 예)br-ex:ethX or enpXXX or ensXXX
869 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens33
…
1108 CONFIG_HORIZON_SSL=y
…
※Provisioning 테스트를 위한 demo 설치 여부
1181 CONFIG_PROVISION_DEMO=n
…

- 명령어 'ip a'를 했을때 2번째가 현재 서버의 네트워크 인터페이스 이름이다.

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
…
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:51:a1:c9 brd ff:ff:ff:ff:ff:ff
inet 192.168.214.120/24 brd 192.168.214.255 scope global ens33
…​

 

3.6 answer 파일 적용 및 Openstack 설치

- 출력 된 밑에 주소로 접속을 하면 아래와 같이 홈페이지에 접속이 되는 것을 확인 할 수 있다.

[root@localhost ~]# packstack --answer-file answer.txt
Welcome to the Packstack setup utility


The installation log file is available at: /var/tmp/packstack/20200709-101617-DFPyNb/openstack-setup.log


Installing:
Clean Up [ DONE ]
Discovering ip protocol version [ DONE ]
…
Copying Puppet modules and manifests [ DONE ]
Applying 192.168.214.120_controller.pp
192.168.214.120_controller.pp: [ DONE ]
Applying 192.168.214.120_network.pp
192.168.214.120_network.pp: [ DONE ]
Applying 192.168.214.120_compute.pp
192.168.214.120_compute.pp: [ DONE ]
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]


**** Installation completed successfully ******


Additional information:
…
configured in /etc/httpd/conf.d/ssl.conf on 192.168.214.120 to use a CA signed cert.
* To access the OpenStack Dashboard browse to https://192.168.214.120/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
…

'Cloud > Openstack' 카테고리의 다른 글

Openstack Instance VNC URL 접속법  (0) 2021.06.09
[heat] YAML파일 Example  (0) 2021.05.21
Openstack - cinder 크기 확장  (0) 2021.05.17
[CLI] OpenStack 인스턴스 생성 하기  (0) 2021.05.17
OpenStack 환경설정 파일  (0) 2021.05.17