본문 바로가기

클라우드/Private Cloud (XEN, VMWARE,OPENSTACK)

OpenStack 자동설치 후 인스턴스 생성

먼저 CENTOS7 가상머신 한대를 설치한다. 각각의 용량을 설정해주고, 네트워크 어댑터 하나를 추가하여서 Host-only로 설정하고 가상화 체크한다.

ens33 NAT카드 IP 설정!

Host-only 카드 IP 설정!

Selinux의 기능을 꺼야 한다.

기초적인 설정은 끝이 나게 된다. Openstack 설치를 위해 권장하는 사항인 방화벽과 네트워크 매니저를 멈춰준 후 network를 시작하겠다.

방화벽, 네트워크 매니저 disable, stop network enable,. Start 입력!

yum install -y centos-release-openstack-(rocky or stein) (오픈스택의 저장소 설치)

yum install -y openstack-packstack (레드햇(CentOS) 계열이기 떄문에 packstack 설치!)

데비안 계열에 설치하는 경우 packstack이 아닌 devstack설치 한다.

packstack --gen--answer-file duck.com (generate answer-file(설정파일) 생성)

ls를 통해 잘 생성되었음을 확인할 수 있다.

Vi duck.com (생성한 duck.txt(answer file)) 여러가지 설정을 answer file에서 설정할 수 있다. 중요하고 기초적인 설정만 체크하고, pw 간단히 설정했다.

* 기초적인 설정

11 CONFIG_DEFAULT_PASSWORD=It1 (비밀번호 설정)

53 CONFIG_PANKO_INSTALL=y  (이벤트 추적 기능)

60 CONFIG_HEAT_INSTALL=y

79 CONFIG_NTP_SERVERS=kr\.pool\.ntp\.org

94 CONFIG_CONTROLLER_HOST=1.0.0.1

97 CONFIG_COMPUTE_HOSTS=1.0.0.1

101 CONFIG_NETWORK_HOSTS=1.0.0.1

137 CONFIG_STORAGE_HOST=1.0.0.1

141 CONFIG_SAHARA_HOST=1.0.0.1

274 CONFIG_AMQP_HOST=1.0.0.1

296 CONFIG_MARIADB_HOST=1.0.0.1

302 CONFIG_MARIADB_PW=It1

306 CONFIG_KEYSTONE_DB_PW=It1

326 CONFIG_KEYSTONE_ADMIN_PW=It1

342 CONFIG_KEYSTONE_LDAP_URL=ldap://1.0.0.1

782 CONFIG_LBAAS_INSTALL=y (로드 밸런스 설치)

812 CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch

844 CONFIG_NEUTRON_L2_AGENT=openvswitch

862 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex (openstack 카드)

873 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens33 (nat 카드)

896 CONFIG_NEUTRON_OVS_TUNNEL_IF=(ens34)

여기에 hostonly 카드 이름 넣어야 함 (멀티노드 설치시 cont,comp 통신 카드)

1185 CONFIG_PROVISION_DEMO=n (데모 설치는 하지 않아도 된다.)

790(방화벽), 794(VPN) 설정도 가능하다.

어느 정도 설정이 끝이 난 answer파일을 지정 해주기 위해 명령어 실행!

 

packstack --answer-file duck.com (시간이 오래 걸림)

Ifconfig로 확인해본 결과 ens33ip가 없어지고 br-ex로 바뀌었다.

자세히 확인해보기 위해 네트워크 설정 파일에 들어갔다.

새로 생겨난 br-ex에는 typeOVSBridege로 바뀌었음을 확인할 수 있다

기존의 ens33에는 설정했던 값들이 사라지고 typeOVSPort로 바뀌었다.

익스플로러에서 1.0.0.1 접속(br-exip) 후 로그인 (answer파일 설정 패스워드)

설치와 접속이 완료 된 후에 외부 네트워크를 생성하여 주겠다.

공급자 네트워크 유형은 FLAT를 선택하고 물리적인 네트워크는 answerfile에서 설정했던 이름 입력하고, 891번 줄(CONFIG_NEUTRON_OVS_EXTERNAL_PHYSNET=extnet) 외부 네트워크 꼭 체크하여야 한다.

서브넷 이름과 네트워크 주소의 대역과 게이트웨이 ip 입력한다. (게이트 웨이 ip를 생략할 경우 알아서 설정하여 준다.)

ip자동할당을 위해 dhcp 설정 체크 한 후 pools에 범위를 할당하고 dns입력!

외부 네트워크 설정이 끝난 후 내부 네트워크도 설정하여야 한다. 역시 공급자 네트워크 유형은 answer file에서 설정했던 vxlan으로 설정한다. 구분 ID1부터 16777215까지의 숫자 중 임의의 값을 넣어주면 된다.

805번 줄(CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan)

내부 네트워크 대역은 172.16.16.0대역으로 설정하여 주었다.

