본문

VirtualBox위에 OpenStack Liberty 설치하기 #7. 인스턴스 생성

VirtualBox위에 OpenStack Liberty 설치하기 #1. 소개

VirtualBox위에 OpenStack Liberty 설치하기 #2. Liberty 네트워크구조

VirtualBox위에 OpenStack Liberty 설치하기 #3. 네트워크 설정

VirtualBox위에 OpenStack Liberty 설치하기 #4. 노드구성

VirtualBox위에 OpenStack Liberty 설치하기 #5. 서비스설치 (1)

VirtualBox위에 OpenStack Liberty 설치하기 #6. 서비스설치 (2)


주의사항: 사용자의 확인 또는 입력이 필요한 부분은 <입력값> 의 형태로 나타낼 것이고 그 이외에는 그냥 복사 붙여넣기하여 설치를 진행할 수 있다. 또한 괄호없이 빨간색 글씨로 되어있는부분은 기본암호이므로 보안을 강화하기 위해서는 이 부분과, 관련한 설정파일들을 변경해 주어야 한다. Ubuntu14.04버전 기준으로 작성되어 다른 운영체제에서는 호환이 되지않을수 있다. 기본적으로 'sudo su'를 미리 실행하여 root 권한으로 진행하도록 한다.



Self-service Networks 환경에서는 Public Network와 Private Network로 네트워크가 구분된다. L2(Bridging/Switching) 기반의 Public Network는 외부 인터넷망에 직접 연결되는 망으로, 이 네트워크를 바탕으로하는 인스턴스는 외부 네트워크와 직접 연결된 효과를 갖는다. 반면에 L3(Routing)기반의 Private Network는 가상 라우터(그림의 VLAN Tunnels 부분)를 거쳐 외부 인터넷망에 연결되므로 추가적인 인터넷 연결설정이 필요하다. 특히 해당 네트워크내의 인스턴스는 외부망에 접속이 가능할지라도 외부 망에서 해당 인스턴스에 접근하기 위해서는 Floating IP라는 외부에 노출되는 IP를 할당해주어야 한다.


그림에서와는 약간 다르게, Public Network의 IP는 10.0.2.0/24 (VirtualBox의 NAT네트워크에서 할당받는 IP) 서브넷 중에서 10.0.2.100~10.0.2.200 사이의 IP를 할당하는것으로 설정하고, Private Network의 IP는 10.0.0.0/24 대역의 IP를 할당하는것으로 한다. 아래 모든 명령은 컨트롤러 노드에서 실행한다.


목차

1-1. 가상 네트워크 구성 - Public Network
1-2. 가상 네트워크 구성 - Private Network
1-3. 가상 라우터 구성
1-4. 가상 라우터 확인
2. 공개키 생성
3. 보안 그룹 규칙 추가(방화벽에서 Ping과 SSH허용)
4-1. Public Network에서 인스턴스 생성
4-2. Public Network에서 인스턴스 생성 후 확인
5-1. Private Network에서 인스턴스 생성
5-2. Private Network에서 인스턴스 생성 후 확인
5-3. Private Network의 인스턴스를 위하여 Floating IP 설정(Public Network 대역중 100~200을 제외한 IP 하나 선택)


1-1. 가상 네트워크 구성 - Public Network

source admin-openrc.sh
neutron net-create public --shared --provider:physical_network public --provider:network_type flat
neutron subnet-create public 10.0.2.0/24 --name public --allocation-pool start=10.0.2.100,end=10.0.2.200 --dns-nameserver 8.8.4.4 --gateway 10.0.2.1


1-2. 가상 네트워크 구성 - Private Network

source demo-openrc.sh
neutron net-create private
neutron subnet-create private 10.0.0.0/24 --name private  --dns-nameserver 8.8.4.4 --gateway 10.0.0.1


1-3. 가상 라우터 구성

source admin-openrc.sh
neutron net-update public --router:external
source demo-openrc.sh
neutron router-create router
neutron router-interface-add router private
neutron router-gateway-set router public


1-4. 가상 라우터 확인

source admin-openrc.sh
ip netns
neutron router-port-list router
ping -c 4 203.0.113.102


2. 공개키 생성

source demo-openrc.sh
ssh-keygen -q -N "" </home/user/id_rsa 입력>
nova keypair-add --pub-key /home/user/id_rsa.pub mykey
nova keypair-list


3. 보안 그룹 규칙 추가(방화벽에서 Ping과 SSH허용)

nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0


4-1. Public Network에서 인스턴스 생성
source demo-openrc.sh
nova flavor-list <원하는 Flavor의 'Name'을 기록할것. 아래명령의 m1.tiny>
nova image-list <원하는 이미지의 'Name'을 기록할것. 아래명령의 cirros>
neutron net-list <name이 public인 항목의 네트워크 'id'를 기록할것>
nova secgroup-list <원하는 보안 그룹의 'Name'을 기록할것. 아래명령의 default>
nova boot --flavor m1.tiny --image cirros --nic net-id=<public 네트워크 id> --security-group default --key-name mykey public-instance


