安装并配置控制节点

安装并配置控制节点

前提条件

在你配置OpenStack网络(neutron)服务,你必须创建一个数据库,服务凭证和API端点。

  1. 完成下面的步骤以创建数据库:

    • 用数据库连接客户端以 root 用户连接到数据库服务器:

      $ mysql -u root -p
      
    • 创建``neutron`` 数据库:

      CREATE DATABASE neutron;
      
    • 对``neutron`` 数据库授予恰当的访问权限,使用合适的密码替换``NEUTRON_DBPASS``:

      GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
        IDENTIFIED BY 'NEUTRON_DBPASS';
      GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
        IDENTIFIED BY 'NEUTRON_DBPASS';
      
    • 退出数据库客户端。

  2. 获得 admin 凭证来获取只有管理员能执行命令的访问权限:

    $ source admin-openrc.sh
    
  3. 要创建服务证书,完成这些步骤:

    • 创建``neutron``用户:

      $ openstack user create --domain default --password-prompt neutron
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | default                          |
      | enabled   | True                             |
      | id        | b20a6692f77b4258926881bf831eb683 |
      | name      | neutron                          |
      +-----------+----------------------------------+
      
    • 添加``admin`` 角色到``neutron`` 用户:

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

      注解

      这个命令执行后没有输出。

    • 创建``neutron``服务实体:

      $ openstack service create --name neutron \
        --description "OpenStack Networking" network
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Networking             |
      | enabled     | True                             |
      | id          | f71529314dab4a4d8eca427e701d209e |
      | name        | neutron                          |
      | type        | network                          |
      +-------------+----------------------------------+
      
  4. 创建网络服务API端点:

    $ openstack endpoint create --region RegionOne \
      network public http://controller:9696
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 85d80a6d02fc4b7683f611d7fc1493a3 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      network internal http://controller:9696
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 09753b537ac74422a68d2d791cf3714f |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      network admin http://controller:9696
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 1ee14289c9374dffb5db92a5c112fc4e |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    

配置网络选项

您可以部署网络服务使用选项1和选项2代表的两种架构中的一个部署网络服务。

选项1部署部署最简单的架构,只支持绑定实例到公共网络。没有自服务网络,路由器和浮动IP地址。只有``admin``或者其它特权用户可以管理提供者网络。

选项2增强选项2,提供3层服务,支持绑定实例到自服务(私有)网络。``demo``或非特权用户可以管理自服务网络,包括路由器。路由器提供自服务网络和提供者网络之间的互通。同时,浮动IP地址提供从外部网络访问实例的能力,比如因特网。

注解

选项2同样提供实例到公共(提供者)网络。

选择一个以下的网络选项来配置服务指定它。之后,返回到这里,处理:ref:neutron-controller-metadata-agent

配置元数据代理

The metadata agent provides configuration information such as credentials to instances.

  • 编辑``/etc/neutron/metadata_agent.ini``文件并完成下面的操作:

    • 在``[DEFAULT]``部分,配置访问参数:

      [DEFAULT]
      ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      auth_region = RegionOne
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = neutron
      password = NEUTRON_PASS
      

      NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。

    • 在``[DEFAULT]`` 部分,配置元数据主机:

      [DEFAULT]
      ...
      nova_metadata_ip = controller
      
    • 在``[DEFAULT]`` 部分,配置元数据代理共享密码:

      [DEFAULT]
      ...
      metadata_proxy_shared_secret = METADATA_SECRET
      

      用你为元数据代理选择的密码替换 METADATA_SECRET

    • (可选的)为帮助排错,在 “[DEFAULT]”部分启用详细日志。

      [DEFAULT]
      ...
      verbose = True
      

配置计算使用网络

  • 编辑``/etc/nova/nova.conf``文件并完成下面操作:

    • 在``[neutron]``部分,配置访问参数,启用元数据代理和配置secret:

      [neutron]
      ...
      url = http://controller:9696
      auth_url = http://controller:35357
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      region_name = RegionOne
      project_name = service
      username = neutron
      password = NEUTRON_PASS
      
      service_metadata_proxy = True
      metadata_proxy_shared_secret = METADATA_SECRET
      

      NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。

      用你为元数据代理选择的密码替换 METADATA_SECRET

完成安装

  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 head" neutron
    

    注解

    数据库的同步发生在 Networking 之后,因为脚本需要完成服务器和插件的配置文件。

  2. 重启计算API 服务:

    # service nova-api restart
    
  3. 重启网络服务。

    对所有网络选项:

    # service neutron-server restart
    # service neutron-plugin-linuxbridge-agent restart
    # service neutron-dhcp-agent restart
    # service neutron-metadata-agent restart
    

    对网络选项2,同样重启layer-3服务:

    # service neutron-l3-agent restart
    
  1. 默认情况下,Ubuntu 上的安装包会自动创建一个 SQLite 数据库。

    因为这里配置使用SQL 数据库服务器,所以你可以SQLite 服务库文件:

    # rm -f /var/lib/neutron/neutron.sqlite
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.