openstack安装-nova(二)

现在要开始安装compute服务了,前面一章都说了,虽然controller节点主要用来做控制服务节点的,如果做实验的话,可以用它的多余资源来充当一下compute节点,那么这个实验就可以有两台compute节点了。
开始安装吧。。。

安装和配置组件

安装包

1
$ apt install nova-compute

修改/etc/nova/nova.conf

  • [DEFAULT]区域,配置RabbitMQ
    1
    2
    3
    [DEFAULT]
    # ...
    transport_url = rabbit://openstack:RABBIT_PASS@controller

替换RABBIT_PASS为当时为RabbitMQ创建openstack用户时指定的密码

  • [api][keystone——authtoken]区域,配置keystone相关配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [api]
    # ...
    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 = nova
    password = NOVA_PASS

替换NOVA_PASS为你创建nova用户时的密码

  • [DEFAULT]区域,配置my_ip

    1
    2
    3
    [DEFAULT]
    # ...
    my_ip = 192.168.199.11
  • [DEFAULT]区域,关掉防火墙和使用neutron

    1
    2
    3
    4
    [DEFAULT]
    # ...
    use_neutron = True
    firewall_driver = nova.virt.firewall.NoopFirewallDriver

以前nova是提供网络服务的,现在有了neutron之后,就不用了,所以这里要关掉先。

  • [vnc]区域,配置远程访问:

    1
    2
    3
    4
    5
    6
    [vnc]
    # ...
    enabled = True
    vncserver_listen = 0.0.0.0
    vncserver_proxyclient_address = $my_ip
    novncproxy_base_url = http://controller:6080/vnc_auto.html
  • [glance]区域,配置镜像访问接口:

    1
    2
    3
    [glance]
    # ...
    api_servers = http://controller:9292
  • [DEFAULT]区域,log_dir选项

  • [placement]区域,配置Placement API:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [placement]
    # ...
    os_region_name = RegionOne
    project_domain_name = Default
    project_name = service
    auth_type = password
    user_domain_name = Default
    auth_url = http://controller:35357/v3
    username = placement
    password = PLACEMENT_PASS

替换PLACEMENT_PASS为之前配置placement用户时候设置的密码

完成安装

配置虚拟机类型

执行以下命令:

1
$ egrep -c '(vmx|svm)' /proc/cpuinfo

如果返回多个,就代表你机子已经硬件支持kvm,所以不用配置什么
如果返回0,代表你机子不支持kvm,所以就需要修改为qemu

1
2
3
[libvirt]
# ...
virt_type = qemu

重启服务

1
$ service nova-compute restart

添加compute节点到cell数据库

以下操作只能在controller节点执行

  1. 执行以下命令:

    1
    2
    3
    4
    5
    6
    7
    8
    $ . admin-openrc

    $ openstack compute service list --service nova-compute
    +----+-------+--------------+------+-------+---------+----------------------------+
    | ID | Host | Binary | Zone | State | Status | Updated At |
    +----+-------+--------------+------+-------+---------+----------------------------+
    | 1 | node1 | nova-compute | nova | up | enabled | 2017-04-14T15:30:44.000000 |
    +----+-------+--------------+------+-------+---------+----------------------------+
  2. 发现compute节点

    1
    2
    3
    4
    5
    6
    7
    8
    # su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

    Found 2 cell mappings.
    Skipping cell0 since it does not contain hosts.
    Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
    Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
    Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
    Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3

如果你新加了个compute,必须要再执行一遍上面的命令,或者在nova的配置文件改一个合适的间隔来自动发现吧。

1
2
[scheduler]
discover_hosts_in_cells_interval = 300

总结

nova服务到这里已经都装完了,如果你controller也安装了compute的服务的话,那就有两台compute node了😄
接下来要进入重头戏的网络服务neutron的安装了👿