OpenStack——nove组件部署

一、部署Placement

#在部署nova之间一定要先部署placement这个组件,否则后续步骤会报错

1、创建数据库实例和用户

[root@ct ~]# mysql -u root -p123456

MariaDB [(none)]> CREATE DATABASE Placement;

MariaDB [Placement]> GRANT ALL PRIVILEGES ON placement.* TO ‘placement’@‘localhost’ IDENTIFIED BY ‘PLACEMENT_DBPASS’;

MariaDB [Placement]> GRANT ALL PRIVILEGES ON placement.* TO ‘placement’@’%’ IDENTIFIEED BY ‘PLACEMENT_DBPASS’;

MariaDB [Placement]> FLUSH PRIVILEGES;

MariaDB [Placement]> EXIT

在这里插入图片描述

2、创建placement服务用户和API的endpoint

创建placement用户

扫描二维码关注公众号,回复: 12975775 查看本文章

[root@ct ~]# openstack user create --domain default --password PLACEMENT_PASS placement

在这里插入图片描述

给用户授予admin权限

[root@ct ~]# openstack role add --project service --user placement admin

创建一个类型为placement的服务

[root@ct ~]# openstack service create --name placement --description “Placement API” placement

在这里插入图片描述

注册API端口到placement的service中

#端口分为公共的、私有的、管理的

[root@ct ~]# openstack endpoint create --region RegionOne placement public http://ct:8778

[root@ct ~]# openstack endpoint create --region RegionOne placement internal http://ct:8778

[root@ct ~]# openstack endpoint create --region RegionOne placement admin http://ct:8778

3、安装placement服务

[root@ct ~]# yum -y install openstack-placement-api

#修改配置文件

[root@ct ~]# cp -a /etc/placement/placement.conf{,.bak}

[root@ct ~]# grep -Ev ‘^$|#’ /etc/placement/placement.conf.bak > /etc/placement/placement.conf

在这里插入图片描述
#在配置文件中添加内容

openstack-config --set /etc/placement/placement.conf placement_database connection mysql+pymysql://placement:PLACEMENT_DBPASS@ct/placement
openstack-config --set /etc/placement/placement.conf api auth_strategy keystone
openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_url http://ct:5000/v3
openstack-config --set /etc/placement/placement.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_type password
openstack-config --set /etc/placement/placement.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/placement/placement.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/placement/placement.conf keystone_authtoken project_name service
openstack-config --set /etc/placement/placement.conf keystone_authtoken username placement
openstack-config --set /etc/placement/placement.conf keystone_authtoken password PLACEMENT_PASS

在这里插入图片描述

4、导入数据库

[root@ct ~]# su -s /bin/sh -c “placement-manage db sync” placement

5、修改Apache配置文件

[root@ct ~]# cd /etc/httpd/conf.d/

[root@ct conf.d]# vim 00-placement-api.conf

<Directory /usr/bin> #此处是bug,必须添加下面的配置来启用对placement api的访问,否则在访问apache的api时会报403;添加在文件的最后即可
= 2.4>
Require all granted

<IfVersion < 2.4> #apache版本;允许apache访问/usr/bin目录;否则/usr/bin/placement-api将不允许被访问
Order allow,deny
Allow from all #允许apache访问

在这里插入图片描述

6、启动Apache

[root@ct conf.d]# systemctl restart httpd.service

7、检验

#curl 测试访问

[root@ct conf.d]# curl ct:8778

在这里插入图片描述

#查看端口

[root@ct conf.d]# netstat -natp | grep 8778
在这里插入图片描述

#查看placement状态

[root@ct conf.d]# placement-status upgrade check

在这里插入图片描述

二、nova控制节点服务配置

1、创建nova数据库,并授权

[root@ct ~]# mysql -u root -p123123

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 ‘NOVA_DBPASS’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@’%’ IDENTIFIED BY ‘NOVA_DBPASS’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘NOVA_DBPASS’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’%’ IDENTIFIED BY ‘NOVA_DBPASS’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘NOVA_DBPASS’;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@’%’ IDENTIFIED BY ‘NOVA_DBPASS’;

MariaDB [(none)]> flush privileges;

在这里插入图片描述

2、管理nova用户

#创建nova用户

[root@ct ~]# openstack user create --domain default --password NOVA_PASS nova

在这里插入图片描述

#给用户添加admin权限

[root@ct ~]# openstack role add --project service --user nova admin

#创建nova服务

openstack service create --name nova --description “OpenStack Compute” compute

在这里插入图片描述

#添加断掉到nova服务中

[root@ct ~]# openstack endpoint create --region RegionOne compute public http://ct:8774/v2.1

[root@ct ~]# openstack endpoint create --region RegionOne compute internal http://ct:8774/v2.1

[root@ct ~]# openstack endpoint create --region RegionOne compute admin http://ct:8774/v2.1

3、安装nova组件

[root@ct ~]# yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler

①修改nova配置文件

[root@ct ~]# cp -a /etc/nova/nova.conf{,.bak}

[root@ct ~]# grep -Ev ‘^$|#’ /etc/nova/nova.conf.bak > /etc/nova/nova.conf

#在nova.conf中添加

openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.100.111
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@ct
openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:NOVA_DBPASS@ct/nova_api
openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:NOVA_DBPASS@ct/nova
openstack-config --set /etc/nova/nova.conf placement_database connection mysql+pymysql://placement:PLACEMENT_DBPASS@ct/placement
openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS
openstack-config --set /etc/nova/nova.conf vnc enabled true
openstack-config --set /etc/nova/nova.conf vnc server_listen ’ $my_ip’
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address ’ $my_ip’
openstack-config --set /etc/nova/nova.conf glance api_servers http://ct:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set /etc/nova/nova.conf placement project_name service
openstack-config --set /etc/nova/nova.conf placement auth_type password
openstack-config --set /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set /etc/nova/nova.conf placement auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password PLACEMENT_PASS

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②初始化数据库

#初始化nova_api的数据库

[root@ct ~]# su -s /bin/sh -c “nova-manage api_db sync” nova

③注册cell0数据库

#nova服务内部把资源划分到不同的cell中,把计算节点划分到不同的cell中;openstack内部基于cell把计算节点进行逻辑上的分组

[root@ct ~]# su -s /bin/sh -c “nova-manage cell_v2 map_cell0” nova

#创建cell1单元格

[root@ct ~]# su -s /bin/sh -c “nova-manage cell_v2 create_cell --name=cell1 --verbose” nova

#初始化nova数据库;可以通过 /var/log/nova/nova-manage.log 日志判断是否初始化成功

[root@ct ~]# su -s /bin/sh -c “nova-manage db sync” nova
在这里插入图片描述

#可使用以下命令验证cell0和cell1是否注册成功

[root@ct ~]# su -s /bin/sh -c “nova-manage cell_v2 list_cells” nova
在这里插入图片描述

④启动nova服务

[root@ct ~]# systemctl enable openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

[root@ct ~]# systemctl start openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

⑤检查端口号

[root@ct ~]# netstat -tnlup|egrep ‘8774|8775’

在这里插入图片描述

三、配置计算节点nova服务c1

1、安装nova-compute组件

[root@c1 ~]# yum -y install openstack-nova-compute

2、修改配置文件

cp -a /etc/nova/nova.conf{,.bak}

grep -Ev ‘^$|#’ /etc/nova/nova.conf.bak > /etc/nova/nova.conf

openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.100.222
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS
openstack-config --set /etc/nova/nova.conf vnc enabled true
openstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address ’ $my_ip’
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.100.111:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf glance api_servers http://ct:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set /etc/nova/nova.conf placement project_name service
openstack-config --set /etc/nova/nova.conf placement auth_type password
openstack-config --set /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set /etc/nova/nova.conf placement auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password PLACEMENT_PASS
openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu

3、重启服务

[root@c1 ~]# systemctl enable libvirtd.service openstack-nova-compute.service

[root@c1 ~]# systemctl start libvirtd.service openstack-nova-compute.service

4、在控制节点进行查看

[root@ct ~]# openstack compute service list --service nova-compute

在这里插入图片描述

#扫描当前openstack中有哪些计算节点可用,发现后会把计算节点创建到cell中,后面就可以在cell中创建虚拟机;相当于openstack内部对计算节点进行分组,把计算节点分配到不同的cell中

[root@ct ~]# su -s /bin/sh -c “nova-manage cell_v2 discover_hosts --verbose” nova

在这里插入图片描述

#修改配置文件,进行自动扫描节点

[root@ct ~]# vim /etc/nova/nova.conf

[scheduler]
discover_hosts_in_cells_interval = 300

[root@ct ~]# systemctl restart openstack-nova-api.service

在这里插入图片描述

#验证计算节点服务,查看每个节点的状态

[root@ct ~]# openstack compute service list

在这里插入图片描述

#查看各个组件api是否正常

[root@ct ~]# openstack catalog list

在这里插入图片描述

#检查是否能够查看到镜像

[root@ct ~]# openstack image list

在这里插入图片描述

#查看cell的api和placement的api是否正常,只要其中一个有误,后期无法创建虚拟机

[root@ct ~]# nova-status upgrade check

在这里插入图片描述

四、总结

1、placement

Placement提供了placement-apiWSGI脚本,用于与Apache,nginx或其他支持WSGI的Web服务器一起运行服务(通过nginx或apache实现python入口代理)。
根据用于部署OpenStack的打包解决方案,WSGI脚本可能位于/usr/bin 或中/usr/local/bin
Placement服务是从 S 版本,从nova服务中拆分出来的组件,作用是收集各个node节点的可用资源,把node节点的资源统计写入到mysql,Placement服务会被nova scheduler服务进行调用 Placement服务的监听端口是8778
需修改的配置文件:
① placement.conf
主要修改思路:
Keystone认证相关(url、HOST:PORT、域、账号密码等)
对接数据库(位置)
② 00-placement-api.conf
主要修改思路:
Apache权限、访问控制

2、nova

Nova分为控制节点、计算节点
Nova组件核心功能是调度资源,在配置文件中需要体现的部分:指向认证节点位置(URL、ENDPOINT)、调用服务、注册、提供支持等,配置文件中的所有配置参数基本都是围绕此范围进行设置

猜你喜欢

转载自blog.csdn.net/weixin_51615030/article/details/114954311