安装与配置nova 1

这个部分将描述如何在控制节点上安装和配置 Compute 服务,即 nova。

配置前的准备

在您安装和配置 Compute 服务之前,您必须创建数据库、服务证书和 API 入口点。

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

以 root 用户身份通过数据库客户端连接到数据库服务:

$ mysql -u root -p

创建 nova 数据库:

CREATE DATABASE nova;

为 nova 数据库赋予合适的访问权限:

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';

将其中的 NOVA_DBPASS 替换为一个合适的密码。

退出数据库客户端。
2、导入 admin 身份凭证以执行管理员用户专有的命令:

$ source admin-openrc.sh

3、创建服务证书,完成如下步骤:

创建 nova 用户:

$ openstack user create --password-prompt nova
User Password:
Repeat User Password:
+----------+----------------------------------+
| Field    | Value                            |
+----------+----------------------------------+
| email    | None                             |
| enabled  | True                             |
| id       | c6598fe1adb44f89afdf28ebcdab201a |
| name     | nova                             |
| username | nova                             |
+----------+----------------------------------+

为 nova 用户添加 admin 角色:

$openstack role add --project service --user nova admin
+-------+----------------------------------+
| Field | Value                            |
+-------+----------------------------------+
| id    | 161f5c2846524270b2125f709e3703d6 |
| name  | admin                            |
+-------+----------------------------------+

建 nova 服务实体:

$openstack service create --name nova \
   --description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | 60d30efb58f442f6a9e5ccb90f7b30b7 |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+

创建计算服务API端点:

openstack endpoint create \
  --publicurl http://controller:8774/v2.1/%\(tenant_id\)s \
  --internalurl http://controller:8774/v2.1/%\(tenant_id\)s \
  --adminurl http://controller:8774/v2.1/%\(tenant_id\)s \
  --region RegionOne \
  compute
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| adminurl     | http://controller:8774/v2.1/%(tenant_id)s |
| id           | 0fe938c9193e4d0e91342c56208ae072        |
| internalurl  | http://controller:8774/v2.1/%(tenant_id)s |
| publicurl    | http://controller:8774/v2.1/%(tenant_id)s |
| region       | RegionOne                               |
| service_id   | 60d30efb58f442f6a9e5ccb90f7b30b7        |
| service_name | nova                                    |
| service_type | compute                                 |
+--------------+-----------------------------------------+


在controller节点上安装和配置计算节点组件

[注意] 
默认的配置文件根据不同发行版本而不同。有可能需要增加这些部分或是选项,而不是修改现有的部分或是选项。另外,配置文件代码段中的省略号(…)表明这可能是你需要保留的默认配置选项。

1、安装软件包:

安装软件依赖

$yum  -y install python-devel openssl-devel python-pip git gcc libxslt-devel mysql-devel postgresql-devel libffi-devel libvirt-devel graphviz sqlite-devel novnc
$pip  install tox

安装nova

git clone https://github.com/openstack/nova.git
cd nova && pip install -r requirements.txt 
python setup.py install

运行命令,生成配置文件./etc/nova/nova.conf.sample

tox -egenconfig

创建/etc/nova

mkdir -p /etc/nova

复制./etc/nova/中的配置文件到/etc/nova

