您的位置:首页 > 运维架构

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

2017-03-08 10:06 323 查看
手把手教你安装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_PASS,METADATA_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
  


  输出应该是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,
  "image":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地址。如下图;
  


  使用admin或者demo用户和default域认证,如下图,登录成功:
  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息