立即注册
登录
About云-梭伦科技
返回首页
pig2的个人空间
https://www.aboutyun.com/?61
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
首页
Portal
专题
BBS
面试
办公|编程助手
更多
我的空间
好友
帖子
收藏
道具
勋章
任务
动态
日志
相册
分享
记录
留言板
群组
导读
日志
openstack【juno】入门 【网络篇】十五:neutron安装部署(控制节点)
热度
1
已有 2719 次阅读
2015-2-26 17:53
http://www.aboutyun.com/thread-11556-1-1.html
问题导读
1.neutron
什么时候同步数据库,与其它组件有什么不同?
2.keystone tenant-get service作用是什么?
3.本文都配置了哪些网络插件?
接上一篇
openstack【juno】入门 【网络篇】十四:neutron介绍
在安装配置openstack neutron之前,需要创建数据库、服务认证、 API endpoints.
安装准备
1.创建数据库
a.登录mysql
mysql -u root -p
b.创建 neutron 数据库:
CREATE DATABASE neutron;
c.授权
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
IDENTIFIED BY 'NEUTRON_DBPASS';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
IDENTIFIED BY 'NEUTRON_DBPASS';
d.推出mysql
exit
2.环境变量生效
source admin-openrc.sh
内容为
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v2.0
3.创建服务凭证
a.创建neutron用户:
keystone user-create --name neutron --pass NEUTRON_PASS
b.给neutron用户授予admin角色
keystone user-role-add --user neutron --tenant service --role admin
没有输出
c.创建neutron 服务实例
keystone service-create --name neutron --type network \
--description "OpenStack Networking"
4.创建网路服务 API endpoints:
keystone endpoint-create \
--service-id $(keystone service-list | awk '/ network / {print $2}') \
--publicurl http://controller:9696 \
--adminurl http://controller:9696 \
--internalurl http://controller:9696 \
--region regionOne
安装网络组件
安装组件
apt-get install neutron-server neutron-plugin-ml2 python-neutronclient
配置网络服务组件
网络服务器组件配置包括数据库,认证机制,消息代理,拓扑改变报警,和插件。
编辑文件 /etc/neutron/neutron.conf,完成下面下面配置
sudo nano /etc/neutron/neutron.conf
a.在 [database] 部分, 配置数据库访问:
[database]
...
connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron
b.在 [DEFAULT] 部分, 配置 RabbitMQ 消息代理访问:
[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
c.在 [DEFAULT] 和 [keystone_authtoken] 部分,配置认证服务
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = neutron
admin_password = NEUTRON_PASS
注释掉其它auth_host, auth_port, 和 auth_protocol,因为identity_uri 可能被覆盖
d.在[DEFAULT]部分配置 Modular Layer 2 (ML2) plug-in, router service, and overlapping IP addresses:
[DEFAULT]
...
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True
e.在 [DEFAULT] 部分, 配置网络的网络计算拓扑变化通知:
[DEFAULT]
...
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
nova_url = http://controller:8774/v2
nova_admin_auth_url = http://controller:35357/v2.0
nova_region_name = regionOne
nova_admin_username = nova
nova_admin_tenant_id = SERVICE_TENANT_ID
nova_admin_password = NOVA_PASS
注意,这里SERVICE_TENANT_ID是keystone service 租户id 。nova_pass是nova用户密码,这是使用的是默认密码
注意
保存service 租户的tenant identifier (id):
source admin-openrc.sh
keystone tenant-get service
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Service Tenant |
| enabled | True |
| id | 7694d20c2e814ebd8b8eb855135ce1b0 |
| name | service |
+-------------+----------------------------------+
上面配置替换为下面:
[DEFAULT]
...
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
nova_url = http://controller:8774/v2
nova_admin_auth_url = http://controller:35357/v2.0
nova_region_name = regionOne
nova_admin_username = nova
nova_admin_tenant_id = 7694d20c2e814ebd8b8eb855135ce1b0
nova_admin_password = NOVA_PASS
f.为帮助排除问题,在[DEFAULT]启用verbose
[DEFAULT]
...
verbose = True
配置Modular Layer 2 (ML2) 插件
ML2插件使用 Open vSwitch (OVS)机制,为实例创建虚拟网络框架。尽管如此控制节点不需要OVS 组件,因为它不处理实例网络互通
编辑文件 /etc/neutron/plugins/ml2/ml2_conf.ini,完成下面步骤
sudo nano /etc/neutron/plugins/ml2/ml2_conf.ini
a.在 [ml2]部分,配置启用 flat 和 generic routing encapsulation (GRE) 网络驱动,GRE 租户网络和ovs驱动
[ml2]
...
type_drivers = flat,gre
tenant_network_types = gre
mechanism_drivers = openvswitch
注意:
一旦配置ML2 插件,禁用网络驱动和重启,将会导致数据库不一致。
b.在 [ml2_type_gre] 部分, 配置 tunnel identifier (id) 范围:
[ml2_type_gre]
...
tunnel_id_ranges = 1:1000
c.在 [securitygroup] 部分,配置安全组,ipset,配置OVS防火墙驱动
[securitygroup]
...
enable_security_group = True
enable_ipset = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
使用网络配置计算
默认情况下,分配包配置使用传统网络计算。你不许通过网络重新配置管理网络计算
编辑文件 /etc/nova/nova.conf,完成下面操作
sudo nano /etc/nova/nova.conf
a.在 [DEFAULT]默认部分,配置api和驱动
[DEFAULT]
...
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
注意:
默认,计算使用内部防火墙网络,自从网络包含网络防火墙服务,你必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动停掉计算防火墙服务。
b.在 [neutron] 部分,配置访问参数
[neutron]
...
url = http://controller:9696
auth_strategy = keystone
admin_auth_url = http://controller:35357/v2.0
admin_tenant_name = service
admin_username = neutron
admin_password = NEUTRON_PASS
发现没有这个标签,直接添加了
[DEFAULT]
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
force_dhcp_release=True
libvirt_use_virtio_for_bridges=True
verbose=True
ec2_private_dns_show_ip=True
api_paste_config=/etc/nova/api-paste.ini
enabled_apis=ec2,osapi_compute,metadata
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
auth_strategy = keystone
my_ip = 10.0.0.11
vncserver_listen = 10.0.0.11
vncserver_proxyclient_address = 10.0.0.11
verbose = True
[database]
connection = mysql://nova:NOVA_DBPASS@controller/nova
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = NOVA_PASS
[glance]
host = controller
[neutron]
url = http://controller:9696
auth_strategy = keystone
admin_auth_url = http://controller:35357/v2.0
admin_tenant_name = service
admin_username = neutron
admin_password = NEUTRON_PASS
完成安装
1.同步数据库
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
注意:同步数据库最后,是因为脚本需要完成服务 和 插件的配置文件
2.重启计算服务
service nova-api restart
service nova-scheduler restart
service nova-conductor restart
3.重启网络服务
service neutron-server restart
复制代码
验证是否成功
在控制节点上执行下面命令
1.生效环境变量
source admin-openrc.sh
2.列出创建的加载扩展的 neutron-server进程
neutron ext-list
遇到问题:
不能连接http://controller:9696/v2.0/extensions.json
root@controller:~# neutron ext-list
Unable to establish connection to http://controller:9696/v2.0/extensions.json
原因:
不能同步数据库
,同步即解决
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
路过
雷人
握手
鲜花
鸡蛋
收藏
分享
邀请
举报
全部
作者的其他最新日志
•
种用于单张图像大尺度人脸三维重建的VRN算法
•
基于 Openpose 实现人体动作识别
•
基于OpenCV使用OpenPose进行多个人体姿态估计
•
《DensePose: Dense Human Pose Estimation In The Wild》阅读笔记
•
Field types of query result and registered TableSink do not match
•
Clickhouse bug DB::Exception: PeekableReadBuffer: Memory limit exceed
发表评论
评论 (
2
个评论)
回复
haofanforwork
2015-12-29 19:12
1.同步数据库
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
这步,在新版本 需修改为
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
否则,对应的数据表不完整,从而agent不能正常启动
回复
haofanforwork
2015-12-29 19:13
补充按第一个方法同步数据,创建的数据表为130多,而按第二个方法创建的数据表为155
涂鸦板
您需要登录后才可以评论
登录
|
立即注册
评论
pig2
加为好友
给我留言
打个招呼
发送消息
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