手把手教你安装OpenStack——Ocata安装指南(上)

五、网络服务

  安装并配置控制节点

  1、前提条件

  创建数据库,与之前类似:

  $ mysql -u root -p

  MariaDB [(none)] CREATE DATABASE neutron;

  MariaDB [(none)]> GRANT ALL PRIVILEGESON neutron.* TO 'neutron'@'localhost'

  IDENTIFIED BY 'NEUTRON_DBPASS';

  MariaDB [(none)]> GRANT ALL PRIVILEGESON neutron.* TO 'neutron'@'%'

  IDENTIFIED BY 'NEUTRON_DBPASS';

  获取admin权限:

  $ . admin-openrc

  创建服务认证:

  创建neutron用户

  $ openstack user create --domain default --password-prompt neutron

  给neutron添加admin角色:

  $ openstack role add --project service --user neutron admin

  创建neutron服务实体:

  $ openstack service create --name neutron

  --deion "OpenStack Networking" network

  创建网络服务API端口:

  $ openstack endpoint create --region RegionOne

  network public http://controller:9696

  $ openstack endpoint create --region RegionOne

  network internal http://controller:9696

  $ openstack endpoint create --region RegionOne

  network admin http://controller:9696

  2、配置网络选项

  选项1:部署一个最简单的网络,仅支持实例和公共网络的连接。

  选项2:在选项1的基础上,增加了3层服务,支持实例连接到私有网络。

  这里我们选择选项2,选项2的部署包括选项1。

  在控制节点上进行以下操作:

  安装组件

  # yum install openstack-neutron openstack-neutron-ml2

  openstack-neutron-linuxbridge ebtables

  配置服务器组件

  编辑/etc/neutron/neutron.conf文件,并完成以下配置:

  [database]选项中,配置数据库连接:

  [database]

  # ...

  connection=mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron

  替换掉NEUTRON_DBPASS密码。注释掉或者删除[database]其他参数。

  [DEFAULT]选项中,开启ML2插件,路由服务以及overlapping IP地址,配置消息队列连接:

  [DEFAULT]

  # ...

  core_plugin=ml2

  service_plugins=router

  allow_overlapping_ips=true

  transport_url=rabbit://openstack:RABBIT_PASS@controller

  替换掉RABBIT_PASS

  [DEFAULT]选项和[keystone_authtoken]选项中,配置认证服务连接

  [DEFAULT]

  # ...

  auth_strategy=keystone

  [keystone_authtoken]

  # ...

  auth_uri=http://controller:5000

  auth_url=http://controller:35357

  memcached_servers=controller:11211

  auth_type=password

  project_domain_name=default

  user_domain_name=default

  project_name=service

  username=neutron

  password=NEUTRON_PASS

  替换掉NEUTRON_PASS

  注释或删除[keystone_authtoken]中的其他选项。

  [DEFAULT][nova]选项中,配置网络来通知计算机网络拓扑的变换:

  [DEFAULT]

  # ...

  notify_nova_on_port_status_changes=true

  notify_nova_on_port_data_changes=true

  [nova]

  # ...

  auth_url=http://controller:35357

  auth_type=password

  project_domain_name=default

  user_domain_name=default

  region_name=RegionOne

  project_name=service

  username=nova

  password=NOVA_PASS

  替换掉NOVA_PASS

  [oslo_concurrency]选项中,配置锁定地址:

  [oslo_concurrency]

  # ...

  lock_path=/var/lib/neutron/tmp

  配置ML2

  编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件,在ml2选项中,开启flat,VLAN,以及VXLAN网络:

  [ml2]

  # ...

  type_drivers=flat,vlan,vxlan

  开启VXLAN私有网络:

  [ml2]

  # ...

  tenant_network_types=vxlan

  开启桥接和2层机制

  [ml2]

  # ...

  mechanism_drivers=linuxbridge,l2population

  Linux桥接代理仅支持VXLAN覆盖网络,开启端口安全扩展驱动:

  [ml2]

  # ...

  extension_drivers=port_security

  在选项中;配置公共虚拟网络作为扁平网络:

  [ml2_type_flat]

  # ...

  flat_networks=provider

  为私有网络配置VXLAN网络识别范围

  [ml2_type_vxlan]

  # ...

  vni_ranges=1:1000

  [securitygroup]选项中,开启ipset增加安全组规则的高效性;

  [securitygroup]

  # ...

  enable_ipset=true

  配置Linux 桥接代理

  编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件

  [linux_bridge]选项中,映射公共虚拟网络到公共物理网络接口;

  [linux_bridge]

  physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME

  PROVIDER_INTERFACE_NAME替换为公共网络网卡名字

  在选项中,开始VXLAN覆盖网络,配置物理网络的IP地址,启用L2。

  [vxlan]

  enable_vxlan=true

  local_ip=OVERLAY_INTERFACE_IP_ADDRESS

  l2_population=true

  OVERLAY_INTERFACE_IP_ADDRESS替换为管理网络IP地址,即控制节点IP。(没有配置管理网络)

  [securitygroup]选项中,启用安全组并配置Linux桥接iptables防火墙驱动;

  [securitygroup]

  # ...

  enable_security_group=true

  firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

  配置3层代理

  编辑/etc/neutron/l3_agent.ini文件

  [DEFAULT]选项中,配置Linuxbridge驱动接口

  [DEFAULT]

  # ...

  interface_driver=linuxbridge

  配置DHCP代理

  编辑/etc/neutron/dhcp_agent.ini文件

  [DEFAULT]选项中,配置inuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据

  [DEFAULT]

  # ...

  interface_driver=linuxbridge

  dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq

  enable_isolated_metadata=true