4-2. Public Network에서 인스턴스 생성 후 확인

nova list
nova get-vnc-console public-instance novnc <출력되는 Url을 인터넷 브라우저에서 열면 웹 vnc 화면이 출력된다.>


5-1. Private Network에서 인스턴스 생성

source demo-openrc.sh
nova flavor-list <원하는 Flavor의 'Name'을 기록할것. 아래명령의 m1.tiny>
nova image-list <원하는 이미지의 'Name'을 기록할것. 아래명령의 cirros>
neutron net-list <name이 private인 항목의 네트워크 'id'를 기록할것>
nova secgroup-list <원하는 보안 그룹의 'Name'을 기록할것. 아래명령의 default>
nova boot --flavor m1.tiny --image cirros --nic net-id=<private 네트워크 id> --security-group default --key-name mykey private-instance


5-2. Private Network에서 인스턴스 생성 후 확인

nova list
nova get-vnc-console private-instance novnc <출력되는 Url을 인터넷 브라우저에서 열면 웹 vnc 화면이 출력된다.>


5-3. Private Network의 인스턴스를 위하여 Floating IP 설정(Public Network 대역중 100~200을 제외한 IP 하나 선택)

neutron floatingip-create public
nova floating-ip-associate private-instance <위 명령에서 생성된 floating_ip_address 사용>

저작자 표시 비영리 변경 금지
신고

