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 |