配置元数据代理

  [DEFAULT]选项中,配置元数据主机和共享密码

  [DEFAULT]

  # ...

  nova_metadata_ip=controller

  metadata_proxy_shared_secret=METADATA_SECRET

  替换METADATA_SECRET为合适的密码

  配置计算服务来使用网络

  编辑/etc/nova/nova.conf文件

  [neutron]选项中,配置连接参数,启用元数据代理,配置密码:

  [neutron]

  # ...

  url=http://controller:9696

  auth_url=http://controller:35357

  auth_type=password

  project_domain_name=default

  user_domain_name=default

  region_name=RegionOne

  project_name=service

  username=neutron

  password=NEUTRON_PASS

  service_metadata_proxy=true

  metadata_proxy_shared_secret=METADATA_SECRET

  替换NEUTRON_PASSMETADATA_SECRET

  3、完成安装

  建立符号链接

  # ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

  上传数据库

  # 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

  重启计算API服务

  # systemctl restart openstack-nova-api.service

  启动网络服务并配置开机启动

  # systemctl enable neutron-server.service

  neutron-linuxbridge-agent.service neutron-dhcp-agent.service

  neutron-metadata-agent.service

  # systemctl start neutron-server.service

  neutron-linuxbridge-agent.service neutron-dhcp-agent.service

  neutron-metadata-agent.service

  对于网络选项2,也要启用3层服务

  # systemctl enable neutron-l3-agent.service

  # systemctl start neutron-l3-agent.service

