简易手动部署多节点的Openstack(L版)——肆(安装Nova服务)

  • 注:前半部分在控制节点安装并配置Nova服务

在控制节点添加Nova数据库并添加Nova用户

1、创建数据库:

  • 用数据库连接客户端以 root 用户连接到数据库服务器:
    mysql -u root -p
  • 创建 nova数据库:
    CREATE DATABASE nova;
  • nova数据库授予恰当的访问权限,使用合适的密码替换NOVA_DBPASS
    GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
    IDENTIFIED BY 'NOVA_DBPASS';
    GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
    IDENTIFIED BY 'NOVA_DBPASS';
  • 退出数据库客户端

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

source admin-openrc.sh

3、创建服务证书:

  • 创建 nova 用户:
    openstack user create --domain default --password-prompt nova
  • 添加admin 角色到 nova 用户:
    openstack role add --project service --user nova admin
  • 创建nova 服务实体:
    openstack service create --name nova \
    --description "OpenStack Compute" compute

4、创建计算服务API端点:

# 创建public端点:
openstack endpoint create --region RegionOne \
  compute public http://controller:8774/v2/%\(tenant_id\)s

#创建internal端点:
openstack endpoint create --region RegionOne \
  compute internal http://controller:8774/v2/%\(tenant_id\)s

#创建admin端点:
openstack endpoint create --region RegionOne \
  compute admin http://controller:8774/v2/%\(tenant_id\)s

安装并配置组件

1、安装软件包:

apt-get install nova-api nova-cert nova-conductor \
  nova-consoleauth nova-novncproxy nova-scheduler \
  python-novaclient

2、编辑/etc/nova/nova.conf文件并完成如下修改:

#在 [database] 部分,配置数据库访问,使用你为计算数据库选择的密码替换NOVA_DBPASS:
[database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova

#在[DEFAULT]和 [oslo_messaging_rabbit]部分,配置 RabbitMQ 消息队列访问,用你在RabbitMQ中为 openstack用户选择的密码替换RABBIT_PASS:
[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

#在[DEFAULT]和[keystone_authtoken]部分,配置认证服务访问,使用你在身份认证服务中选择的nova用户密码替换NOVA_PASS并在 [keystone_authtoken] 中注释或者删除其他选项:
[DEFAULT]
...
auth_strategy = keystone

[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = nova
password = NOVA_PASS

#在 [DEFAULT] 部分,配置 my_ip 来使用控制节点的管理接口的IP 地址并启用网络服务支持:
[DEFAULT]
...
my_ip = 10.122.0.1

network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver

#在[DEFAULT]部分,禁用EC2 API,并启用日志:
[DEFAULT]
...
enabled_apis=osapi_compute,metadata
verbose = True

#在[vnc]部分,配置VNC代理使用控制节点的管理IP地址 :
[vnc]
...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip

#在[glance]部分,配置镜像服务的位置:
[glance]
...
host = controller

#在 [oslo_concurrency] 部分,配置锁路径:
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

3、同步Compute 数据库:

su -s /bin/sh -c "nova-manage db sync" nova

4、重启 Compute 服务:

service nova-api restart
service nova-cert restart
service nova-consoleauth restart
service nova-scheduler restart
service nova-conductor restart
service nova-novncproxy restart

5、删除Ubuntu默认创建的SQLite数据库:

rm -f /var/lib/nova/nova.sqlite
  • 注:以下在计算节点上完成相关配置。

在计算节点上安装并配置Nova组件

1、安装软件包:

apt-get install nova-compute sysfsutils

2、编辑/etc/nova/nova.conf文件并完成如下修改:

# 在[DEFAULT] 和 [oslo_messaging_rabbit]部分,配置RabbitMQ消息队列,用你在RabbitMQ中为openstack用户选择的密码替换RABBIT_PASS:
[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

#在[DEFAULT]和[keystone_authtoken]部分,配置认证服务访问,用你在身份认证服务中选择的nova用户密码替换NOVA_PASS,在 [keystone_authtoken] 中注释或者删除其他选项:
[DEFAULT]
...
auth_strategy = keystone

[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = nova
password = NOVA_PASS

#在 [DEFAULT] 部分,配置 my_ip 选项,将其中的 MANAGEMENT_INTERFACE_IP_ADDRESS 替换为计算节点上的管理网络接口的IP 地址,如10.122.0.2:
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

#在[DEFAULT]部分,启用网络服务支持同时启用日志:
[DEFAULT]
...
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
verbose = True

#在[vnc]部分,启用并配置远程控制台访问,如果你运行浏览器的主机无法解析controller主机名,你可以将 controller替换为你控制节点管理网络的IP地址。:
[vnc]
...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html

#在[glance]部分,配置镜像服务的位置:
[glance]
...
host = controller

#在 [oslo_concurrency] 部分,配置锁路径:
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

3、确定您的计算节点是否支持虚拟机的硬件加速。

egrep -c '(vmx|svm)' /proc/cpuinfo
  • 如果这个命令返回 1或者更大的值,说明您的计算节点支持硬件加速,一般不需要进行额外的配置。直接转步骤4
  • 如果这个命令返回0,你的计算节点不支持硬件加速,你必须配置 libvirt 使用QEMU而不是使用KVM。在/etc/nova/nova-compute.conf文件中像下面这样编辑[libvirt]部分,然后转步骤4:
[libvirt]
...
virt_type = qemu

4、重启计算服务:

service nova-compute restart

5、删除Ubuntu默认创建的SQLite数据库:

rm -f /var/lib/nova/nova.sqlite

验证Nova服务(在控制节点上进行)

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

source admin-openrc.sh

2、列出服务组件,以验证是否成功启动并注册了每个进程(如果你只有一个控制节点和一个计算节点的话,该输出应该显示五个服务四个服务组件在控制节点上启用,一个服务组件在计算节点上启用):

nova service-list

3、列出身份认证服务中的 API 端点来验证身份认证服务的连通性(可以忽略输出的警告):

nova endpoints

4、列出镜像服务目录的镜像,验证镜像服务的连通性:

nova image-list
  • 注:如果你有多个计算节点的话也按照如上步骤配置,注意修改相应的IP地址即可
    本文基于参考文章撰写,根据自己的理解对于翻译难以理解的部分进行了调整,此博文部署过程亲测可用。
    参考文章:OpenStack官方文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值