공개 SW 솔루션설치 & 활용가이드 미들웨어 > 클라우드서비스 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide
CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리
- 3-1. 개요 소개 주요기능 OpenStack 은 IaaS 형태의클라우드컴퓨팅공개 SW 프로젝트 2010 년 NASA 와 Rackspace 의공동프로젝트로시작되었고현재는 Openstack 재단에서운영 클라우드환경에서컴퓨팅자원과스토리지인프라를셋업하고구동하기위해사용하는공개 SW 프로젝트의집합으로 Openstack 은열린설계와개발지향 서버, 스토리지, 네트워크들과같은자원들을모두모아, 이들을제어하고운영하기위한클라우드 Operating System 공개 SW 기반으로클라우드를구축하고운용하고자하는개발자, 회사, 사용자들이주축이되어발전하는커뮤니티 laas 형태의클라우드컴퓨팅공개 SW 프로젝트로컴퓨팅, 스토리지, 네트워킹자원을관리하는여러개의하위프로젝트로구성 대분류 미들웨어소분류 클라우드서비스 라이선스형태 Apache License 2.0 사전설치솔루션 rdo-release-ocata-3.noarch 운영제제 Cross-platform 버전 Ocata (2017.02.22) 특징 보안취약점 public 클라우드와 private 클라우드구축을가능하게하는공개소프트웨어 Openstack 은현재많은회사와개인개발자들이참여 / 기여하고있는프로젝트이기때문에지속적으로업데이트가되고있고앞으로도발전가능성이큼 취약점 ID : CVE-2017-7200 심각도 : 5.8 MEDIUM(V3) 취약점설명 : Glance 가제공한 Image Service API v1 의 'copy_from' 기능을사용하면공격자가마스크된네트워크포트스캔을수행 대응방안 : Glance Image Service API 의버전 1 은 Newton 주기에서사용되지않으므로운영자는버전 2 를사용할수있도록최신버전으로업그레이드 참고경로 : https://wiki.openstack.org/wiki/ossn/ossn-0078 개발회사 / 커뮤니티 OpenStack Community 공식홈페이지 openstack.org
- 4-2. 기능요약 주요기능 지원여부 openstack 은다양한 hypervisor (ESXi, Hyper-V, KVM, Xen 등 ) 들을지원하기때문에 openstack 을사용해서여러다른종류의하이퍼바이저가설치된호스트들을연결 / 관리 할수있는시스템을제작할수있다. 지원 서버, 스토리지, 네트워크들과같은자원들을모두모아, 이들을제어하고운영하기위한클라우드운영시스템이다. 오픈소스를기반으로클라우드를구축하고운용하고자하는오픈소스개발자, 회사, 사용자들이주축이되어발전하는커뮤니티이다. 지원 지원 laas 형태의클라우드컴퓨팅오픈소스프로젝트로컴퓨팅, 스토리지, 네트워킹자원을 관리하는여러개의하위프로젝트들로이루어져있다. 지원 public 클라우드와 private 클라우드구축을가능하게하는오픈소스소프트웨어이다. 지원
- 5-3. 실행환경 1. OS CentOS Linux release 7.3.1611 (Core) 환경 2. 사전설치솔루션 git yum-utils 3. openstack package devstack
- 6-4. 설치및실행 세부목차 4.1 System update and install yum utils 4.2 Add user 4.3 Log in stack user and download devstack 4.4 Setting local.conf 4.5 Install devstack 4.6 Log in root and stop firewalld 4.7 Connect openstack
- 7-4. 설치및실행 4.1 System update and install yum utils Update the current packages -> yum y update Install yum utils -> yum install y git yum-utils
- 8-4. 설치및실행 4.3 Log in stack user and download devstack stack 사용자로로그인하여 openstack 의 devstack 을다운로드한다. -> su stack -> git clone https://git.openstack.org/openstack-dev/devstack
- 9-4. 설치및실행 4.4 Setting local.conf devstack 을다운로드하면 devstack directory 가생성되고, 해당 directory 로이동하여 local.conf 파일의설정을변경한다. -> cd./devstack/ -> cp R samples/local.conf local.conf -> vi local.conf 사용자가원하는 password 주석제거후, 사용자 IP 입력
- 10-4. 설치및실행 4.5 Install devstack Install devstack ( 약 20-30 분정도소요 ) ->./stack.sh test1234 설치완료화면
- 11-4. 설치및실행 4.6 Log in root and stop firewalld root 로재로그인하여방화벽종료 -> exit -> systemctl stop firewalld
- 12-4. 설치및실행 4.7 Connect openstack(1/2) openstack 접속 -> http://( 본인 IP)/ User Name : admin Password : 사용자가지정한 pw
- 13-4. 설치및실행 4.7 Connect openstack(2/2) 성공적으로로그인이되면아래와같은화면을확인할수있다.
- 14-4. 설치및실행 4.6 Copy directory and change ownership eventhandlers director 를 /usr/local/nagios/libexec/ directory 에복사 - cp -rvf contrib/eventhandlers/ /usr/local/nagios/libexec/ 복사한 eventhandler directory 의소유권변경 - chown R Nagios:Nagios /usr/local/nagios/libexec/eventhandlers
- 15-4. 설치및실행 4.7 Reset nagiosadmin password Nagios Dashboard에로그인할때, 사용할 password 입력 - ID : nagiosadmin - PW : 사용자지정 - htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
- 16-4. 설치및실행 4.8 Start httpd and Nagios server httpd 및 nagios 서비스시작 ( 기본적으로웹서버가올라와있어야함 ) - Systemctl start httpd.service - Systemctl enable Nagios.service - Systemctl start Nagios.service - Systemctl status httpd.service -> (Atcive : active (running) 상태면서비스시작이성공이다.) - Systemctl status Nagios.service -> (Atcive : active (running) 상태면서비스시작이성공이다.)
- 17-4. 설치및실행 4.9 Open HTTP port for Nagios Dashboard access Nagios dashboar 를접근하기위한 http port 열기 - firewall-cmd --zone=public --add-port=80/tcp --permanent - firewall-cmd --reload
- 18 - < 성공화면 > 4. 설치및실행 4.10 Access the Nagios Dashboard(1/2) 서버의 IP 주소를사용하여 Nagios dashboard에접근 - http://192.168.248.101(server IP address)/nagios HTTP authentication Required Box 생성 - Username : nagiosadmin - Password : 사용자가지정한 password
- 19 - < 성공화면 > 4. 설치및실행 4.10 Access the Nagios Dashboard(2/2) 왼쪽사이드바에서 Services 링크를클릭하면 Nagios dashboard 에서서비스내역을확인 Plugin 을설치하지않으면 critical 로되어다음과같이경고표시가뜨기때문에반드시설치
- 20-4. 설치및실행 4.11 Download Nagios plugin http:// www.nagios-plugins.org 에서 Nagios plugin 을다운로드 - 현재최신 package 는 nagios-plugins-2.0.3 이다. - wget http://www.nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
- 21-4. 설치및실행 4.12 Untar the Downloaded Nagios plugin 다운로드한 Nagios plugin 을압축해제 - tar zxvf nagios-plugins-2.2.1.tar.gz
- 22-4. 설치및실행 4.13 Compiling Nagios plugin Nagios 소스코드를컴파일 - cd Nagios-plugins-2.2.1 -./configure with-command-user=nagios --with-command-group=nagcmd (configure는소스파일에대한환경설정을해주는명령어이다. 서버환경에맞춰 makefile을생성해주는과정이다.) - make all (make는소스를컴파일하는명령어이다.) - make install (make를통해만들어진설치파일을설치하는명령어이다.)
- 23-4. 설치및실행 4.14 Open HTTP port for Nagios Dashboard access plugin 설치이후재접속시몇분후에 Status 가 OK 로변경된것을확인 - plugin 반영은수분정도소요될수있다.
- 24-5. 기능소개 세부목차 5.1 주요기능소개 - 5.1.1 barbican(key Manager service) - 5.1.2 cinder(block Storage service) - 5.1.3 congress(governance service) - 5.1.4 glance(image service) - 5.1.5 horizon(dashboard) - 5.1.6 keystone(identity service) - 5.1.7 mistral(workflow service) - 5.1.8 Murano(Application Catalog service) - 5.1.9 neutron(networking service) - 5.1.10 nova(compute service) - 5.1.11 Octavia(Load-balancer service) - 5.1.12 sahara(data Processing service) - 5.1.13 searchlight(search service) - 5.1.14 senlin(clustering service) - 5.1.15 solum(software Development Lifecycle Automation service) - 5.1.16 trove(database service) - 5.1.17 watcher(infrastructure Optimization service) - 5.1.18 zaqar(messaging service)
- 25-5. 기능소개 5.1 주요기능소개 (1/11) 5.1.1 barbican(key Manager service) code-name barbican은 OpenStack의기본 secret storage service이다. service는 secure storage, provisioning 및 secret 관리와관련된기능을제공한다. * Access Control * Barbican Service Management Utility * Key Manager Service Upgrade Guide 5.1.2 cinder(block Storage service) OpenStack Block Storage service는 host machine에상주하는 cinder-* 라는일련의 daemon process의상호작용을통해동작한다. 단일 node에서실행하거나여러 node에분산하여실행할수있다. 같은 node에서다른 OpenStack service로실행할수있다. OpenStack Compute instance에 block-level storage를추가할수있으며, 이는 Amazon EC2 Elastic Block Starage(EBS) 와유사하다.
- 26-5. 기능소개 5.1 주요기능소개 (2/11) 5.1.3 congress(governance service) Congress 는 cloud 를위한공개정책 framework 이다. Congress 를통해, cloud 운영자는이기종 cloud 환경에서정책을정의하거나, 모니터링, 감사등을할수있다. 5.1.4 glance(image service) image 를추가할때유용한기능들을제공하는 service 이다.
- 27-5. 기능소개 5.1 주요기능소개 (3/11) 5.1.5 horizon(dashboard) OpenStack 대시보드는 OpenStack 리소스및 service 를관리할수있는 web-based interface 이다. 대시보드는 OpenStack APIs 을사용하여 OpenStack Compute Cloud controller 와상호작용할수있다.
- 28-5. 기능소개 5.1 주요기능소개 (4/11) 5.1.6 keystone(identity service) code-name keystone은 OpenStack에대한기본 Identity 관리시스템이다. * Authentication/Credentials/Domain/Endpoint/Group/OpenStackClient/Project/Region/Role/Service/Token/User에대한 Identity를관리한다.
- 29-5. 기능소개 5.1 주요기능소개 (5/11) 5.1.7 mistral(workflow service) Mistral은 workflow service로, 다음과같은작업들을지원한다. * Task scheduling Cloud Cron * Cloud 환경구축 * Long-running 비즈니스프로세스 * Big Data analysis & Reporting * Live migration 5.1.8 Murano(Application Catalog service) Application catalo와상호작용하도록설계된여러가지기능을가지고있다. * Application catalog management * Application lifecycle management
- 30-5. 기능소개 5.1 주요기능소개 (6/11) 5.1.9 neutron(networking service) code-name neutron은 OpenStack Network service로, 사용자가 cloud에서 network 연결및 address를정의할수있도록해주는 API를제공한다. * Basic networking(ethernet, VLANs, Subnets and ARP, DHCP, IP, TCP/UDP/ICMP) * Network components(switches, Routers, Firewalls, Load balancers) * Overlay protocols * Network namespace * Network address translation(snat, DNAT, One-to-one NAT) * Firewall-as-a-Service(FWaas)
- 31-5. 기능소개 5.1 주요기능소개 (7/11) 5.1.10 nova(compute service) nova는 Compute instance를 provision하는방법을제공한다. OpenStack Compute service를사용하면 IaaS cloud computing platform을제어할수있다. 이는, instance 및 network를제어할수있으며사용자및프로젝트를통해 cloud에대한 access를관리할수있다. 5.1.11 Octavia(Load-balancer service) OpenStack 과함께동작하도록설계된 operator-scale 의 load balancing solution 이다.
- 32-5. 기능소개 5.1 주요기능소개 (8/11) 5.1.12 sahara(data Processing service) Sahara는사용자에게버전, cluster topology, hardware node 세부정보등과같은여러매개변수를정의하여 Hadoop, Spark, Stom cluster를제공하는간단한방법을제공한다. Sahara는몇분안에 Cluster를배포하며, 필요시 worker node를추가하거나제거하여프로비저닝된 cluster를확장할수있는방법을제공한다. 5.1.13 searchlight(search service) Searchlight는 microservice-based 아키텍처로, Elasticsearch에서인덱싱을통해여러 cloud service에 multi-tenant 검색기능을제공한다. Elasticsearch의모든문서는데이터보안및보호를위해 role-based access control(rbac) 를사용하여 Searchlight에의해보호된다. Searchlight는다음과같은방법으로 RBAC를사용하여데이터를보호한다. * Network Restriction * Document Separation * Pre-Query Protection * Post-Query Protection
- 33-5. 기능소개 5.1 주요기능소개 (9/11) 5.1.14 senlin(clustering service) Senlin은 OpenStack cloud를위한 clustering service이다. Senlin은다른 OpenStack service와상호작용하여해당서비스에노출된리소스의 cluster를생성하고운영할수있다. 이와같은상호작용은주로 profile plugin을통해수행되며, 각 profile type 구현을통해특정 type의리소스를생성및업데이트, 삭제할수있다. 5.1.15 solum(software Development Lifecycle Automation service) Cloud service를보다쉽게만들고, 사용자의 application 개발프로세스에통합할수있도록설계된 OpenStack 프로젝트이다. Solum은기본적으로 OpenStack cloud 용으로설계되었으며, Heat, Keyston, Nova, Trove 등을포함한여러 OpenStack 프로젝트를활용한다.
- 34-5. 기능소개 5.1 주요기능소개 (10/11) 5.1.16 trove(database service) Trove는관계형및비관계형데이터베이스엔진모두에대해확장가능하고안정적인 cloud provisioning 기능을제공한다. 복잡한작업에대한부담없이데이터베이스기능을쉽고빠르게사용할수있으며, 필요에따라여러데이터베이스를제공하고관리할수있다. 높은수준의리소스 isolation을제공하고배포, 구성, 패치, 백업, 복원및모니터링과같은복잡한관리작업을자동화한다. 5.1.17 watcher(infrastructure Optimization service) Watcher는 multi-tenant OpenStack-based cloud를위한유연하고확장가능한리소스 optimization service를제공한다. 또한, metrics receiver, optimization processor 및 action plan applier의모든것들을포함하여완벽한 optimization loop를제공한다.
- 35-5. 기능소개 5.1 주요기능소개 (11/11) 5.1.18 zaqar(messaging service) Messaging service는 RESTful API-based messaging service이며, 분산 web application을지원하며 OpenStack Zaqar 프로젝트를기반으로한다. Messaging service는대규모의분산 web application의핵심구성요소이다. public, private 및 hybrid cloud 환경에서 messaging service를사용할수있다. zaqar는위의작업들을 queues, messages, claims으로만드는간단한 interface를제공한다. * Queues(Create, List, Get, Update, Get Queue, Delete) * Messages(Post, Get, Get a Specific, Get a Set of Messages by ID, Delete, Delete a Set of Messages by ID) * Claims(Claims Messages, Get, Update, Release)
- 36-6. 활용예제 세부목차 6.1 예제소개 6.2 Log in demo 6.3 Launch Instances 6.4 Verify Instance creation 6.5 Instances Overview 6.6 Instances Log 6.7 Instances Console
- 37-6. 활용예제 6.1 예제소개 본예제는 openstack 을이용하여인스턴스를구성하는것을목표로한다.
6. 활용예제 6.2 Log in demo admin 이아닌 demo 사용자로로그인 ( password 는 admin 계정과동일 ) - 38 -
6. 활용예제 6.3 Launch Instances(1/12) Project > Compute > Instances > Launch Instance 버튼을클릭하여인스턴스를구동한다. - 39 -
6. 활용예제 6.3 Launch Instances(2/12) Details -> 인스턴스이름을입력하고 Next 버튼을클릭한다. - 40 -
6. 활용예제 6.3 Launch Instances(3/12) Source -> 생성하고자하는운영체제이미지를선택한다. -> devstack은기본적으로 cirrors를다운로드받아등록한다. 기본설정값은 cirrors 이므로 cirrors 선택하고 Next 버튼을클릭한다. - 41 -
6. 활용예제 6.3 Launch Instances(4/12) Flavor -> 인스턴스의사양을선택한다. -> 현재는테스트용으로만드는것이므로가장사양이작은 m1.tiny 를선택한다. - 42 -
6. 활용예제 6.3 Launch Instances(5/12) Networks -> 기본설정값 private 를선택한후 Next 버튼을클릭한다. - 43 -
6. 활용예제 6.3 Launch Instances(6/12) Network Ports -> 네트워크 IP 나 Port 를선택할수있다. -> 기본설정값으로설정후 Next 버튼을클릭한다. - 44 -
6. 활용예제 6.3 Launch Instances(7/12) Security Groups -> 기본설정값으로설정후 Next 버튼을클릭한다. - 45 -
6. 활용예제 6.3 Launch Instances(8/12) Key Pair -> 인스턴스접속시패스워드가아닌인증키를이용하여접속하는방식을사용할때키를생성하고생성한키를등록하면해당키로인스턴스에접속할수있다. -> create key pair > keypair 이름입력 > create keypair > copy private key to clipboard > done > 생성된것확인한후 Next 버튼을클릭한다. - 46 -
6. 활용예제 6.3 Launch Instances(9/12) Configurations -> 인스턴스생성후설치를하거나설정을할작업들을미리사용자정의스크립트로등록하여사용가능하다. -> 기본설정값으로설정후 Next 버튼을클릭한다. - 47 -
6. 활용예제 6.3 Launch Instances(10/12) Server Groups -> 기본설정값으로설정후 Next 버튼을클릭한다. - 48 -
6. 활용예제 6.3 Launch Instances(11/12) Scheduler Hints -> 인스턴스에 Glance 카탈로그로부터정의된 Scheduler Hints를추가하거나, 사용자정의 Scheduler를인스턴스생성시실행되도록추가할수있다. -> 기본설정값으로설정후 Next 버튼을클릭한다. - 49 -
6. 활용예제 6.3 Launch Instances(12/12) Metadata -> 사용가능한메타데이터중추가하고자하는메타데이터를이동시키면인스턴스생성시함께추가할수있다. -> 기본설정값으로설정후 Launch Instances를수행한다. - 50 -
6. 활용예제 6.4 Verify Instance creation Launch Instances 버튼을선택하면인스턴스생성시작 -> 정상적으로생성이되면 Status 항목이 Active 로변경된다. - 51 -
6. 활용예제 6.5 Instances Overview 인스턴스의상세정보확인 -> 인스턴스기본정보, 사양, 네트워크 IP 정보및방화벽정보, 메타데이터정보등을확인할수있다. - 52 -
6. 활용예제 6.6 Instances Log 인스턴스생성과정을로그로확인 -> 인스턴스오류발생시에는로그로확인이불가능하다. - 53 -
6. 활용예제 6.7 Instances Console(1/2) 인스턴스부팅이완료되면인스턴스콘솔을통하여인스턴스에접속할수있다. -> Click here to show only console 을클릭하면콘솔화면만별도로확인할수있다. - 54 -
6. 활용예제 6.7 Instances Console(2/2) 인스턴스부팅이완료되면인스턴스콘솔을통하여인스턴스에접속할수있다. -> Click here to show only console 을클릭하면아래와같은화면을볼수있다. -> Cirros 의사용자아이디는 cirros 이고, 패스워드는 cubswin:) 이다. - 55 -
- 56-7. FAQ Q OpenStack은어떤사용자를위한것인가요? & A OpenStack은공용또는사설클라우드를구축하려는서비스제공업체, 기업, 정부및교육기관을위한서비스입니다. 산업분야는 IT 및통신업체에서 SaaS 및전자상거래, 금융및의료에이르기까지다양합니다. Q XEN 또는 HyperV VPS 를 OpenStack 플랫폼으로마이그레이션할수있습니까? & A 부분적으로는가능하며, 일대일방식으로는불가능합니다. 그러나 OpenStack 에새서버를만들고수동으로 ( 제어판 ) 백업또는 rsync를사용하여데이터를수동으로마이그레이션할수있습니다.
- 57-8. 용어정리 용어 설명 IaaS Infrastructure-as-a-Service. IaaS는스토리지, 하드웨어, 서버및네트워킹구성요소와같은데이터센터의물리적구성요소를 outsource하는 provisioning 모델이다. 서버, 스토리지, 네트워크를가상화환경으로만들어, 필요에따라인프라자원을사용할수있게서비스를제공하는형태이다. IaaS는클라우드서비스를제공하는모델이다. Hypervisor 프로세서나메모리와같은다양한컴퓨터자원에서로다른각종운영체계의접근방법을통제하는소프트웨어이다. 다수의 OS를하나의컴퓨터시스템에서가동할수있게하는소프트웨어로중앙처리장치와 OS 사이에일종의미들웨어로사용되며, 하나의컴퓨터에서서로다른 OS를사용하는가상컴퓨터를만들수있는효과적인가상화엔진이다.
Open Source Software Installation & Application Guide 이저작물은크리에이티브커먼즈 [ 저작자표시 비영리 동일조건변경허락 2. 0 대한민국라이선스 ] 에따라이용하실수있습니다.