安装并配置计算节点1、安装组件

  # yum install openstack-neutron-linuxbridge ebtables ipset

  配置公共组件

  编辑/etc/neutron/neutron.conf文件

  [database]中,注释掉任何的连接,因为计算节点不直接连接数据库。

  [DEFAULT],配置消息队列连接

  [DEFAULT]

  # ...

  transport_url=rabbit://openstack:RABBIT_PASS@controller

  替换RABBIT_PASS

  [DEFAULT][keystone_authtoken]选项中

  [DEFAULT]

  # ...

  auth_strategy=keystone

  [keystone_authtoken]

  # ...

  auth_uri=http://controller:5000

  auth_url=http://controller:35357

  memcached_servers=controller:11211

  auth_type=password

  project_domain_name=default

  user_domain_name=default

  project_name=service

  username=neutron

  password=NEUTRON_PASS

  替换NEUTRON_PASS密码

  [oslo_concurrency]选项中,配置锁定路径

  [oslo_concurrency]

  # ...

  lock_path=/var/lib/neutron/tmp

  在计算节点上配置网络选项2

  配置Linux桥接代理

  编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件

  [linux_bridge]部分,映射公共虚拟网络到公共物理网络接口:

  [linux_bridge]

  physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME

  PROVIDER_INTERFACE_NAME替换为物理网卡名字。

  [vxlan]部分,启用VXLAN覆盖网络,配置物理网络IP地址,启用l2_population:

  [vxlan]

  enable_vxlan=true

  local_ip=OVERLAY_INTERFACE_IP_ADDRESS

  l2_population=true

  [securitygroup]部分,启用安全组并配置Linux桥接iptables防火墙驱动:

  [securitygroup]

  # ...

  enable_security_group=true

  firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

  为计算节点配置网络服务:

  编辑/etc/nova/nova.conf文件

  [neutron]部分,配置连接参数;

  [neutron]

  # ...

  url=http://controller:9696

  auth_url=http://controller:35357

  auth_type=password

  project_domain_name=default

  user_domain_name=default

  region_name=RegionOne

  project_name=service

  username=neutron

  password=NEUTRON_PASS

  替换NEUTRON_PASS

  完成安装

  重启计算服务:

  # systemctl restart openstack-nova-compute.service

  启动Linux桥接代理并配置开机启动:

  # systemctl enable neutron-linuxbridge-agent.service

  # systemctl start neutron-linuxbridge-agent.service

验证操作

  获取admin权限

  $ . admin-openrc

  列出加载的扩展来验证neutron-server是否成功运行:

  $ openstack extension list --network

  验证网络:

  在控制节点上,列出所有的代理:

  $ openstack network agent list

  9a51678315fa4ba0b5b520c92f21b684.png

  输出应该是4个控制节点上的代理和一个计算节点上的代理。

  六、Dashboard

  安装和配置

  验证操作

  安装并配置组件

  安装相关包

  # yum install openstack-dashboard

  编辑/etc/openstack-dashboard/local_settings文件,修改以下配置

  注:以下的配置大部分在原配置文件中都包括,修改即可,不要直接添加。

  配置dashboard在控制节点上使用OpenStack服务:

  OPENSTACK_HOST="controller"

  允许主机连接到dashboard:

  ALLOWED_HOSTS=['*,]

  *表示允许所有主机连接dashboard,在生产环境中不建议这样做。

  配置memcached存储服务:

  SESSION_ENGINE='django.contrib.sessions.backends.cache'

  CACHES={

  'default':{

  'BACKEND':'django.core.cache.backends.memcached.MemcachedCache',

  'LOCATION':'controller:11211',

  }

  }

  启用认证API版本3

  OPENSTACK_KEYSTONE_URL="http://%s:5000/v3"%OPENSTACK_HOST

  启用域支持:

  OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True

  配置API版本:

  OPENSTACK_API_VERSIONS={

  "identity":3,

  "p_w_picpath":2,

  "volume":2,

  }

  配置default作为用户通过dashboard创建的默认的域:

  OPENSTACK_KEYSTONE_DEFAULT_DOMAIN="default"

  配置user作为用户创建的默认的角色:

  OPENSTACK_KEYSTONE_DEFAULT_ROLE="user"

  可选的,可以配置时区:

  TIME_ZONE="TIME_ZONE"

  替换掉TIME_ZONE,这里替换为:Asia/chongqing

  完成安装:

  重启web服务器以及会话存储服务:

  # systemctl restart httpd.service memcached.service

  验证操作:

  使用浏览器连接http://controller/dashboard,如果无法连接,那么就将controller替换为IP地址。如下图;

  0386196d24834ea1af8b6a0c16b6acdd_th.png

  使用admin或者demo用户和default域认证,如下图,登录成功:

  42a1ba27beff42c28625f60e9542152d_th.jpeg