가끔정상

Packstack 을 이용해서 Openstack Mitaka 설치 ( Allinone - 1 Nic 으로)

권성재 2016. 4. 30. 12:38

### 쓴것 : Packstack 을 이용해서 Openstack Mitaka 설치 ( Allinone - 1 Nic 으로)
### 쓴때 : 2016-04-30
### 쓴이 : 권성재 (nonots@hanmail.net)


1. 개요.
오픈스택 Mitaka 버전을 이용해서, CentOS 7 Minimal 버전에서 Packstack을 이용해서,
랜카드 1 개 설치된 서버에서 Allinone 모드로
한 서버에 컨트롤러노드, 네트워크노드,컴퓨트노드 기능을 모두 구현하게 구성함.

2. 환경.
  - 호스트 컴퓨터(물리적인 내 PC) : 우분투리눅스 16.04
    집에서 LG 인터넷사용하는데, 공인아이피 220.120.xx.32가 공유기에 할당되고
    공유기 거쳐 들어오면 사설아이피 192.168.219.0/24 대역에서
    192.168.219.160 으로 PC 가 할당됨.
    게이트 웨이: 192.168.219.1

  - 게스트 컴퓨터(VirtualBox 5.0.18 에 설치) :
    OS 는 CentOS7(minimal, X윈도우 설치안함) , 메모리 8G , HDD 16G
    CentOS 설치과정중에 반드시 네트워크를 사용함으로 설치함.
    랜카드는 1 개 수동할당 : 192.168.219.100 (virtualbox 에서 브릿지어댑터로 설정)
    Virtualbox 설정에서, 랜카드 고급 > 무작위 모드를 "거부" 가 아닌 "모두 허용"으로
    반드시 수정.(br-ex 로 사용할 랜카드)

  - 오픈스택으로 할당할 IP 대역 :
     FloatingIP : 192.168.219.0/24  (실제 인터넷을 물고 나갈 아이피, 보통 공인아이피 이지만
       NAT로 네트워크 가능한 내부사설도 가능)
     각 인스턴스에 할당될 내부 사설 IP : 10.1.1.0/24 ( 이건 사설아이 대역 아무거나 할당하면됨)
     Private네트워크를 여러게 만든다면 10.1.2.0/24 같이 추가 가능함

3. 서버의 공통 사전 작업,
  - yum update ; reboot;
  - systemctl stop firewalld
  - systemctl disable firewalld
  - systemctl stop NetwokManager
  - systemctl disable NetwokManager
  - systemctl enable network
  - systemctl start network
  - chkconfig NetworkManager off
  - chkconfig network on
  - service network restart
  - yum install net-tools lsof screen sysstat wget 등등 필요한 패키지 설치,
  - setenforce 0
  - /etc/selinux/config 파엘애서 SELINUX=permissive 로 수정,
  - /etc/hosts 파일에 호스트 등록.(멀티 노드이면 여러개 등록)
  - hostnamectl set-hostname my.hostname 등과 같이 hostname 수정함

  - yum install -y https://www.rdoproject.org/repos/rdo-release.rpm
  - yum install -y openstack-packstack
  - packstack --gen-answer-file=/root/answer.txt
  - packstack --allinone (올인원)

  answer.txt에서 n 로 설치안할 것
  CINDER_INSTALL, SWIFT_INSTALL, CEILOMETER_INSTALL, AODH_INSTALL, GNOCCHI_INSTALL, NAGOIS_INSTALL

4. 노드의 외부 인터넷 연결될 랜카드 br-ex 설정 샘플
  멀티노드로 분리가 되면 외부인터넷은 네트워크노드에 해당함.

        #### ovs 랜카드 설정 :  ifcfg-enp0s3 br-ex 로 할 샘플
        NAME=enp0s3
        DEVICE=enp0s3
        BOOTPROTO=none
        IPV6INIT=no
        TYPE=OVSPort
        DEVICETYPE=ovs
        OVS_BRIDGE=br-ex
        ONBOOT=yes

        #### ovs br-ex 랜카드 설정 : ifcfg-br-ex 샘플
        NAME=br-ex
        DEVICE=br-ex
        DEVICETYPE=ovs
        TYPE=OVSBridge
        BOOTPROTO=none
        DEFROUTE=yes
        IPV4_FAILURE_FATAL=no
        IPADDR=192.168.219.100
        NETMASK=255.255.255.0
        GATEWAY=192.168.219.1
        DNS1=8.8.8.8
        ONBOOT=yes


