레이블이 RedHat인 게시물을 표시합니다. 모든 게시물 표시
레이블이 RedHat인 게시물을 표시합니다. 모든 게시물 표시

2015년 3월 29일 일요일

CentOS 7.0 + nginx + uwsgi + Flask

CentOS 7.0.1406 + uwsgi 2.0.10 + nginx 1.6.2 + Flask 0.10.1


nginx 설치

shell
yum install epel-release
sed -ri 's/^enabled.*=.*1$/enabled = 0/g' /etc/yum.repos.d/epel.repo
yum install nginx --enablerepo=epel
vi /etc/nginx/nginx.conf
/etc/nginx/nginx.conf
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    index   index.html index.htm;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        server_name  localhost;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;
        location / {
                include uwsgi_params;
                uwsgi_pass unix:/var/lib/nginx/tmp/uwsgi/uwsgi.sock;
        }
        error_page  404              /404.html;
        location = /40x.html {
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        }
    }
}
shell
systemctl enable nginx.service
systemctl start  nginx.service
systemctl status nginx.service

FLASK 설치

shell
yum install gcc python-devel
curl https://bootstrap.pypa.io/get-pip.py | python
pip install flask
mkdir -p /var/www/flask/
vi /var/www/flask/index.wsgi
/var/www/flask/index.wsgi
import sys
from flask import Flask
sys.path.append('/var/www/flask')
application = Flask(__name__)
@application.route('/')
def index():
    return 'HelloWorld'

uWSGI 설치

shell
yum install pcre-devel openssl-devel zlib-devel
pip install uwsgi
vi /etc/nginx/uwsgi.ini
/etc/nginx/uwsgi.ini
#http://uwsgi-docs.readthedocs.org/en/latest/Systemd.html
[uwsgi]
socket      = /var/lib/nginx/tmp/uwsgi/uwsgi.sock
python-path = /var/www/flask
wsgi-file   = /var/www/flask/index.wsgi
uid         = nginx
gid         = nginx
processes   = 4
threads     = 2
stats       = 127.0.0.1:9191
shell
vi /etc/systemd/system/uwsgi.service
/etc/systemd/system/uwsgi.service
[Unit]
Description=uWSGI
After=syslog.target

[Service]
ExecStart=/bin/uwsgi --ini /etc/nginx/uwsgi.ini
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target
shell
systemctl enable uwsgi.service
systemctl start  uwsgi.service
systemctl status uwsgi.service

firewalld

shell
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

2014년 12월 10일 수요일

OpenStack Juno 정리

OpenStack Juno 릴리즈 정리

  • OpenStack은 매해 두번씩 새로운 버전이 릴리즈합니다.(4월, 10월)
  • 최신 안정판: 2014.2 (Juno)
  • 다음 안정판: 2015.1 (Kilo)

Juno (2014.2)

  • Juno는 미국 조지아주 아틀란타시 근교에 지명

  • 개발기간: 2014/5 ~ 2014/10
  • 개발항목: 340개소 이상
  • 버그수정: 약 3200개이상
  • 스택수 : 11개
    • Data Processing (Sahara) 추가
  • 5대 기여사 (Contribution Company)
    • 1. 20% HP
    • 2. 18% RedHat
    • 3. 13% Mirantis
    • 4. 10% Rackspace
    • 5.   8% IBM

OpenStack 정식 스텍 리스트

  • Swift : Object Storage 클라우드 스토리지
  • Nova : Compute 클라우드 컴퓨팅
  • Glance : Image Service 가상머신 템플릿 관리
  • Keystone : Identity 종합 사용자/테넌트등 인증
  • Horizon : Dashboard 사용자 서비스 포털
  • Neutron : Networking 클라우드 네트워크 가상화 관리
  • Cinder : Block Storage 볼륨 스토리지
  • Ceilometer: Telemetry 자원 모니터링, 운영 감시
  • Heat : Orchestration 클라우드 오케스트레이션
  • Trove : Database 클라우드 데이터베이스 DBaaS
  • Sahara : Data Processing 빅데이터 처리