댓글 15

  • 게스트 썸네일
    인스턴스 생성 문의
    2016.01.13 10:03 신고

    모든 과정에서 오류 없이 진행하고, 4-1과 5-1의 과정을 통해 인스턴스를 생성하면 다음과 같은 상태입니다.

    root@controller:~# nova list
    +--------------------------------------+------------------+--------+------------+-------------+----------+
    | ID | Name | Status | Task State | Power State | Networks |
    +--------------------------------------+------------------+--------+------------+-------------+----------+
    | c235a846-02ed-425b-9ce1-493cfb0cd832 | private-instance | ERROR | - | NOSTATE | |
    | 92aa9315-50f4-4398-bb9d-5e51ce2ace7a | public-instance | ERROR | - | NOSTATE | |
    +--------------------------------------+------------------+--------+------------+-------------+----------+

    • 게스트 썸네일
      인스턴스 생성 문의
      2016.01.13 10:05 신고

      인스턴스 생성 시 결과화면은 다음과 같이 출력됩니다.

      root@controller:~# nova boot --flavor m1.tiny --image cirros --nic net-id=0b3fa77d-66df-4cf4-974f-1849a8095a4f --security-group default --key-name mykey private-instance
      +--------------------------------------+-----------------------------------------------+
      | Property | Value |
      +--------------------------------------+-----------------------------------------------+
      | OS-DCF:diskConfig | MANUAL |
      | OS-EXT-AZ:availability_zone | |
      | OS-EXT-STS:power_state | 0 |
      | OS-EXT-STS:task_state | scheduling |
      | OS-EXT-STS:vm_state | building |
      | OS-SRV-USG:launched_at | - |
      | OS-SRV-USG:terminated_at | - |
      | accessIPv4 | |
      | accessIPv6 | |
      | adminPass | YwXYBUGbi8Sh |
      | config_drive | |
      | created | 2016-01-12T09:16:10Z |
      | flavor | m1.tiny (1) |
      | hostId | |
      | id | c235a846-02ed-425b-9ce1-493cfb0cd832 |
      | image | cirros (27644f09-14fc-467b-b013-f527ca2ec1be) |
      | key_name | mykey |
      | metadata | {} |
      | name | private-instance |
      | os-extended-volumes:volumes_attached | [] |
      | progress | 0 |
      | security_groups | default |
      | status | BUILD |
      | tenant_id | da02b4379c0042e5bab01dfc88476e32 |
      | updated | 2016-01-12T09:16:11Z |
      | user_id | 09035024431f4d03af1113e6378761c2 |
      +--------------------------------------+-----------------------------------------------+


      ==> 수행 결과에 "OS-EXT-AZ:availability_zone"의 값이 없는 것이 문제인것으로 추정됩니다.(http://docs.openstack.org/liberty/install-guide-ubuntu/launch-instance-public.html 의 인스턴스 생성 결과와 다름)
      이 부분에 대한 해결 방법을 알고 계시면 답변 부탁드립니다.

    • 게스트 썸네일
      2016.02.17 16:42 신고

      task_state와 vm_state가 걱정이네요 저상태라면 compute와 controller(network)간에 원활한통신이 안되는것 같은데 아마 네트워크쪽에 문제가 있을것으로 추측합니다...
      뭔가 잘 안되는게 있네요, 저는 이 게시물 시리즈 따라서 설치한게 몇번되는데.. 아마 처음부터 다시 검토해봐야 할 것 같습니다. 피드백 감사합니다^^;;

    • 게스트 썸네일
      인스턴스 생성 문의
      2016.02.24 17:40 신고

      상호 ping 은 정상적으로 수행되며, controller에서 compute로 ssh 접속도 가능합니다.
      블로그에 나와있는 네트워크 구성 정보 외에 compute와 controller간에 사용하는 특별히 설정해야 하는 네트워킹 정보가 있습니까?

    • 게스트 썸네일
      2016.02.25 11:39 신고

      안녕하세요, 오픈스택에 관심이 많으신분 같아 반갑습니다^^
      이 문제와 관련하여 이번 주말내로 오픈스택 설치글을 재검토 할 예정입니다.
      그전에, 필요하시다면 제가 사용했던 VM 이미지를 공유드리니 이것으로 진행해보시기를 부탁드립니다 => http://me2.do/5ZrbwujS

      http://frontjang.info/648 에서 "1. 기본 프로그램 설치(python-openstackclient chrony) 및 네트워크 인터페이스 설정" 부분 까지 진행 완료된 VM 이미지입니다. VM import 두번하셔서 각각 controller, compute 로 구성하시면 됩니다.

    • 게스트 썸네일
      초보
      2016.03.15 15:36 신고

      controller, compute노드의 nova.conf에
      [DEFAULT]
      ...
      vif_plugging_timeout = 0
      추가하고 nova 재시작 후 다시 해서 성공했습니다.

    • 게스트 썸네일
      2016.07.01 11:20 신고

      좋은 정보 감사합니다~

  • 게스트 썸네일
    핑문의
    2016.07.15 17:21 신고

    안녕하세요. 1-4. 가상 라우터 확인 까진 잘 진행이 되었는데요~
    검증 과정에서 핑을 날려봐도 응답이 오지 않더라구요.
    네트워크 구성도 완전히 똑같이 되어 있습니다.
    혹시 핑이 원래 응답이 오질 않나요?

    • 게스트 썸네일
      2016.07.22 09:10 신고

      네 공식 매뉴얼에는 저 과정이 있지만 잘 안되더라구요..
      계속 진행해도 지장없길래 대신 취소선을 그려놓았어요^^;;

  • 게스트 썸네일
    ping
    2016.07.28 21:28 신고

    private instance를 생성하고 floating ip를 생성한다음에 인스턴스에 floatingip를 할당해서 줬습니다.
    인스턴스에 vnc로 접속해서 외부 인터넷으로 ping을 날리면 응답이 없습니다.
    혹시 유동아이피를 인스턴스에 할당한 이후에 해야하는 작업이 있나요?

  • 게스트 썸네일
    ping
    2016.07.28 21:28 신고

    private instance를 생성하고 floating ip를 생성한다음에 인스턴스에 floatingip를 할당해서 줬습니다.
    인스턴스에 vnc로 접속해서 외부 인터넷으로 ping을 날리면 응답이 없습니다.
    혹시 유동아이피를 인스턴스에 할당한 이후에 해야하는 작업이 있나요?

  • 게스트 썸네일
    ping
    2016.07.28 21:28 신고

    private instance를 생성하고 floating ip를 생성한다음에 인스턴스에 floatingip를 할당해서 줬습니다.
    인스턴스에 vnc로 접속해서 외부 인터넷으로 ping을 날리면 응답이 없습니다.
    혹시 유동아이피를 인스턴스에 할당한 이후에 해야하는 작업이 있나요?

  • 게스트 썸네일
    ping
    2016.07.28 21:28 신고

    private instance를 생성하고 floating ip를 생성한다음에 인스턴스에 floatingip를 할당해서 줬습니다.
    인스턴스에 vnc로 접속해서 외부 인터넷으로 ping을 날리면 응답이 없습니다.
    혹시 유동아이피를 인스턴스에 할당한 이후에 해야하는 작업이 있나요?

  • 게스트 썸네일
    ping
    2016.07.28 21:28 신고

    private instance를 생성하고 floating ip를 생성한다음에 인스턴스에 floatingip를 할당해서 줬습니다.
    인스턴스에 vnc로 접속해서 외부 인터넷으로 ping을 날리면 응답이 없습니다.
    혹시 유동아이피를 인스턴스에 할당한 이후에 해야하는 작업이 있나요?

    • 게스트 썸네일
      2016.10.04 19:20 신고

      딱히 추가로 할건 없습니다. 가상라우터쪽을 다시 확인해보시면 어떨까 생각합니다

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.

티스토리 툴바