5.  웹 대시보드 초기 관리 순서

        - admin 비밀번호 쉬운걸로 변경.
        - 관리자 > 시스템 > 라우터와 네트워크  설정 삭제,
        - 관리자 > 시스템 > 네트워크 : public 네트워크 생성.
                (네트워크타입을 VXLAN 으로하고, segmentID 는 숫자0,shared,external network 체크.
        - 관리자 > 시스템 > 네트워크 public 의 서브넷(public_subnet) 생성.
                192.168.219.0/24 와 같이 할당가능한 floatingIP 영역.
                AllocationPool(할당영역) 은 192.168.219.2,192.168.219.50 같이 실제 사용할 영역.
        - 프로젝트 > 네트워크 > 네트워크 : Private 네트워크 생성.
                10.1.1.0/24 와 같이 내부 사설 네트워크 생성. 게이트웨이는 보통 끝에 1 번으로.
                AllocationPool(할당영역) 은 10.1.1.2,10.1.1.50 같이 실제 사용할 영역을 쉼표로.
        - 프로젝트 > 네트워크 > 라우터 : 라우터 생성. external 외부 네트워크를 public 으로 선택.
                라우터 생성 후 상세보기에서 인터페이스를 추가함.
                서브텟은 위에서 만든 Private 네트워크 10.1.1.0/24 를 선택.
                IP 주소는 10.1.1.0/24 의 게이트웨이인 10.1.1.1 를 입력.
        - 프로젝트 > 네트워크 > 네트워크토폴로지 : 가지모양 네트워크 구성도 확인


6. 인스턴스 샘플 생성 및 접속

 - 프로젝트 > Compute > 접근 보안 : 보안 그룹 규칙을 잘 손보고, 키패어 생성해서 파일을
   mycentos_key.pem 등의 적당한 이름으로 다운 보관.

 - 관리자 > 시스템 > 이미지 : 이미지 생성 창을 연다.
   http://cloud.centos.org/centos/7/images/ 에서 최신 qcow2 이미지 경로
   http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1603.qcow2c
   를 복사해서 위 이미지 생성 창에서 "이미지 위치" 에 붙여 넣기 한다.
   포맷란에는 QCOW2 를 선택. 적당한 이름 넣은후. 한단에 공용에 체크하고 저장.

 - 프로젝트 > Compute > 인스턴스 에서 상단 "인스턴스 구동" 으로 인스턴스를 만든다.
   팝업창에서 "네트워크" 는 반드시 Private 네트워크를 선택하고, 소스 부분에 위에서 만든
   Centos7 이미지를 선택하고, 미리 만든 키페어 선택 등등
   만들어 지면, 10.1.1.? 와 같이 내부 사설IP 만 할당되므로,인터넷을 하려면 FloatingIP를 연결해서
   예를 들어 192.168.219.13 와 같이 할당받는다.

 - 위 centos 인스턴스에  ssh 로 접속하려면 외부에서, 다운받은 키파일을 이용해서
   ssh -i mycentos_key.pem centos@192.168.219.13 와 같이 접속하면 비번 없이 접속가능함.
   만약 로그인후 외부로 핑이 안나가면,  VirturlBox 에서 랜카드 설정 고급에서
   무작위모드가 "모두 허용" 으로 된건지 확인.

 - 만약 인스턴스의 총 하이퍼바이저 즉, VCPU 갯수가, 컴퓨트노드에 사용된 총 CPU 갯수보다 많으면
   오류가 남.