侧边栏壁纸
博主头像
聆尘风博主等级

欲买桂花同载酒,终不似,少年游

  • 累计撰写 64 篇文章
  • 累计创建 17 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

三、openstack安装和部署nova服务

聆尘风
2024-06-28 / 0 评论 / 0 点赞 / 25 阅读 / 14091 字

十二、安装和部署nova

1.在控制节点上完成Nova的安装准备

注:openstack搭建中,本人所有密码均为mysql

(1)创建nova数据库

-1:以root身份连接到数据库服务器
-2:分别创建名为nova_api、nova、nova_cell0的三个数据库
mysql -u root -p
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
-3:对上述数据库nova的用户授予访问权限
GRANT ALL PRIVILEGES ON nova_api.* TO'nova_api'@'localhost' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON nova_api.* TO'nova_api'@'%' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON nova.* TO'nova'@'localhost' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON nova.* TO'nova'@'%' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON nova_cell0.* TO'nova_cell0'@'localhost' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON nova_cell0.* TO'nova_cell0'@'%' IDENTIFIED BY 'mysql';
flush privileges;
Grant all privileges on nova_api.* to 'nova'@'%';
Grant all privileges on nova_cell0.* to 'nova'@'%';
flush privileges;

(2)获取云管理员凭据

. admin-openrc

(3)创建计算服务凭据

-1:创建nova用户
openstack user create --domain default --password-prompt nova 

设置nova用户的密码

-2:将admin角色授予nova用户和service项目
openstack role add --project service --user nova admin
-3:创建nova的计算服务实体(名为nova的服务)
openstack service create --name nova --description "OpenStack Compute" compute
-4:创建计算服务的API的端点
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

2.在控制节点上安装和配置nova组件

(1)安装软件包

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

(2)编辑配置文件/etc/nova/nova.conf配置文件

-1:在[DEFAULT]节中仅启用计算服务API和元数据API

-2:在[zpi_database]和[database]节中配置数据库访问链接

-3:在[DEFAULT]节中配置RabbitMQ消息队列访问

-4:在[api]和[keystone_authtoken]节中配置身份服务访问

-5:在[DEFAULT]节中使用my_ip选项配置控制节点的管理网络接口ip地址

-6:在[DEFAULT]节中启用对网络服务的支持

-7:在[vnc]节中配置VNC代理控制节点的管理网络接口IP地址

-8:在[glance]节中配置镜像服务API的位置

-9:在[oslo_cioncurrency]节中配置锁定路径(LockPath)

-10:在[placemement]节中配置放置服务API

sed -i 's/^#enabled_apis/enabled_apis/' /etc/nova/nova.conf 
#在[DEFAULT]节中仅启用 compute 和 metadata API。
sed -i '1828 a connection = mysql+pymysql://nova:mysql@controller/nova_api' /etc/nova/nova.conf 
#在[api_database]和[database]节中配置数据库访问
sed -i '2314 a connection = mysql+pymysql://nova:mysql@controller/nova' /etc/nova/nova.conf  
#在[api_database]和[database]节中配置数据库访问
sed -i '2 a transport_url = rabbit://openstack:mysql@controller:5672/' /etc/nova//nova.conf 
#在[DEFAULT]节中配置 RabbitMQ 消息队列访问
sed -i 's/^#auth_strategy/auth_strategy/' /etc/nova/nova.conf  
#在[api]和[keystone_authtoken]节中配置身份管理服务访问
sed -i '3202 a \
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 = service \
username = nova \
password = mysql' /etc/nova/nova.conf
#在[DEFAULT]节中配置网路
sed -i '3 a \
my_ip = 192.168.105.9 \ #这里的为控制节点的网关2的ip
use_neutron = true \
firewall_driver = nova.virt.firewall.NoopFirewallDriver' /etc/nova/nova.conf
#在[vnc]节中配置 VNC 代理使用控制节点的管理网络接口 IP 地址
sed -i 's/^#enabled=true/enabled=true/' /etc/nova/nova.conf 
sed -i '5886 a server_listen = $my_ip \
server_proxyclient_address = $my_ip' /etc/nova/nova.conf
#在[glance]节中配置镜像服务 API 的位置
sed -i '2639 a api_servers = http://controller:9292' /etc/nova/nova.conf
#在[oslo_concurrency]节中配置锁定路径
sed -i 's/^#lock_path/lock_path/' /etc/nova/nova.conf
#在[placement]节中配置放置服务 API
sed -i '4755 a \
region_name = RegionOne \
project_domain_name = Default \
project_name = service \
auth_type = password \
user_domain_name = Default \
auth_url = http://controller:5000/v3 \
username = placement \
password =mysql' /etc/nova/nova.conf

