맥에서 virtualbox(5.1.6)를 설치해서 오픈 스택을 구성하기 위해 ubuntu OS(16.04-64)를 설치하던 중에
virtualbox에서 guest OS 설치할 때 호스트 전용 어댑터를 못찾을 수 있다.
VirtuBox-일반설정-네트워크-호스트 전용 네트워크 를 보면, 비어 있다.
창 오른쪽에 +네트워크카드를 선택하면 vboxnet0을 생성할 수 있다.
-네트워크카드를 선택하면 선택한 네트워크 카드를 삭제할 수 있다.
곤봉 아이콘을 선택하면 어댑터/DHCP 정보가 나타난다.
어댑터의 IP는 192.168.56.1/255.255.255.0으로 나타나고, DHCP 서버는 192.168.56.100이고 서버마스크는 255.255.255.0이며 주소의 한계는 192.168.56.101~192.168.56.254로 나타난다. (잘 기억하자!)
VirtuBox-일반설정-네트워크-NAT 네트워크 를 보면, 비어 있다.
호스트 전용 네트워크처럼 하나의 네트워크 카드를 추가한다. NatNetwork를 설정한다. 나중에 도움이 될 수 있다.
vboxnet0을 생성한 후, guestOS를 셋팅한다.
guest OS- 설정-네트워크-어댑터1에서
호스트 전용 어댑터로 설정하고 이름은 이전에 설정한 vobxnet0로 연결할 수 있다. 무작위 모드는 모두 허용으로 한다.
추후 enp0s3이고 내부용 네트워크이다.
guest OS- 설정-네트워크-어댑터2에서
브리지 어댑터로 설정하고 en0:WI-FI(AirPort)로 설정하고 무작위 모드는 모두 허용으로 한다.
추후 enp0s8이고 외부용 네트워크이다.
(환경에 따라 사실 잘 동작되지 않을 수 있고, 언젠가는 되겠지 하며 접근해보았다. 안되도 openstack에는 영향이 없다.)
어댑터2가 동작되지 않을 수 있는 환경을 대비해
guest OS- 설정-네트워크-어댑터3에서 NAT 어댑터를 설정한다.
이제, guest OS(ubuntu)를 실행시켜 설치한다.
네트워크를 작업한다. enp0s8은 사설 네트워크에서는 잘 동작할 수 있지만, 특정 상황에서는 잘 동작되지 않을 수 있다. 이 때는 enp0s9 (이전에 설정한 NAT 네트워크의 도움을 받으면서 진행할 수 있다)
$ sudo vi /etc/network/interfaces
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto enp0s3
iface enp0s3 inet dhcp
auto enp0s8
iface enp0s8 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
네트워킹 데몬을 초기화한다.
$ sudo systemctl restart networking
역시 enp0s8은 잘 동작하지 않는다. 하지만 어차피 내부는 동작하니까. 그대로 진행해 본다.
enps0s3과 enps0s8은 각각 다음과 같이 정해졌다.
$ ifconfig
..
enp0s3 inet addr:192.168.56.102
..
호스트 OS(맥)에서 게스트 OS(우분투)가 정상적인지 ping 을 실행해 본다.
$ ping 192.168.56.1
$ ping 192.168.56.102
우분투에서 ssh server를 설치 / 실행한다.
(The following packages have unmet dependencies: 에러가 나오면 update를 실행하면 된다)
$ sudo apt-get update
$ sudo apt-get install openssh-server
$ sudo systemctl enable ssh
$ sudo systemctl start ssh
호스트 OS(맥)에서 게스트 OS(우분투) 22번 포트로 접근한다.
$ ssh -l samuel 192.168.56.102
The authenticity of host '192.168.56.102 (192.168.56.102)' can't be established.
ECDSA key fingerprint is SHA256:QZzP8QStApL95hXVI1C8+KLDCeJqfYyynJcMDQf0tzw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.102' (ECDSA) to the list of known hosts.
samuel@192.168.56.102's password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
93 packages can be updated.
58 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
samuel@samuel-VirtualBox:~$
git을 설치한다.
$ sudo su
$ sudo apt-get install git
stack이라는 사용자 계정을 만든다. useradd 써도 된다.
$ git clone https://git.openstack.org/openstack-dev/devstack
$ devstack/tools/create-stack-user.sh
$ echo "stack ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
stack 계정으로 접근해서 devstack를 체크아웃받고 local.conf 파일을 수정하고 stack.sh를 실행한다.
$ su stack
$ cd /home/stack
$ apt-get update
$ git clone https://git.openstack.org/openstack-dev/devstack
$ cd devstack/
$ cp samples/local.conf local.conf
$ vi local.conf
HOST_IP=127.0.0.1
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=openstack
RABBIT_PASSWORD=openstack
SERVICE_PASSWORD=openstack
$ ./stack.sh
2017.9.5 일자 master 버전으로는 문제가 없이 동작한다.
=========================
DevStack Component Timing
=========================
Total runtime 1292
run_process 33
test_with_retry 3
apt-get-update 8
pip_install 247
osc 191
wait_for_service 30
git_timed 233
dbsync 19
apt-get 91
=========================
This is your host IP address: 127.0.0.1
This is your host IPv6 address: ::1
Horizon is now available at http://127.0.0.1/dashboard
Keystone is serving at http://127.0.0.1/identity/
The default users are: admin and demo
The password: openstack
WARNING:
Using lib/neutron-legacy is deprecated, and it will be removed in the future
Services are running under systemd unit files.
For more information see:
https://docs.openstack.org/devstack/latest/systemd.html
DevStack Version: pike
Change: 037d70a75c55035445a9533191e52a759e697348 Merge "Replace http with https for doc links in devstack's document" 2017-09-04 04:49:19 +0000
OS Version: Ubuntu 16.04 xenial
대시보드를 실행해본다.
http://192.168.56.102/dashboard
로그에 나와 있듯이 admin/openstack으로 접근한다.
로그인 하면 다음 화면이 나온다.
내부에 무엇이 바뀌었나 봤더니.. 네트워크 디바이스가 추가되었다.
$ip addr
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
7: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
8: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
9: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
10: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
open swtich 가상 네트워크를 살펴본다.
$ sudo ovs-vsctl show
46131da2-9a7a-4daf-8930-be13fa42b951
Manager "ptcp:6640:127.0.0.1"
is_connected: true
Bridge br-int
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port "qg-a29d6f1e-73"
tag: 2
Interface "qg-a29d6f1e-73"
type: internal
Port "tap65add5ed-61"
tag: 1
Interface "tap65add5ed-61"
type: internal
Port "qr-5732dad9-2d"
tag: 1
Interface "qr-5732dad9-2d"
type: internal
Port int-br-ex
Interface int-br-ex
type: patch
options: {peer=phy-br-ex}
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "qr-000ed957-83"
tag: 1
Interface "qr-000ed957-83"
type: internal
Port br-int
Interface br-int
type: internal
Bridge br-tun
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port br-tun
Interface br-tun
type: internal
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Bridge br-ex
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port phy-br-ex
Interface phy-br-ex
type: patch
options: {peer=int-br-ex}
Port br-ex
Interface br-ex
type: internal
ovs_version: "2.6.1"
가상 라우터와 가상 dhcp를 확인한다.
$ sudo ip netns show
qrouter-fbbc5c05-4373-4dfa-8ac8-e2d34442496c
qdhcp-59013e3c-0a59-4e18-8e5a-2a463dbeae1a
가상 라우터와 가상 hdcp id로 환경을 살펴본다.
가상 라우터에 할당된 네트워크와 ip를 확인할 수 있다.
$ sudo ip netns exec qrouter-fbbc5c05-4373-4dfa-8ac8-e2d34442496c ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
qg-a29d6f1e-73 Link encap:Ethernet HWaddr fa:16:3e:54:5f:05
inet addr:172.24.4.5 Bcast:172.24.4.255 Mask:255.255.255.0
inet6 addr: 2001:db8::1/64 Scope:Global
inet6 addr: fe80::f816:3eff:fe54:5f05/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:51 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8457 (8.4 KB) TX bytes:2418 (2.4 KB)
qr-000ed957-83 Link encap:Ethernet HWaddr fa:16:3e:d6:08:52
inet addr:10.0.0.1 Bcast:10.0.0.63 Mask:255.255.255.192
inet6 addr: fe80::f816:3eff:fed6:852/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1
RX packets:26 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2736 (2.7 KB) TX bytes:998 (998.0 B)
qr-5732dad9-2d Link encap:Ethernet HWaddr fa:16:3e:c1:d3:1b
inet6 addr: fe80::f816:3eff:fec1:d31b/64 Scope:Link
inet6 addr: fd6c:40e8:796f::1/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:477 (477.0 B) TX bytes:3972 (3.9 KB)
가상 dhcp는 10.0.0.2로 매핑되어 있다.
$ sudo ip netns exec qdhcp-59013e3c-0a59-4e18-8e5a-2a463dbeae1a ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tap65add5ed-61 Link encap:Ethernet HWaddr fa:16:3e:d6:06:c5
inet addr:10.0.0.2 Bcast:10.0.0.63 Mask:255.255.255.192
inet6 addr: fe80::f816:3eff:fed6:6c5/64 Scope:Link
inet6 addr: fd6c:40e8:796f:0:f816:3eff:fed6:6c5/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1
RX packets:37 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3504 (3.5 KB) TX bytes:802 (802.0 B)
http://192.168.56.102/dashboard/admin/networks/에서 private, public 영역을 보면서 서브넷 환경을 알 수 있다.
http://192.168.56.102/dashboard/admin/routers/에 접근하면. 라우터 정보도 볼 수 있다.
http://192.168.56.102/dashboard/project/instances/에서 인스턴스를 생성한다.
그리고 실제 네트워크 토폴리지(http://192.168.56.102/dashboard/project/network_topology/)를 살펴본다.
인스턴스를 생성한 다음
floating IP를 설정하고 새로 생성한
생성한 인스턴스에 floating ip가 만들어진지 확인했다.
참조
'Cloud' 카테고리의 다른 글
[openstack] ceph DR (disaster recovery) (0) | 2017.10.12 |
---|---|
Apache NIFI (0) | 2017.09.12 |
[openstack] Rally + Tempest (0) | 2017.09.02 |
[etcd] etcd 설치와 간단 예제 (0) | 2017.08.23 |
fluent-plugin-extract_query_params (0) | 2017.08.23 |