openstack学习笔记6-计算服务安装与配置

目录:

0 实验环境

1 概述

2 安装和配置

2.1 先决条件

2.2 安装和配置

2.3 验证

3 验证计算节点状态

3.1 查看计算服务节点列表

3.2 发现计算主机


0 实验环境

openstack版本:train

实验平台:vmware workstation 15.1

实验虚拟机:控制节点(centos 7.4,2核,4G内存),计算节点(centos 7.4,2核,2G内存)

操作节点:控制节点和计算节点

本文涉及的帐号密码:

RabbitMQ服务的用户:openstack:rabbitpass

mysql数据库管理员:root:samplepass

nova数据库用户:nova:dbpass

nova服务用户:nova:npass

1 概述

Compute组件用于托管和管理云计算系统。它是基础设施即服务(IaaS)系统的主要组成部分。主要模块用Python实现。

compute组件通过keystone服务进行认真,使用placement服务对资源进行跟踪和选择,使用glance服务管理镜像,使用控制面板组件UI方式进行管理。

2 控制节点配置

2.1 先决条件

a)数据库配置,创建了3个数据库nova_api,nova,nova_cell0:

# mysql -u root -p

MariaDB [(none)]> CREATE DATABASE nova_api;
MariaDB [(none)]> CREATE DATABASE nova;
MariaDB [(none)]> CREATE DATABASE nova_cell0;

MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'dbpass';
MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'dbpass';

MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'dbpass';
MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'dbpass';

MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'dbpass';
MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'dbpass';

MariaDB [(none)]>quit;

b)服务用户和权限设置

# . admin-openrc
# openstack user create --domain default --password-prompt nova    //新建用户nova,并设置密码,我设置的是npass
# openstack role add --project g_service --user nova admin    //设置用户nova在项目g_service中,角色为admin
# openstack service create --name nova --description "OpenStack Compute" compute    //为openstack创建计算服务

c)配置服务API端点

# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1
# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

2.2 安装和配置

a)软件包安装

# yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler

b)编辑配置文件/etc/nova/nova.conf,完成以下几点配置:

[default]节点:

[DEFAULT]
enabled_apis = osapi_compute,metadata
#使用安装rabbitMQ时创建的用户和密码
transport_url = rabbit://openstack:rabbitpass@controller:5672/
#指定节点的ip地址
my_ip = 192.168.223.11
use_neutron = True
#默认计算服务自带防火墙,但是网络也带有防火墙,所以通过这个设置禁止计算服务的防火墙
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api_database]节点:

[api_database]
# ...
connection = mysql+pymysql://nova:dbpass@controller/nova_api

[database]节点:

[database]
# ...
connection = mysql+pymysql://nova:dbpass@controller/nova

[api]节点:

[api]
# ...
auth_strategy = keystone

[keystone_authtoken]节点:

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = g_service
username = nova
password = npass

[vnc]节点:

[vnc]
enabled = True
server_listen = $my_ip
server_proxyclient_address = $my_ip

[glance]节点:

[glance]
api_servers = http://controller:9292

[oslo_concurrency]节点:

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

[placement]节点:

[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = g_service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = ppass

c)初始化nova-api数据库

# su -s /bin/sh -c "nova-manage api_db sync" nova

d)配置cell数据库

# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova    //注册cell0数据库
# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova    //创建cell1

检查操作是否成功:

# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

e)初始化nova数据库,可能会有warning和deprecated等信息,不用理会:

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

2.3 配置服务状态

# systemctl enable --now openstack-nova-api openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

3 计算节点配置

计算服务安装在计算节点,支持多种管理程序和虚拟机类型,比如QEMU和KVM。

2.1 安装组件

a)安装openstack源配置

# yum install centos-release-openstack-train

b)安装客户端管理工具和自动配置selinux的软件包:

# yum install python-openstackclient openstack-selinux

c)安装nova软件包:

# yum install openstack-nova-compute

2.2 配置

编辑配置文件/etc/nova/nova.conf,完成以下几点配置:

[default]节点:

[DEFAULT]
enabled_apis = osapi_compute,metadata
#使用安装rabbitMQ时创建的用户和密码
transport_url = rabbit://openstack:rabbitpass@controller
#指定节点的ip地址
my_ip = 192.168.223.31
use_neutron = True
#默认计算服务自带防火墙,但是网络也带有防火墙,所以通过这个设置禁止计算服务的防火墙
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]节点:

[api]
# ...
auth_strategy = keystone

[keystone_authtoken]节点:

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = g_service
username = nova
password = npass

[vnc]节点:

[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://192.168.223.31:6080/vnc_auto.html

[glance]节点:

[glance]
api_servers = http://controller:9292

[oslo_concurrency]节点:

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

[placement]节点:

[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = g_service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = ppass

2.3 验证

a)检查硬件是否支持虚拟化:

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

如果返回的结果是0,则必须配置使用QEMU替代KVM,编辑配置文件/etc/nova/nova.conf的节点[libvirt]

[libvirt]
# ...
virt_type = qemu

b)设置服务状态:

# systemctl enable --now libvirtd.service openstack-nova-compute.service

3 验证计算节点状态

注意:本操作在控制节点进行

3.1 查看计算服务节点列表

# openstack compute service list --service nova-compute

3.2 发现计算主机

# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

 注意:当添加了新的计算节点,必须运行上一条命令来进行注册。也可以让程序自动发现,在/etc/nova/nova.conf中进行设置:

[scheduler]
#设置间隔300秒自动发现
discover_hosts_in_cells_interval = 300
egrep -c '(vmx|svm)' /proc/cpuinfo

猜你喜欢

转载自www.cnblogs.com/learn2teach/p/12426457.html