OpenStack 육성 프로젝트

  • Ironic : Baremetal 물리머신 관리
  • Zaqar : Queue service (MQaaS)
  • Barbican : Key management 키 데이터 관리
  • Desinate : DNS service (DNSaaS)
  • Oslo : Common Libraries 각 프로젝트 공통 코드
  • TripleO : Deployment
  • Devstack : 개발자용 OpenStack 설치

Juno에서 추가된 새로운 기능들

  • Nova
    • RBAC
    • Evacuate Host
    • Console 개선
    • Flavor 추가 속성
    • Host metering
  • Glance
    • Image meta data 대응,
    • tag 대응
  • Neutron
    • RBAC
    • DVR/L3-HA
    • IPv6서브넷 대응
    • 프로바이더 네트워크 대응
  • Heat
    • RBAC
    • 스택 페이징
  • Cinder
    • 볼륨 형식 변경
    • 볼륨 확장 속성
    • 볼륨 QoS 속성
  • Keystone
    • RBAC 대응 사용자 환경
    • 사용자/도메인간 룰 추가
  • Trove
    • 증분 백업
  • Sahara
    • 전용 사용자 환경 추가 (Horizon)
    • 프로세스가 실행되는 대상에 대한 링크 추가

2014년 12월 1일 월요일

OPNFV Initial Distribution

OPNFV Distribution

  • OPNFV Support mulitple distributions
    • Ubuntu
    • Redhat (CentOS)
    • Fedora
  • Initial kick start distribution
  • LTM (Long Term Evolution)

Initial Distribution selection

  • Several Project
    • OpenStack
    • ODL (Open Daylight)
    • Infra Set up language support (Puppet, Juju)
    • Plugins Availability
    • Virtual Enviroment
    • Bare metal platform support



Criteria
RHEL
CentOS
Ubuntu
Fedora
Devstack
Release
7
7
14.10
21
Latest
Installer
Packstack
Packstack
JuJu, Fuel
Packstack (RDO), DevStack
Devstack
Support
Yes
Community
Yes
Community
No
Resident Developer





Openstack Release
Juno (RDO), Icehouse (RHEL OSP)
Juno (RDO)
Juno
Icehouse (packaged), Juno (RDO)
Kilo
ODL Release



Hydrogen, Helium (not in repositories)

Installer Languages
Puppet
Puppet
Puppet
Puppet (RDO), bash (Devstack)

Plugins Availability





Ease of Development


Yes


Virtual Environment


Vagrant, Kvm, Docker, LXC etc
Qemu/kvm, Docker, lxc etc

Zero Touch including PXE Boot


Yes (JuJu/MaaS/Cobbler)


Troubleshooting Ease





Long Term Evolution


14.04


Automated Testing Framework Integration


OSTF


Kernel Version
3.10
3.10
3.14 (Realtime Patch)
3.17

Qemu version
2.0
2.0
2.0
2.1

2014년 11월 24일 월요일

Cloud Network Structure (OpenStack + OpenDaylight + Open vSwitch)

OpenStack + OpenDaylight

  • OpenStack과OpenDaylight, SDN, 그리고 NFV와의 관계를 알아보자.

OpenStack 네트워크 관련 스택

  • Metering (Ceilometer)
    • 계측기능
    • 경고(알람) 기능
  • Orchestration (Heat)
    • 오케스트레이션 기능
    • Ceilometer와 연동하여 자동 Scale in/out 서비스를 제공
    • VPNaaS, FWaas, LBaaS, ..., etc
  • Networking (Neutron)
    • 네트워크 관리 기능

OpenStack Orchestration (Heat)

  • 주된 사용 용도
    • 다수의 인스턴스의 연동이 필요하거나,
    • 단일 서비스 인스턴스를 확장할 때 사용
    • 인스턴스의 오케스트레이션 기능을 제공하며,
    • 어플리케이션의 디플로이를 쉽게 해 줌
  • TOSCA
    • Topology and
    • Orchestration
    • Specification for
    • Cloud
    • Application

