### 쓴것 : Packstack 을 이용해서 Openstack Mitaka 설치 ( 3node - 1Nic 으로)
### 쓴때 : 2016-04-30
### 쓴이 : 권성재 (nonots@hanmail.net)
1. 개요.
오픈스택 Mitaka 버전을 이용해서, CentOS 7 Minimal 버전에서 Packstack을 이용해서,
랜카드 1 개씩만 설치된 서버에서 컨트롤러노드, 네트워크노드,컴퓨트노드 기능을 구현하게 구성함.
2. 환경.
- 호스트 컴퓨터(물리적인 내 PC) : 우분투리눅스 16.04
집에서 LG 인터넷사용하는데, 공인아이피 220.120.xx.32가 공유기에 할당되고
공유기 거쳐 들어오면 사설아이피 192.168.219.0/24 대역에서
192.168.219.160 으로 PC 가 할당됨.
게이트 웨이: 192.168.219.1
- VirtualBox 설정(VirtualBox 5.0.18 에 설치) :
랜카드 설정은 NAT가 아니라, NIC 을 1 개만 사용하므로 막바로 외부 네트워크 접속하게
호스트어댑터 타입으로 설정
가상환경에서 nic 이름은 eth0 아니라 enp0s3 와 같은 이름임. 순서만 중요.
컨트롤노드 : 192.168.219.10
컴퓨트노드 : 192.168.219.20
VirtualBox 에서 가상CPU(VCPU) 를 할당할 때, 이 컴퓨트노드에 가능하면 많은 VCPU를
할당해야함. 인스턴스를 생성하면 총 인스턴스 사용VCPU 갯수가 많아지면 오류가 남.
네트워크노드 : 192.168.219.30
Virtualbox 설정에서, 랜카드 고급 > 무작위 모드를 "거부" 가 아닌 "모두 허용"으로
반드시 수정, br-ex 로 사용할 랜카드)
게이트웨이 : 192.168.219.1
OS 는 CentOS7(minimal, X윈도우 설치안함) , 메모리 8G , HDD 16G
CentOS 설치과정중에 반드시 네트워크를 사용함으로 설치함.
- 오픈스택으로 할당할 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
# 비번없이 ssh 접속(controller.node 에서의 명령어. 다른 노드는 각각 또 따로)
ssh-keygen (엔터만 여러번 쳐서 종료)
ssh-copy-id -i /root/.ssh/id_rsa.pub root@compute.node
ssh-copy-id -i /root/.ssh/id_rsa.pub root@network.node
ssh root@compute.node (하면 비번 없이 로그인 해야함)
ssh root@network.node (하면 비번 없이 로그인 해야함)
packstack --gen-answer-file=/root/answer.txt
## answer.txt에서 n 로 설치안할 것과 기타 설정 수정
CONFIG_CINDER_INSTALL=n
CONFIG_SWIFT_INSTALL=n
CONFIG_CEILOMETER_INSTALL=n
CONFIG_AODH_INSTALL=n
CONFIG_GNOCCHI_INSTALL=n
CONFIG_NAGOIS_INSTALL=n
CONFIG_CONTROLLER_HOST=192.168.219.10
CONFIG_COMPUTE_HOSTS=192.168.219.20
CONFIG_NETWORK_HOSTS=192.168.219.30
수정후 실행
packstack --answer-file=/root/answer.txt
4. 노드의 외부 인터넷 연결될 랜카드 br-ex 설정 샘플
멀티노드로 분리가 되면 외부인터넷은 네트워크노드에서 담당함.
#### 네트워크노드(192.168.219.30) ovs 랜카드 설정 : ifcfg-enp0s? br-ex 로 할 샘플
NAME=enp0s?
DEVICE=enp0s?
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.30
NETMASK=255.255.255.0
GATEWAY=192.168.219.1
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 등의 적당한 이름으로 다운 보관.
- 관리자 > 시스템 > Flavor : 기존에 있는 Flavor 삭제하고 새로 만들든가.
- 관리자 > 시스템 > 이미지 : 이미지 생성 창을 연다.
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 갯수보다 많으면
오류가 남.
'가끔정상' 카테고리의 다른 글
Packstack 을 이용해서 Openstack Mitaka 설치 ( 2node - 3Nic 으로) (0) | 2016.05.06 |
---|---|
Packstack 을 이용해서 Openstack Mitaka 설치 ( 3node - 3Nic 으로) (0) | 2016.05.01 |
Packstack 을 이용해서 Openstack Mitaka 설치 ( Allinone - 1 Nic 으로) (0) | 2016.04.30 |
칠순 - 아버님전 상서 (0) | 2013.09.04 |
토 구결 (0) | 2012.07.19 |