每天学习openstack(12)

接下来继续安装计算服务:

1.计算服务介绍

opensatck compute service(nova)提供一个工具来部署云平台,包括运行实例,管理实例。他底层的开源项目名称是nova,他没有包含任何虚拟化软件,而是定义与虚拟化机制交互的驱动程序,通过调用各个虚拟化管理软件的api接口来实现对不同种类虚拟机的操作。

2.组件介绍

nova-api:接收和响应来自最终用户的计算API请求。

nova-compute:一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例。

例如:

  • XenServer/XCP 的 XenAPI

  • KVM 或 QEMU 的 libvirt

  • VMware 的 VMwareAPI

nova-scheduler: 拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。

nova-conductor:Mediates interactions between the nova-compute service and the database. It eliminates direct accesses to the cloud database made by the nova-compute service.

nova-cert:服务器守护进程向Nova Cert服务提供X509证书。

nova-novncproxy:提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端。

数据库:

mysql或者PostgreSQL

3.计算服务的安装

控制节点安装:

1.安装数据库服务并授权:

mysql> CREATE DATABASE nova_api;
mysql> CREATE DATABASE nova;
mysql> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
mysql> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';
mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';
注意:用合适的密码代替以上密码“NOVA_DBPASS”

2.获取admin账号权限

source openrc

3.创建nova用户并添加到admin账号

$ openstack user create --domain default \
  --password-prompt nova

User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 8a7dbf5279404537b1c7b86c033620fe |
| name                | nova                             |
| password_expires_at | None                             |
+---------------------+----------------------------------+
$ openstack role add --project service --user nova admin
4.创建nova服务与endpoint

$ openstack service create --name nova \
  --description "OpenStack Compute" compute

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | 060d59eac51b4594815603d75a00aba2 |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
  compute public http://controller:8774/v2.1/%\(tenant_id\)s

+--------------+-------------------------------------------+
| Field        | Value                                     |
+--------------+-------------------------------------------+
| enabled      | True                                      |
| id           | 3c1caa473bfe4390a11e7177894bcc7b          |
| interface    | public                                    |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | 060d59eac51b4594815603d75a00aba2          |
| service_name | nova                                      |
| service_type | compute                                   |
| url          | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+

$ openstack endpoint create --region RegionOne \
  compute internal http://controller:8774/v2.1/%\(tenant_id\)s

+--------------+-------------------------------------------+
| Field        | Value                                     |
+--------------+-------------------------------------------+
| enabled      | True                                      |
| id           | e3c918de680746a586eac1f2d9bc10ab          |
| interface    | internal                                  |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | 060d59eac51b4594815603d75a00aba2          |
| service_name | nova                                      |
| service_type | compute                                   |
| url          | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+

$ openstack endpoint create --region RegionOne \
  compute admin http://controller:8774/v2.1/%\(tenant_id\)s

+--------------+-------------------------------------------+
| Field        | Value                                     |
+--------------+-------------------------------------------+
| enabled      | True                                      |
| id           | 38f7af91666a47cfb97b4dc790b94424          |
| interface    | admin                                     |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | 060d59eac51b4594815603d75a00aba2          |
| service_name | nova                                      |
| service_type | compute                                   |
| url          | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+
5.安装软件包并配置文件

1.安装软件包

# yum install openstack-nova-api openstack-nova-conductor \
  openstack-nova-console openstack-nova-novncproxy \
  openstack-nova-scheduler
2.配置文件 /etc/nova/nova.conf

  • 在``[DEFAULT]``部分,只启用计算和元数据API:

    [DEFAULT]
    ...
    enabled_apis = osapi_compute,metadata
    
  • 在``[api_database]``和``[database]``部分,配置数据库的连接:

    [api_database]
    ...
    connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
    
    [database]
    ...
    connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
    

    用你为 Compute 数据库选择的密码来代替 NOVA_DBPASS

  • 在``[DEFAULT]``部分,配置``RabbitMQ``消息队列访问权限:

    [DEFAULT]
    ...
    transport_url = rabbit://openstack:RABBIT_PASS@controller
    

    用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “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 = nova
    password = NOVA_PASS
    

    使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``。

     
    注解

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

  • 在 [DEFAULT 部分,配置``my_ip`` 来使用控制节点的管理接口的IP 地址。

    [DEFAULT]
    ...
    my_ip = 10.0.0.11
    
  • 在 ``[DEFAULT]``部分,启用网络服务支持:

    [DEFAULT]
    ...
    use_neutron = True
    firewall_driver = nova.virt.firewall.NoopFirewallDriver
    

     
    注解

    默认情况下,计算服务使用内置的防火墙服务。由于网络服务包含了防火墙服务,你必须使用``nova.virt.firewall.NoopFirewallDriver``防火墙服务来禁用掉计算服务内置的防火墙服务

  • 在``[vnc]``部分,配置VNC代理使用控制节点的管理接口IP地址 :

    [vnc]
    ...
    vncserver_listen = $my_ip
    vncserver_proxyclient_address = $my_ip
    
  • 在 [glance] 区域,配置镜像服务 API 的位置:

    [glance]
    ...
    api_servers = http://controller:9292
    
  • 在 [oslo_concurrency] 部分,配置锁路径:

    [oslo_concurrency]
    ...
    lock_path = /var/lib/nova/tmp
查看修改的配置文件:

[root@controller ~]# grep "^[a-z]" /etc/nova/nova.conf 
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123456@controller
auth_strategy = keystone
my_ip = 192.168.141.170
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
connection = mysql+pymysql://nova:123456@192.168.141.170/nova_api
connection = mysql+pymysql://nova:123456@192.168.141.170/nova
api_servers = http://192.168.141.170:9292
auth_uri = http://192.168.141.170:5000
auth_url = http://192.168.141.170:35357
memcached_servers = 192.168.141.170:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123456
lock_path = /var/lib/nova/tmp
rpc_backend = rabbit
rabbit_hosts=192.168.141.170
rabbit_userid=openstack
rabbit_password=123456
vncserver_listen = 192.168.141.170
vncserver_proxyclient_address = 192.168.141.170

5.同步数据库

# su -s /bin/sh -c "nova-manage api_db sync" nova
# su -s /bin/sh -c "nova-manage db sync" nova
注意:忽略输出中任何不推荐使用的信息。

6.启动compute服务并添加自启动

# systemctl enable openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service
# systemctl start openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service
至此控制节点的计算服务安装完毕。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值