OpenStack Networking (Neutron)

  • 클라우드에 네트워크를 관리
  • 다수의 써드파티 플러그 인 형태로 선택해서 사용
    • Cisco
    • Juniper
    • Midokura
    • NEC
    • Mellannox
  • 모듈형 레이어 2 (ML2) 플러그 인
    • OpenStack Havana 릴리즈 이후부터 플러그인 형태로 제공되었으며,
    • OSI Layer2기술을 제공하는 플러그인.

ML2 PlugIn (Midonet)

  • 엣지오버레이형 네트워크 플러그인 (midonet)
    • IaaS 클라우드 를 위해서 개발
    • 제어 콘트ㄹ러 기능을 분산함
    • 데이터 베이스가 네트워크 토폴로지 정보를 가짐

ML2 PlugIn (Cisco Nexus)

  • Cisco Open Cloud
    • USS, Nexus, Cisco One 기술을 사용해서 OpenStack관 연동
    • Cisco SDN 기반
    • Nexus 1000v
    • onePK
    • ONE Controller
  • Cisco Open Cloud Solution
    • OpenStack기반
    • Video Scalable Object Storage
    • Scalable Message Bus
    • App Metering
    • 가상화 기반의 네트워크 어플리케이션 서비스을 제공이 목적

모듈형 Layer2 Plugin

  • Neutron Server에서 ML2 Plugin형태로 서비스 제공
  • ML2 TypeDriver
    • Local
    • Flat
    • GRE
    • VLAN
    • VXLAN
  • Mechanism Manager
    • Arista
    • Cisco Nexus
    • Hyper-V
    • L2 Population
    • Linux bridge
    • Open vSwitch
    • Tail-F NCS

ML2를 사용한 클라우드 동작 과정

  • Host1, Host2, 그리고 Cisco Nexus Switch가 있다고 가정
  • Host1 에서 동작
    • Nova API에 의해서 Nova Compute생성
    • Neutron Server에 의해서 Neutron OVS Agent 생성
    • Neutron DHCP에 의해서 Neutron L3 Agent 생성
    • 네트워크 구성
    • VM1 -> br-int -> br-eth2 - eth2
  • Host2 에서 동작
    • Nova API에 의해서 Nova Compute생성
    • Neutron Server에 의해서 Neutron OVS Agent 생성
    • Neutron DHCP에 의해서 Neutron L3 Agent 생성
    • 네트워크 구성
    • VM2 -> br-int -> br-eth2 - eth2
  • Host1에서 OVS Agent 동작
    • ML2 OVS Mechanism Driver에 의해서
    • VM1용 br-eth2 포트에
    • 가상 NIC IF에 VLAN 추가
  • Host2에서 OVS Agent 동작
    • ML2 OVS Mechanism Driver에 의해서
    • VM2용 br-eth2 포트에
    • 가상 NIC IF에 VLAN 추가
  • OpenStack 자동 설정 후 VM1-VM2간 ping으로 상호 통신 테스트 실시
  • VM1에서 발생한 패킷의 이동 경로
    • Host1
    • VM1 -> Br-int -> Br-eth2 -> eth2
    • Host1 -> Cisco Neus Switch -> Host2
    • eth2/1 에서 Host1의 패킷 수신
      • ML2 Cisco Nexus Mechanism Driver에서
      • eth2/1에 VLAN 트렁크 설정
    • eth2/2 에서 Host2로 패킷 전달
      • ML2 Cisco Nexus Mechanism Driver에서
      • eth2/2에 VLAN 트렁크 설정
    • Host2
    • eth2 -> Br-eht2 -> Br-int -> VM2

OpenDaylight에서 OpenStack Neutron용 ML2 PlugIn

  • SDN Controller인 OpenDaylight에서 OpenStack용 서비스 NBI 공개
    • Neutron API
    • OpenDaylihgt 내 다수의 Neutron network을 실장
  • OpenStack과 OpenDaylight의 Structure
    • OpenStack Neutron
      • Neutron plugin
    • OpenDaylight APIs (REST)
    • Netutron service
      • VTN Provider
      • DOVE Provider
      • Other Provider
  • 최초 릴리즈 OpenDaylight에서는 L4~L7 서비스는 제공하지 않았음.
  • Open vSwitch와의 연동