DHCP 사용과 DNS를 설정하면 내부 네트워크 설정이 완료 된다.

네트워크 생성이 된 후 라우터를 생성하겠다.

이름과 네트워크 설정 후 라우터 생성!

라우터가 무사히 생성되었다.

라우터가 생성된 후 외부네트워크와 내부네트워크를 라우터를 통해 연결해야 한다.

중앙에 라우터를 클릭한 후 인터페이스 추가를 누른다.

인터페이스 추가 되면 무사히 내부네트워크와 외부네트워크가 연결된다. 이때 routerinterfacegateway down되어있는 경우가 있다. 그럴 때는 작동시키기 위해 패키지를 깔고 명령어를 실행하여야 한다. (yum install -y openstack-utils, systemctl start neutron-l3-agent) active로 바뀌는 것을 확인한다.

Active가 된 것을 확인한 후 openstack(centos)에서 라우터의 게이트웨이인 1.0.0.112 ping을 보내서 무사히 ping이 가야 한다.

인스턴스 생성 후 pingssh접속을 위해 icmpssh포트를 열기 위해 보안 그룹생성하겠다. Linux라는 이름으로 생성하여 보겠다.

 

생성이 완료 된 후 규칙 관리를 선택한다.

내보내는 포트는 전체적으로 설정되어 있는데 들어오는 포트는 설정되어 있지 않다. 그래서 포트에 들어올 수 있게 하기 위해 규칙을 추가해주겠다.

모든 들어오는 icmp기능을 사용!

SSH 규칙도 추가!

그 후 SSH 접속을 위한 키를 만들기 위해 Key 페어를 생성하겠다. 이름은 open으로 설정하겠다.

키 페어 생성 버튼을 누르게 되면 다음과 같은 창이 뜨게 되는데 키 파일을 저장했다.

인스턴스를 만들기 위한 이미지를 생성하겠다.

CentOS7 이미지는 openstack사이트에서 미리 받아 두었고 그 이미지를 선택!

포멧은 이미지파일의 형식에 맞게 qcow2선택한 후 생성한다.

이미지가 무사히 생성되었다.

CentOS의 이미지에 맞는 알맞은 규모를 설정하기 위해 flavor을 생성하겠다. 5개의 크기파일이 기존에 존재하지만 임의로 만들겠다.

test파일로 만들겠다. CPU 1, RAM 1024MB, 디스크 10GB로 설정하겠다.

인스턴스를 생성하기 전 기본 설정은 모두 끝이 났다. 인스턴스는 일반적으로 실행 임의

의 프로세스, 클래스의 현재 생성된 오브젝트를 가리킨다. 인스턴스를 생성하겠다.

이름은 CentOS로 하겠다.

이미지에 생성한 centos를 할당한다.

Flavor 임의로 만든 m1.test를 할당한다.

네트워크는 PRI인 내부네트워크를 설정하겠다.

보안그룹은 아까 임의로 만들어 설정해둔 Linux로 할당한다.

키 페어 역시 임의로 만든 키 페어로 설정한다.

그 동안 유동 ip 설정을 위해 floating ip에서 생성하겠다.

Pool을 외부 네트워크인 1.0.0.0/24대역으로 설정해주고 ip할당 선택한다.

전원 상태가 Running이 나오면 무사히 생성되었다는 것을 알 수 있다. 외부 네트워크 ip를 설정하기 위해 유동 ip연결을 클릭한다.

 

아까 floating에서 만든 1.0.0.106을 유동 ip로 연결한다.

인스턴스가 무사히 잘 생성되었음을 토폴로지에서 볼 수 있다.

인스턴스 로그를 확인하면 부팅 중임을 확인할 수 있다.

어느 정도 부팅이 끝난 후에 보안그룹에서 SSH포트를 열어놓았기 떄문에xshell에서 centOS 인스턴스(1.0.0.106)로 접속하겠다.

Centos 7의 이미지에 기존에 있던 사용자 centos 입력!

사용자 키를 선택한다.

가져오기를 통해 아까 키페어를 통해 저장한 키 파일을 선택한다.

무사히 접속이 완료됨을 확인할 수 있다.

이 생성한 인스턴스가 무사히 작동됨을 확인해보기 위해 web서비스를 실행하여 보겠다.

먼저 관리자 권한인 root 계정으로 이동한 후 httpd 패키지를 설치하겠다.

기본문서 설정을 위해 index파일을 설정하겠다.

Hello 출력하기 위한 코드 생성!

웹 서비스를 시작하기 전에 centos 인스턴스의 보안 그룹에 http80번 포트가 개방되어 있어야 한다. 기존에 개방되어 있지 않으면 보안 그룹 편집을 이용한다.

http서비스가 가능해지면 httpd 기능을 시작한다.

1.0.0.106으로 접속하는 순간 hello가 출력되는 웹 페이지가 나온다. 잘 작동이 된다.