[ Neutron Server 시작 ]
neutron-server --config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/plugins/ml2/ml2_conf.ini --log-file=/var/log/neutron/neutron-server.log
[ nova boot 명령어 ]
nova boot test01 --flavor 1 --image 10f9779f-b67d-45dc-ac9b-cf6a30f88b59 --nic net-id=0a4c3188-3500-45a4-83f6-416e686d645e
[ vxlan 연결 여부 확인 ]
sudo ovs-ofctl show br-tun
[ controller node 의 neutron.conf 세팅 ]
nova_admin_tenant_id = service # 이름이 아니라 tenant-id 를 넣어야 함
[ net 을 제거하는 순서 ]
1. router 와 subnet 의 인터페이스 제거
neutron router-interface-delete [router-id] [subnet-id]
2. subnet 삭제
neutron subnet-delete [subnet-id]
3. net 삭제
neutron net-delete [net-id]
[ net 을 생성할 때 vxlan 으로 생성 ]
neutron net-create demo-net --provider:network_type vxlan
[ security rule 등록 ]
neutron security-group-rule-create --protocol icmp --direction ingress default
neutron security-group-rule-create --protocol tcp --port-range-min 22 --port-range-max 22 --direction ingress default
[ route gw 등록 ]
route add -net "0.0.0.0/0" gw "10.0.0.1"
[ MTU 세팅 ]
1. /etc/network/interfaces 파일에 세팅
auto eth2
iface eth2 inet static
address 192.168.200.152
netmask 255.255.255.0
mtu 9000
$ sudo ifdown eth2
$ sudo ifup eth2
2. 동적으로 세팅 (리부팅 필요)
ifconfig eth2 mtu 9000
reboot
[ floatingip 추가 ]
$ neutron floatingip-create ext-net
$ neutron floatingip-associate [floatingip-id] [fixedip-port-id]
[ pip 으로 설치할 수 있게 배포판 만들기 ]
$ sudo python setup.py sdist --formats=gztar
[ metadata 서비스 ]
1. metadata-agent 와 neutron-ns-metadata-proxy 는 네트워크 노드에 있으면 됨.
compute-node 는 필요없음
compute 의 vm 이 network node 의 qdhcp 를 gateway로 보고 호출함
2. controller 노드의 /etc/nova/nova.conf 수정
[neutron]
service_metadata_proxy=True
3. network 노드와 compute 노드의 /etc/neutron/metadata_agent.ini 수정
auth_region = regionOne # RegionOne 으로 쓰면 에러
[ cirros vm 안에서]
$ wget http://169.254.169.254/latest/meta-data/instance-id
cat /etc/nova/nova.conf | grep -v ^# | grep -v ^$ | grep metadata
cat /etc/neutron/metadata_agent.ini | grep -v ^# | grep -v ^$ | grep metadata
cat /etc/neutron/l3_agent.ini | grep -v ^# | grep -v ^$
[ controller 노드에서 metadata 바로 호출하기 ]
curl \
-H 'x-instance-id: e9b12a36-ae7a-4d2c-be03-319655789927' \
-H 'x-tenant-id: 7d7c68c1d33f4ffb8a7c5bca770e394c' \
-H 'x-instance-id-signature: 80f2d3ed5615bc93ccd7800e58780ba3fa754763ad0b2574240b8d4699bb254f' \
http://localhost:8775/latest/meta-data
[ x-instance-id-signature 구하기 ]
>>> import hmac
>>> import hashlib
>>> hmac.new('opensack', 'e9b12a36-ae7a-4d2c-be03-319655789927', hashlib.sha256).hexdigest()
'80f2d3ed5615bc93ccd7800e58780ba3fa754763ad0b2574240b8d4699bb254f'
>>>
[ neutron server init script ]
1. /etc/init.d/neutron-server 에 파일 복사한 것 삭제
2. sudo vi /etc/init/neutron-server.conf
# vim:set ft=upstart ts=2 et:
description "Neutron API Server"
author "Chuck Short <zulcss@ubuntu.com>"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
chdir /var/run
script
[ -r /etc/default/neutron-server ] && . /etc/default/neutron-server
exec start-stop-daemon --start --chuid stack --exec /usr/local/bin/neutron-server -- \
--config-file /etc/neutron/neutron.conf \
--config-file=/etc/neutron/plugins/ml2/ml2_conf.ini \
--log-file /var/log/neutron/neutron-server.log $CONF_ARG
end script