cp -rn ./etc/nova/* /etc/nova

进入/etc/nova目录,进行一下操作

cd /etc/nova
cp logging_sample.conf logging.conf
cp nova.conf.sample nova.conf


2、修改配置文件 /etc/nova/nova.conf 并完成如下操作:

配置数据库的访问:

[database]
...
connection = mysql://nova:NOVA_DBPASS@controller/nova

将其中的 NOVA_DBPASS 替换为您之前为 Compute 数据设置的密码。

在 [DEFAULT] 和 [oslo_messaging_rabbit] 部分,配置 RabbitMQ 消息队列的访问:

[DEFAULT]
...
rpc_backend = rabbit
 
[oslo_messaging_rabbit]
...
rabbit_host = 控制器
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

在 [DEFAULT] 和 [keystone_authtoken] 部分,配置身份认证服务的访问:

[DEFAULT]
...
auth_strategy = keystone
 
[keystone_authtoken]
...
auth_uri = http://控制器:5000
auth_url = http://控制器:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = nova
password = NOVA_PASS

将其中的 NOVA_PASS 替换为您之前在身份认证服务中为 nova 用户设置的密码。

[注意] 
注释掉或移除 [keystone_authtoken]段的任何其它选项.

在 [DEFAULT] 部分,配置 my_ip 选项以使用控制节点上的管理网络接口的 IP 地址:

[DEFAULT]
...
my_ip = 10.0.0.11

在 [DEFAULT] 部分,配置 VNC 代理以使用控制节点的管理网络接口的 IP 地址。

[DEFAULT]
...
vncserver_listen = 10.0.0.11
vncserver_proxyclient_address = 10.0.0.11

在[glance] 服务字段,配置镜像服务的位置:

[glance]
...
host = 控制器

在[oslo_concurrency] 段,配置锁路径:

[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

若没/var/lib/nova/tmp文件夹,则创建,并修改权限

mkdir -p /var/lib/nova/tmp && useradd nova
chown nova:nova -R /var/lib/nova/tmp

(可选配置)可以在 [DEFAULT] 段中开启详细日志配置,为后期的故障排除提供帮助:

[DEFAULT]
...
verbose = True
...
log_file = /var/log/nova/nova.log

若没有/var/log/nova文件夹,则新建并修改器权限

mkdir -p /var/log/nova/
chown -R nova:nova /var/log/nova

同步Compute 数据库:

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


3、创建启动脚本

新建/usr/lib/systemd/system/nova-api.service文件,写入如下内容

[Unit]
Description=OpenStack Nova API Server
After=syslog.target network.target

[Service]
Type=notify
NotifyAccess=all
TimeoutStartSec=0
Restart=always
User=root ExecStart=/usr/bin/nova-api

[Install]
WantedBy=multi-user.target

新建/usr/lib/systemd/system/nova-cert.service文件,写入如下内容

[Unit]
Description=OpenStack Nova Cert Server
After=syslog.target network.target

[Service]
Type=notify
NotifyAccess=all
TimeoutStartSec=0
Restart=always
User=nova
ExecStart=/usr/bin/nova-cert

[Install]
WantedBy=multi-user.target


新建/usr/lib/systemd/system/nova-consoleauth.service文件,写入如下内容

[Unit]
Description=OpenStack Nova VNC console auth Server
After=syslog.target network.target

[Service]
Type=notify
NotifyAccess=all
TimeoutStartSec=0
Restart=always
User=nova
ExecStart=/usr/bin/nova-consoleauth

[Install]
WantedBy=multi-user.target


新建/usr/lib/systemd/system/nova-novncproxy.service文件,写入如下内容

[Unit]
Description=OpenStack Nova NoVNC Proxy Server
After=syslog.target network.target

[Service]
Type=simple
User=nova
EnvironmentFile=-/etc/sysconfig/openstack-nova-novncproxy
ExecStart=/usr/bin/nova-novncproxy --web /usr/share/novnc/ $OPTIONS

[Install]
WantedBy=multi-user.target


新建/usr/lib/systemd/system/nova-conductor.service文件,写入如下内容

[Unit]
Description=OpenStack Nova NoVNC Proxy Server
After=syslog.target network.target

[Service]
Type=simple
User=nova
EnvironmentFile=-/etc/sysconfig/openstack-nova-novncproxy
ExecStart=/usr/bin/nova-novncproxy --web /usr/share/novnc/ $OPTIONS

[Install]
WantedBy=multi-user.target

新建/usr/lib/systemd/system/nova-schedular.service文件,写入如下内容

[Unit]
Description=OpenStack Nova Scheduler Server
After=syslog.target network.target

[Service]
Type=notify
NotifyAccess=all
TimeoutStartSec=0
Restart=always
User=nova
ExecStart=/usr/bin/nova-scheduler

[Install]
WantedBy=multi-user.target


4、安装完成

启动 Compute 服务并将其设置为随系统启动:

$ systemctl enable nova-api.service nova-cert.service \
  nova-consoleauth.service nova-scheduler.service \
  nova-conductor.service nova-novncproxy.service $ systemctl start nova-api.service nova-cert.service \
  nova-consoleauth.service nova-scheduler.service \
  nova-conductor.service nova-novncproxy.service


Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
永久连接: http://www.nfvschool.cn/?p=227
标签:

发表评论