共计 14186 个字符,预计需要花费 36 分钟才能阅读完成。
安装前,推荐安装一个全新的 Ubuntu Server 14.04,如果使用之前的 Ubuntu,中间可能遇到各种的 Python 包依赖,以及软件版本不对应的问题
- 环境准备,新建 stack 用户,给予 sudo 权限,更新系统软件包
1 # add user 'stack' | |
2 sudo su | |
3 useradd -m -p welcome -s /bin/bash stack | |
4 # add sudo previledge | |
5 sudo su | |
6 # Modify /etc/sudoers | |
7 cat >>/etc/sudoers <<'EOF' | |
8 | |
9 stack ALL=(ALL) NOPASSWD: ALL | |
10 Defaults:stack !requiretty | |
11 EOF | |
12 | |
13 exit | |
14 | |
15 | |
16 # Update software respository cache | |
17 sudo apt-get install -y python-software-properties | |
18 sudo add-apt-repository cloud-archive:juno | |
19 sudo apt-get update -y && sudo apt-get dist-upgrade -y | |
20 sudo shutdown -r now |
- 下载 devstack,配置 local.conf
# install git download devstacksudo apt-get install -qqy git | |
git clone http://www.github.com/openstack-dev/devstack.git | |
cd devstack | |
touch local.conf | |
vim local.conf | |
#place following in local.conf, change the HOST_IP and SERVICE_HOST to the IP of eth0 | |
[[local|localrc]] | |
HOST_IP=192.168.20.140 | |
SERVICE_HOST=192.168.20.140 | |
ADMIN_PASSWORD=welcome | |
DATABASE_PASSWORD=$ADMIN_PASSWORD | |
RABBIT_PASSWORD=$ADMIN_PASSWORD | |
SERVICE_PASSWORD=$ADMIN_PASSWORD | |
SERVICE_TOKEN=$ADMIN_PASSWORD | |
DEST=/opt/stack | |
LOGFILE=$DEST/logs/stack.sh.log | |
SCREEN_LOGDIR=$DEST/logs/screen | |
OFFLINE=False | |
RECLONE=True | |
LOG_COLOR=False | |
disable_service horizon | |
enable_service q-svc | |
enable_service q-agt | |
enable_service q-dhcp | |
enable_service q-l3 | |
enable_service q-meta | |
enable_service neutron | |
disable_service n-net | |
disable_service tempest | |
disable_service h-eng,h-api,h-api-cfn,h-api-cw | |
PHYSICAL_NETWORK=physnet1 | |
FIXED_RANGE=192.168.106.0/24 | |
FIXED_NETWORK_SIZE=32 | |
NETWORK_GATEWAY=192.168.106.1 | |
[[post-config|/$Q_PLUGIN_CONF_FILE]] | |
[ml2] | |
tenant_network_types = vlan | |
[ml2_type_vlan] | |
network_vlan_ranges = physnet1:100:110 | |
[ovs] | |
bridge_mappings = physnet1:br-eth1 | |
enable_tunneling = False |
- 启动安装 devstack
# 由于国内对 git 可能进行了 block,所以如果不能访问 git:这种地址,可以换成 http:的试试 sed -i 's|GIT_BASE:-git://git.openstack.org|GIT_BASE:-http://git.openstack.org|' stackrc
cd ~/devstack | |
./stack.sh |
- 配置虚拟网桥
#add br-eth1 add connect with eth1 | |
sudo ovs-vsctl add-br br-eth1 | |
sudo ovs-vsctl --may-exist add-port br-eth1 eth1 | |
# set eth1 to promisc mode, so that it can pass any package in L2 | |
sudo ip link set dev eth1 promisc on | |
sudo ip addr flush eth1 | |
sudo ip link set dev eth1 up |
这样一个带 neutron 的 devstack 环境就架设好了,这个过程我想不会顺利,devstack/openstack 时常在更新,所以每天都会有不同的问题,大家如果安装遇到问题,可以留言讨论,当然如果文档有问题,也烦请指出。
下面是小编为你精选的 Openstack 相关知识,看看是否有你喜欢的 :
在 Ubuntu 12.10 上安装部署 Openstack http://www.linuxidc.com/Linux/2013-08/88184.htm
Ubuntu 12.04 OpenStack Swift 单节点部署手册 http://www.linuxidc.com/Linux/2013-08/88182.htm
OpenStack 云计算快速入门教程 http://www.linuxidc.com/Linux/2013-08/88186.htm
企业部署 OpenStack:该做与不该做的事 http://www.linuxidc.com/Linux/2013-09/90428.htm
CentOS 6.5 x64bit 快速安装 OpenStack http://www.linuxidc.com/Linux/2014-06/103775.htm
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2016-01/127509p2.htm
在前面的文章中,已经完成了 devstack 的安装。下面,我会介绍如何使用 neutron
- 首先创建两个 neutron net, vmnet1 和 vmnet2
stack@Ubuntu:~/devstack$ source openrc admin admin | |
stack@ubuntu:~/devstack$ neutron net-list | |
+--------------------------------------+---------+-------------------------------------------------------+ | |
| id | name | subnets | | |
+--------------------------------------+---------+-------------------------------------------------------+ | |
| 5365b56f-9544-40d4-b065-a9d50126b55b | private | fc3a839e-412c-4f0d-b1ed-87be1a7b0bf8 192.168.106.0/24 | | |
| a101e11f-7bbe-4f4d-a52e-5bb312d5f8b9 | public | 570e8b64-8332-41f7-8780-12d9bc54f195 172.24.4.0/24 | | |
+--------------------------------------+---------+-------------------------------------------------------+ | |
stack@ubuntu:~/devstack$ neutron net-create vmnet1 | |
Created a new network: | |
+---------------------------+--------------------------------------+ | |
| Field | Value | | |
+---------------------------+--------------------------------------+ | |
| admin_state_up | True | | |
| id | 54028daa-9158-4fc7-9f97-d400dc801e97 | | |
| name | vmnet1 | | |
| provider:network_type | vlan | | |
| provider:physical_network | physnet1 | | |
| provider:segmentation_id | 352 | | |
| router:external | False | | |
| shared | False | | |
| status | ACTIVE | | |
| subnets | | | |
| tenant_id | dcf6685a3e304e4c92af08bca762aa33 | | |
+---------------------------+--------------------------------------+ | |
stack@ubuntu:~/devstack$ neutron net-create vmnet2 | |
Created a new network: | |
+---------------------------+--------------------------------------+ | |
| Field | Value | | |
+---------------------------+--------------------------------------+ | |
| admin_state_up | True | | |
| id | 7b0394ec-34c0-48d3-a17d-82ef9bbc2cd9 | | |
| name | vmnet2 | | |
| provider:network_type | vlan | | |
| provider:physical_network | physnet1 | | |
| provider:segmentation_id | 353 | | |
| router:external | False | | |
| shared | False | | |
| status | ACTIVE | | |
| subnets | | | |
| tenant_id | dcf6685a3e304e4c92af08bca762aa33 | | |
+---------------------------+--------------------------------------+ | |
stack@ubuntu:~/devstack$ neutron net-list | |
+--------------------------------------+---------+-------------------------------------------------------+ | |
| id | name | subnets | | |
+--------------------------------------+---------+-------------------------------------------------------+ | |
| 5365b56f-9544-40d4-b065-a9d50126b55b | private | fc3a839e-412c-4f0d-b1ed-87be1a7b0bf8 192.168.106.0/24 | | |
| a101e11f-7bbe-4f4d-a52e-5bb312d5f8b9 | public | 570e8b64-8332-41f7-8780-12d9bc54f195 172.24.4.0/24 | | |
| 54028daa-9158-4fc7-9f97-d400dc801e97 | vmnet1 | | | |
| 7b0394ec-34c0-48d3-a17d-82ef9bbc2cd9 | vmnet2 | | | |
+--------------------------------------+---------+-------------------------------------------------------+ |
- 现在两个网络就创建好了,但现在其实这是两个独立的网络,是不互通的,接下来创建 router:router-vmnet1-vmnet2
stack@ubuntu:~/devstack$ neutron router-create router-vmnet1-vmnet2 | |
Created a new router: | |
+-----------------------+--------------------------------------+ | |
| Field | Value | | |
+-----------------------+--------------------------------------+ | |
| admin_state_up | True | | |
| distributed | False | | |
| external_gateway_info | | | |
| ha | False | | |
| id | 4bef86df-3b13-4b23-80f0-3a2bd8d0c746 | | |
| name | router-vmnet1-vmnet2 | | |
| routes | | | |
| status | ACTIVE | | |
| tenant_id | dcf6685a3e304e4c92af08bca762aa33 | | |
+-----------------------+--------------------------------------+ |
- 在 vmnet1 和 vmnet2 中,分别创建 subnet
stack@ubuntu:~/devstack$ neutron subnet-create 54028daa-9158-4fc7-9f97-d400dc801e97 30.30.30.0/24 | |
Created a new subnet: | |
+-------------------+------------------------------------------------+ | |
| Field | Value | | |
+-------------------+------------------------------------------------+ | |
| allocation_pools | {"start": "30.30.30.2", "end": "30.30.30.254"} | | |
| cidr | 30.30.30.0/24 | | |
| dns_nameservers | | | |
| enable_dhcp | True | | |
| gateway_ip | 30.30.30.1 | | |
| host_routes | | | |
| id | c0be451f-91a1-4f9f-a29b-13adea79798e | | |
| ip_version | 4 | | |
| ipv6_address_mode | | | |
| ipv6_ra_mode | | | |
| name | | | |
| network_id | 54028daa-9158-4fc7-9f97-d400dc801e97 | | |
| tenant_id | dcf6685a3e304e4c92af08bca762aa33 | | |
+-------------------+------------------------------------------------+ | |
stack@ubuntu:~/devstack$ neutron subnet-create 7b0394ec-34c0-48d3-a17d-82ef9bbc2cd9 40.40.40.0/24 | |
Created a new subnet: | |
+-------------------+------------------------------------------------+ | |
| Field | Value | | |
+-------------------+------------------------------------------------+ | |
| allocation_pools | {"start": "40.40.40.2", "end": "40.40.40.254"} | | |
| cidr | 40.40.40.0/24 | | |
| dns_nameservers | | | |
| enable_dhcp | True | | |
| gateway_ip | 40.40.40.1 | | |
| host_routes | | | |
| id | 0b9c9ad8-3309-4c96-afda-ecb7e53dc519 | | |
| ip_version | 4 | | |
| ipv6_address_mode | | | |
| ipv6_ra_mode | | | |
| name | | | |
| network_id | 7b0394ec-34c0-48d3-a17d-82ef9bbc2cd9 | | |
| tenant_id | dcf6685a3e304e4c92af08bca762aa33 | | |
+-------------------+------------------------------------------------+ |
- 接下来,给 router 加入 interface,分别连接到 vmnet1 的 subnet 和 vmnet2 的 subnet
stack@ubuntu:~/devstack$ neutron router-interface-add 4bef86df-3b13-4b23-80f0-3a2bd8d0c746 subnet=c0be451f-91a1-4f9f-a29b-13adea79798e | |
Added interface 8fc6f138-150c-47de-8c88-fa924ce2302d to router 4bef86df-3b13-4b23-80f0-3a2bd8d0c746. | |
stack@ubuntu:~/devstack$ neutron router-interface-add 4bef86df-3b13-4b23-80f0-3a2bd8d0c746 subnet=0b9c9ad8-3309-4c96-afda-ecb7e53dc519 | |
Added interface 4e830e98-e24b-45dd-bc6e-338e47b31b1b to router 4bef86df-3b13-4b23-80f0-3a2bd8d0c746. |
- 然后,我们看,Linux 网络配置上的变化,首先是 network namespace,你会发现名为 qrouter-4bef86df-3b13-4b23-80f0-3a2bd8d0c746 的 Linux Namespace 创建成功
- 上图的 qr-4e830e98-e2 和 qr-8fc6f138-15,可以理解为 vmnet1 和 vmnet2 的 gateway,同时它们也都连接在 ovs 的 br-int bridge 上,如下:
- 接下来,我要在 vmnet1 和 vmnet2 上分别创建一个 virtual machine instance,看看 openstack neutron 中发生了什么!
stack@ubuntu:~/devstack$ ping 30.30.30.2 | |
PING 30.30.30.2 (30.30.30.2) 56(84) bytes of data. | |
^C | |
--- 30.30.30.2 ping statistics --- | |
4 packets transmitted, 0 received, 100% packet loss, time 3000ms | |
stack@ubuntu:~/devstack$ ping 40.40.40.2 | |
PING 40.40.40.2 (40.40.40.2) 56(84) bytes of data. | |
^C | |
--- 40.40.40.2 ping statistics --- | |
4 packets transmitted, 0 received, 100% packet loss, time 3000ms |
- 你可以这样在主机上 ssh 到 vm 上,这里我们以 ssh 到 vm1 为例:首先确定 vm1 所在的 network 为 vmnet1,vmnet1 对应的 namespace 为 qdhcp-54028daa-9158-4fc7-9f97-d400dc801e97,然后
ip netns exec qqdhcp-54028daa-9158-4fc7-9f97-d400dc801e97 ssh cirros@30.30.30.2
密码为 cubswin:)
这样一个基于 neutron network 的 devstack 环境就搭建好了,大家有兴趣的话,可以一起探讨关于 neutron 跟多的东西,推荐大家几篇 Oracle 上的文章,讲的深入浅出的,很不错
https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture
https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture1
https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture2
https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3
https://blogs.oracle.com/ronen/entry/running_openstack_icehouse_with_zfs
更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-01/127509.htm
安装前,推荐安装一个全新的 Ubuntu Server 14.04,如果使用之前的 Ubuntu,中间可能遇到各种的 Python 包依赖,以及软件版本不对应的问题
- 环境准备,新建 stack 用户,给予 sudo 权限,更新系统软件包
1 # add user 'stack' | |
2 sudo su | |
3 useradd -m -p welcome -s /bin/bash stack | |
4 # add sudo previledge | |
5 sudo su | |
6 # Modify /etc/sudoers | |
7 cat >>/etc/sudoers <<'EOF' | |
8 | |
9 stack ALL=(ALL) NOPASSWD: ALL | |
10 Defaults:stack !requiretty | |
11 EOF | |
12 | |
13 exit | |
14 | |
15 | |
16 # Update software respository cache | |
17 sudo apt-get install -y python-software-properties | |
18 sudo add-apt-repository cloud-archive:juno | |
19 sudo apt-get update -y && sudo apt-get dist-upgrade -y | |
20 sudo shutdown -r now |
- 下载 devstack,配置 local.conf
# install git download devstacksudo apt-get install -qqy git | |
git clone http://www.github.com/openstack-dev/devstack.git | |
cd devstack | |
touch local.conf | |
vim local.conf | |
#place following in local.conf, change the HOST_IP and SERVICE_HOST to the IP of eth0 | |
[[local|localrc]] | |
HOST_IP=192.168.20.140 | |
SERVICE_HOST=192.168.20.140 | |
ADMIN_PASSWORD=welcome | |
DATABASE_PASSWORD=$ADMIN_PASSWORD | |
RABBIT_PASSWORD=$ADMIN_PASSWORD | |
SERVICE_PASSWORD=$ADMIN_PASSWORD | |
SERVICE_TOKEN=$ADMIN_PASSWORD | |
DEST=/opt/stack | |
LOGFILE=$DEST/logs/stack.sh.log | |
SCREEN_LOGDIR=$DEST/logs/screen | |
OFFLINE=False | |
RECLONE=True | |
LOG_COLOR=False | |
disable_service horizon | |
enable_service q-svc | |
enable_service q-agt | |
enable_service q-dhcp | |
enable_service q-l3 | |
enable_service q-meta | |
enable_service neutron | |
disable_service n-net | |
disable_service tempest | |
disable_service h-eng,h-api,h-api-cfn,h-api-cw | |
PHYSICAL_NETWORK=physnet1 | |
FIXED_RANGE=192.168.106.0/24 | |
FIXED_NETWORK_SIZE=32 | |
NETWORK_GATEWAY=192.168.106.1 | |
[[post-config|/$Q_PLUGIN_CONF_FILE]] | |
[ml2] | |
tenant_network_types = vlan | |
[ml2_type_vlan] | |
network_vlan_ranges = physnet1:100:110 | |
[ovs] | |
bridge_mappings = physnet1:br-eth1 | |
enable_tunneling = False |
- 启动安装 devstack
# 由于国内对 git 可能进行了 block,所以如果不能访问 git:这种地址,可以换成 http:的试试 sed -i 's|GIT_BASE:-git://git.openstack.org|GIT_BASE:-http://git.openstack.org|' stackrc
cd ~/devstack | |
./stack.sh |
- 配置虚拟网桥
#add br-eth1 add connect with eth1 | |
sudo ovs-vsctl add-br br-eth1 | |
sudo ovs-vsctl --may-exist add-port br-eth1 eth1 | |
# set eth1 to promisc mode, so that it can pass any package in L2 | |
sudo ip link set dev eth1 promisc on | |
sudo ip addr flush eth1 | |
sudo ip link set dev eth1 up |
这样一个带 neutron 的 devstack 环境就架设好了,这个过程我想不会顺利,devstack/openstack 时常在更新,所以每天都会有不同的问题,大家如果安装遇到问题,可以留言讨论,当然如果文档有问题,也烦请指出。
下面是小编为你精选的 Openstack 相关知识,看看是否有你喜欢的 :
在 Ubuntu 12.10 上安装部署 Openstack http://www.linuxidc.com/Linux/2013-08/88184.htm
Ubuntu 12.04 OpenStack Swift 单节点部署手册 http://www.linuxidc.com/Linux/2013-08/88182.htm
OpenStack 云计算快速入门教程 http://www.linuxidc.com/Linux/2013-08/88186.htm
企业部署 OpenStack:该做与不该做的事 http://www.linuxidc.com/Linux/2013-09/90428.htm
CentOS 6.5 x64bit 快速安装 OpenStack http://www.linuxidc.com/Linux/2014-06/103775.htm
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2016-01/127509p2.htm