(3)初始化nova-api数据库

su -s /bin/bash -c "nova-manage api_db sync" nova
#报错就重新去mysql授予权限
Grant all privileges on nova_api.* to 'nova'@'%';
#是授权nova用户在nova_api 数据库上拥有全部权限
Grant all privileges on nova_cell0.* to 'nova'@'%';
#是授权nova用户在nova_cell0 数据库上拥有全部权限
flush privileges;
#刷新权限

(4)注册cell0数据库

su -s /bin/bash -c "nova-manage cell_v2 map_cell0" nova

(5)创建cell 1单元

su -s /bin/bash -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

(6)初始化nova数据库

su -s /bin/sh -c "nova-manage db sync" nova #不红即对

(7)验证nova的cell0和cell1是否已经注册

su -s /bin/bash -c "nova-manage cell_v2 list_cells" nova #有列表显示

3.在计算节点上安装和配置nova组件

(1)安装软件包

yum install openstack-nova-compute -y

(2)编辑/etc/nova/nova.conf配置文件

-1:在[DEFAULT]节中仅启用计算服务API和元数据API

-2:在[DEFAULT]节中配置RabbitMQ消息队列访问

-3:在[api]和[keystone_authtoken]节中配置身份服务访问

-4:在[DEFAULT]节中使用my_ip选项配置控制节点的管理网络接口ip地址

-5:在[DEFAULT]节中启用对网络服务的支持

-6:在[vnc]节中启用和配置远程控制台访问

-7:在[glance]节中配置镜像服务API的位置

-8:在[placemement]节中配置放置服务API

#在[DEFAULT]节中仅启用 compute 和 metadata API
sed -i '2 a enabled_apis = osapi_compute,metadata' /etc/nova/nova.conf
#在[DEFAULT]节中配置 RabbitMQ 消息队列访问
sed -i '3 a transport_url = rabbit://openstack:mysql@controller' /etc/nova/nova.conf
#在[api]和[keystone_authtoken]节中配置身份认证服务访问
sed -i 's/^#auth_strategy/auth_strategy/' /etc/nova/nova.conf
sed -i '3205 a \
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 = service \
username = nova \
password = mysql' /etc/nova/nova.conf
sed -i '8 a my_ip = 192.168.105.5 \
use_neutron = true \
firewall_driver = nova.virt.firewall.NoopFirewallDriver' /etc/nova/nova.conf
#在[vnc]节中启用和配置远程控制台访问
sed -i '5907 a \
enabled = true \
server_listen = 0.0.0.0 \
server_proxyclient_address = $my_ip \
novncproxy_base_url = http://controller:6080/vnc_auto.html' /etc/nova/nova.conf
#在[glance]节中配置镜像服务 API 的位置
sed -i '2639 a api_servers = http://controller:9292' /etc/nova/nova.conf
在[oslo_concurrency]节中配置锁定路径
sed -i 's/^#lock_path/lock_path/' /etc/nova/nova.conf
#在[placement]节中配置放置服务 API
sed -i '4754 a region_name = RegionOne \
project_domain_name = Default \
project_name = service \
auth_type = password \
user_domain_name = Default \
auth_url = http://controller:5000/v3 \
username = placement \
password = mysql' /etc/nova/nova.conf

4.在计算节点上完成nova的安装

(1)确定计算节点是否支持虚拟机的硬件加速

egrep -c '(vmx|svm)' /proc/cpuinfo #显示0则需要配置

(2)启动计算服务及其依赖组件,并将其配置为开机自启动

sed -i '3387 a virt_type = qemu' /etc/nova/nova.conf #进行配置
systemctl enable libvirtd.service openstack-nova-compute.service --now  #启动,并且设为开机自启
systemctl is-active libvirtd.service openstack-nova-compute.service #都是active

5.将计算节点添加到cell数据库

转到控制节点上进行操作

(1)确认数据库中计算节点主机

. admin-openr  #加载 admin的环境脚本
openstack compute service list --service nova-compute #确认数据库中计算节点主机

(2)注册计算节点主机

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

6.验证nova计算服务的安装

(1)验证每个进程是否成功启动和注册

. admin-openrc #加载 admin的环境脚本
openstack compute service list

(2)查看计算节点

openstack hypervisor list

0

评论区