> 技术文档 > 云计算实训(实验5、实验6)_nova api登录到host节点

云计算实训(实验5、实验6)_nova api登录到host节点

继上篇云计算实训(实验3、实验4)

(!需要注意的是,上两篇实验1、2、3、4以及这篇及后面的两篇文章,文章中controller202为自取名字,需要按各字的命名方式去修改呦!)

实验5 控制节点安装 Placement 服务

实验目的:掌握搭建Openstack Placement组件。

实验步骤:

1、使用root用户登录控制节点(Controller)。输出Hostname,确认所在节点是控制节点。

2、输入‘mysql -u root -p’命令,使用root用户登录MariaDB数据库。创建placement库,placement用户和授权。

mysql -u root -p
CREATE DATABASE placement;GRANT ALL PRIVILEGES ON placement.* TO \'placement\'@\'localhost\' IDENTIFIED BY \'PLACEMENT_DBPASS\';GRANT ALL PRIVILEGES ON placement.* TO \'placement\'@\'%\' IDENTIFIED BY \'PLACEMENT_DBPASS\';exit;

3、输入相关命令语句,在Keystone创建placement用户及关联角色。

source /etc/keystone/admin-openrcopenstack user create --domain default --password PLACEMENT_PASS placementopenstack role add --project service --user placement admin 

4、输入相关命令语句,在Keystone上创建placement Service和endpoint。

openstack service create --name placement --description \"Placement API\" placementopenstack endpoint create --region RegionOne placement public http://controller202:8778openstack endpoint create --region RegionOne placement internal http://controller202:8778openstack endpoint create --region RegionOne placement admin http://controller202:8778

注意!这里的 service 不能重复创建,运行命令openstack service list应该只能查看到1个 placement 的 service,如果有多个可以用 openstack service delete \'替换为service ID\'命令删除。这里 endpoint 不能重复创建,运行命令openstack endpoint list应该只能查看到3个 placement 的 endpoint,如果有多个可以用 openstack endpoint delete \'替换为endpoint ID\'命令删除。

 5、输入‘dnf install openstack-placement-api -y’命令语句,安装plancement-api服务相应软件包。

dnf install openstack-placement-api -y

6、输入‘cp /etc/placement/placement.conf{,.bak}’命令语句,备份placement配置文件

cp /etc/placement/placement.conf{,.bak}

7、输入相关命令语句清除配置文件注释。

grep \'^[a-Z\\[]\' /etc/placement/placement.conf.bak > /etc/placement/placement.conf

8、输入相关命令语句设置API配置项。

openstack-config --set /etc/placement/placement.conf placement_database connection mysql+pymysql://placement:PLACEMENT_DBPASS@controller202/placementopenstack-config --set /etc/placement/placement.conf auth_strategy keystoneopenstack-config --set /etc/placement/placement.conf keystone_authtoken auth_url http://controller202:5000/v3openstack-config --set /etc/placement/placement.conf keystone_authtoken memcached_servers controller202:11211openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_type passwordopenstack-config --set /etc/placement/placement.conf keystone_authtoken project_domain_name Defaultopenstack-config --set /etc/placement/placement.conf keystone_authtoken user_domain_name Defaultopenstack-config --set /etc/placement/placement.conf keystone_authtoken project_name serviceopenstack-config --set /etc/placement/placement.conf keystone_authtoken username placementopenstack-config --set /etc/placement/placement.conf keystone_authtoken password PLACEMENT_PASS

9、输入‘su -s /bin/sh -c \"placement-manage db sync\" placement’语句同步placement数据库。

su -s /bin/sh -c \"placement-manage db sync\" placement

10、输入‘mysql -u placement -pPLACEMENT_DBPASS’命令进入MariaDB查看是否有表格出现。有表格则数据库同步成功。

mysql -u placement -pPLACEMENT_DBPASS
use placement;show tables;

11、输入‘exit’退出MariaDB。

12、输入‘vim /etc/httpd/conf.d/00-placement-api.conf’命令,修改placement在httpd的相关配置,并在标签前加入相关内容。

vim /etc/httpd/conf.d/00-placement-api.conf

在标签前加入相关内容。

 = 2.4> Require all granted  <IfVersion  Order allow,deny Allow from all 

13、输入‘systemctl restart httpd’命令,重启httpd服务。

systemctl restart httpd

14、输入‘source /etc/keystone/admin-openrc 和openstack service list |grep -E \"ID|placement\" ’命令,查询placement service。

source /etc/keystone/admin-openrcopenstack service list |grep -E \"ID|placement\"

15、输入‘source /etc/keystone/admin-openrc 和openstack endpoint list |grep -E \"ID|placement\" ’命令,查询placement endpoint。

source /etc/keystone/admin-openrcopenstack endpoint list |grep -E \"ID|placement\"

16、输入‘source /etc/keystone/admin-openrc 和openstack user list |grep -E \"ID|placement\" ’命令,查询placement user。

source /etc/keystone/admin-openrcopenstack user list |grep -E \"ID|placement\"

17、输入‘ netstat -tulpn|grep 8778 ’命令,查看8778端口是否有服务运行。

netstat -tulpn|grep 8778

18、输入‘opst-proc-show.sh’命令,查看OpenStack相关服务是否是active的状态。

opst-proc-show.sh

实验6 安装Nova计算服务

实验6.1 控制节点安装 nova 服务

实验目的:掌握搭建 Openstack Nova 组件。

实验步骤:

1、使用root用户登录控制节点(Controller)。输出Hostname,确认所在节点是控制节点。

2、输入‘mysql -u root -p’命令使用root用户登录MariaDB数据库。创建nova_api和nova库,nova 用户和授权。

mysql -u root -p
CREATE DATABASE nova_api;CREATE DATABASE nova;CREATE DATABASE nova_cell0; GRANT ALL PRIVILEGES ON nova_api.* TO \'nova\'@\'localhost\' IDENTIFIED BY \'NOVA_DBPASS\';GRANT ALL PRIVILEGES ON nova_api.* TO \'nova\'@\'%\' IDENTIFIED BY \'NOVA_DBPASS\'; GRANT ALL PRIVILEGES ON nova.* TO \'nova\'@\'localhost\' IDENTIFIED BY \'NOVA_DBPASS\';GRANT ALL PRIVILEGES ON nova.* TO \'nova\'@\'%\' IDENTIFIED BY \'NOVA_DBPASS\'; GRANT ALL PRIVILEGES ON nova_cell0.* TO \'nova\'@\'localhost\' IDENTIFIED BY \'NOVA_DBPASS\';GRANT ALL PRIVILEGES ON nova_cell0.* TO \'nova\'@\'%\' IDENTIFIED BY \'NOVA_DBPASS\';exit;

3、输入相关命令,在Keystone创建系统用户nova,并关联admin 角色。

source /etc/keystone/admin-openrcopenstack user create --domain default --password NOVA_PASS novaopenstack role add --project service --user nova admin

4、输入相关命令,在Keystone上创建Nova Service和Endpoint。

source /etc/keystone/admin-openrcopenstack service create --name nova --description \"OpenStack Compute\" computeopenstack endpoint create --region RegionOne compute public http://controller202:8774/v2.1openstack endpoint create --region RegionOne compute internal http://controller202:8774/v2.1openstack endpoint create --region RegionOne compute admin http://controller202:8774/v2.1

注意,这里的 service 不能重复创建,运行命令openstack service list应该只能查看到1个 Nova 的 service,如果有多个可以用 openstack service delete \'替换为service ID\'命令删除。这里 endpoint 不能重复创建,运行命令openstack endpoint list应该只能查看到3个 Nova 的 endpoint,如果有多个可以用 openstack endpoint delete \'替换为endpoint ID\'命令删除。

5、输入相关命令,安装Nova服务相应软件包。

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

6、输入相关命令,备份Nova的配置文件。

cp /etc/nova/nova.conf{,.bak}grep \'^[a-Z\\[]\' /etc/nova/nova.conf.bak >/etc/nova/nova.conf

7、输入相关命令,修改相应服务的配置文件。

openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadataopenstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbitopenstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystoneopenstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.11openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron Trueopenstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriveropenstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@controller202:5672/openstack-config --set /etc/nova/nova.conf DEFAULT verbose Trueopenstack-config --set /etc/nova/nova.conf DEFAULT debug Trueopenstack-config --set /etc/nova/nova.conf DEFAULT log_dir /var/log/novaopenstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:NOVA_DBPASS@controller202/nova_apiopenstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:NOVA_DBPASS@controller202/novaopenstack-config --set /etc/nova/nova.conf glance api_servers http://controller202:9292openstack-config --set /etc/nova/nova.conf api auth_strategy keystoneopenstack-config --set /etc/nova/nova.conf keystone_authtoken www_authenticate_uri http://controller202:5000openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller202:5000openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller202:11211openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type passwordopenstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Defaultopenstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Defaultopenstack-config --set /etc/nova/nova.conf keystone_authtoken project_name serviceopenstack-config --set /etc/nova/nova.conf keystone_authtoken username novaopenstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASSopenstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmpopenstack-config --set /etc/nova/nova.conf vnc enabled trueopenstack-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 service_user send_service_user_token trueopenstack-config --set /etc/nova/nova.conf service_user auth_url http://controller202:5000/identityopenstack-config --set /etc/nova/nova.conf service_user auth_strategy keystoneopenstack-config --set /etc/nova/nova.conf service_user auth_type passwordopenstack-config --set /etc/nova/nova.conf service_user project_domain_name Defaultopenstack-config --set /etc/nova/nova.conf service_user project_name serviceopenstack-config --set /etc/nova/nova.conf service_user user_domain_name Defaultopenstack-config --set /etc/nova/nova.conf service_user username novaopenstack-config --set /etc/nova/nova.conf service_user password NOVA_PASSopenstack-config --set /etc/nova/nova.conf placement region_name RegionOneopenstack-config --set /etc/nova/nova.conf placement project_domain_name Defaultopenstack-config --set /etc/nova/nova.conf placement project_name serviceopenstack-config --set /etc/nova/nova.conf placement auth_type passwordopenstack-config --set /etc/nova/nova.conf placement user_domain_name Defaultopenstack-config --set /etc/nova/nova.conf placement auth_url http://controller202:5000/v3openstack-config --set /etc/nova/nova.conf placement username placementopenstack-config --set /etc/nova/nova.conf placement password PLACEMENT_PASS

8、输入‘su -s /bin/sh -c \"nova-manage api_db sync\" nova’命令,同步nova_api数据库。

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

9、输入‘su -s /bin/sh -c \"nova-manage cell_v2 map_cell0\" nova’命令,注册cell0数据库。

su -s /bin/sh -c \"nova-manage cell_v2 map_cell0\" nova

10、输入‘su -s /bin/sh -c \"nova-manage cell_v2 create_cell --name=cell1 --verbose\" nova’命令,创建一个名为cell1的 cell(单元)。

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

11、输入‘su -s /bin/sh -c \"nova-manage cell_v2 list_cells\" nova’命令,查看cell0和cell1。

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

12、输入‘su -s /bin/sh -c \"nova-manage api_db sync\" nova’命令,同步nova_api数据库。

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

13、输入‘mysql -u nova -pNOVA_DBPASS’命令,进入MariaDB查看是否有表格出现。有则表示数据库同步成功。

mysql -u nova -pNOVA_DBPASS
use nova;show tables;use nova_api;show tables;use nova_cell0;show tables;

14、输入‘exit’,退出MariaDB。

15、输入相关命令,启动Nova系列服务,并设置为开机启动。

systemctl enable \\ openstack-nova-api \\ openstack-nova-scheduler \\ openstack-nova-conductor \\ openstack-nova-novncproxysystemctl start \\ openstack-nova-api \\ openstack-nova-scheduler \\ openstack-nova-conductor \\ openstack-nova-novncproxy

实验6.2 计算节点安装 nova 服务

实验目的:掌握搭建 Openstack Nova 组件。

实验步骤:

1、使用root用户登录计算节点(Computer)。输出Hostname,确认所在节点是计算节点。

2、输入相关命令,安装nova-compute和Openstack-utils。

dnf install /opt/repo/openstack-yoga/python3-sqlalchemy-1.4.31-1.el8.x86_64.rpm -ydnf install openstack-nova-compute -ydnf install openstack-utils -y

3、输入相关命令,备份Nova的配置文件。

cp /etc/nova/nova.conf{,.bak}grep \'^[a-Z\\[]\' /etc/nova/nova.conf.bak >/etc/nova/nova.conf

4、输入相关命令,修改相应服务的配置文件。

openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadataopenstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@controller202openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.31openstack-config --set /etc/nova/nova.conf DEFAULT compute_driver libvirt.LibvirtDriveropenstack-config --set /etc/nova/nova.conf DEFAULT verbose Trueopenstack-config --set /etc/nova/nova.conf DEFAULT debug Trueopenstack-config --set /etc/nova/nova.conf DEFAULT log_dir /var/log/novaopenstack-config --set /etc/nova/nova.conf DEFAULT instances_path /var/lib/nova/instancesopenstack-config --set /etc/nova/nova.conf api auth_strategy keystoneopenstack-config --set /etc/nova/nova.conf keystone_authtoken www_authenticate_uri http://controller202:5000/openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller202:5000/openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller202:11211openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type passwordopenstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Defaultopenstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Defaultopenstack-config --set /etc/nova/nova.conf keystone_authtoken project_name serviceopenstack-config --set /etc/nova/nova.conf keystone_authtoken username novaopenstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASSopenstack-config --set /etc/nova/nova.conf service_user send_service_user_token trueopenstack-config --set /etc/nova/nova.conf service_user auth_url http://controller202:5000/identityopenstack-config --set /etc/nova/nova.conf service_user auth_strategy keystoneopenstack-config --set /etc/nova/nova.conf service_user auth_type passwordopenstack-config --set /etc/nova/nova.conf service_user project_domain_name Defaultopenstack-config --set /etc/nova/nova.conf service_user project_name serviceopenstack-config --set /etc/nova/nova.conf service_user user_domain_name Defaultopenstack-config --set /etc/nova/nova.conf service_user username novaopenstack-config --set /etc/nova/nova.conf service_user password NOVA_PASSopenstack-config --set /etc/nova/nova.conf vnc enabled trueopenstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address \'$my_ip\'openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://10.0.0.11:6080/vnc_auto.htmlopenstack-config --set /etc/nova/nova.conf glance api_servers http://controller202:9292openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmpopenstack-config --set /etc/nova/nova.conf placement region_name RegionOneopenstack-config --set /etc/nova/nova.conf placement project_domain_name Defaultopenstack-config --set /etc/nova/nova.conf placement project_name serviceopenstack-config --set /etc/nova/nova.conf placement auth_type passwordopenstack-config --set /etc/nova/nova.conf placement user_domain_name Defaultopenstack-config --set /etc/nova/nova.conf placement auth_url http://controller202:5000/v3openstack-config --set /etc/nova/nova.conf placement username placementopenstack-config --set /etc/nova/nova.conf placement password PLACEMENT_PASSopenstack-config --set /etc/nova/nova.conf libvirt virt_type qemuopenstack-config --set /etc/nova/nova.conf libvirt cpu_mode none

5、输入相关命令,启动libvirtd服务,并设置为开机启动。

systemctl enable libvirtd systemctl enable openstack-nova-computesystemctl start libvirtd systemctl start openstack-nova-compute

6、输入‘opst-proc-show.sh’命令查看OpenStack相关服务是否是active的状态。

opst-proc-show.sh

7、输入‘grep -o controller202 /etc/nova/nova.conf|wc -l’命令,验证nova.conf配置文件里面controller出现的次数。

grep -o controller202 /etc/nova/nova.conf|wc -l

实验6.3 控制节点验证 nova 服务是否安装正确

实验目的:掌握搭建 Openstack Nova 组件。

实验步骤:

1、使用root用户登录控制节点(Controller)。输出Hostname,确认所在节点是控制节点。

2、输入‘opst-proc-show.sh’命令,查看OpenStack相关服务是否是active的状态。

opst-proc-show.sh

3、输入‘systemctl status openstack-nova-compute’命令,检查openstack-nova-compute服务是否运行在控制节点。

systemctl status openstack-nova-compute

4、输入‘grep -o controller202 /etc/nova/nova.conf|wc -l’命令,验证nova.conf配置文件里面controller出现的次数。

grep -o controller202 /etc/nova/nova.conf|wc -l

5、输入‘source /etc/keystone/admin-openrc 和openstack service list |grep -E \"ID|nova\"’命令,查询nova service。

source /etc/keystone/admin-openrcopenstack service list |grep -E \"ID|nova\"

6、输入‘source /etc/keystone/admin-openrc 和openstack endpoint list |grep -E \"ID|nova\"’命令,查询nova endpoint。

source /etc/keystone/admin-openrcopenstack endpoint list |grep -E \"ID|nova\"

7、输入‘source /etc/keystone/admin-openrc 和openstack user list |grep -E \"ID|nova\"’命令,查询nova user。

source /etc/keystone/admin-openrcopenstack user list |grep -E \"ID|nova\"

8、输入‘systemctl -a|grep -E \'UNIT|nova\'’命令,查看Nova 4个服务状态是否已启用(active)。

systemctl -a|grep -E \'UNIT|nova\'

9、输入‘openstack compute service list  --service nova-compute’命令,验证Compute服务是否和步骤4生成的一致。

openstack compute service list --service nova-compute

10、输入‘su -s /bin/sh -c \"nova-manage cell_v2 discover_hosts --verbose\" nova’命令,发现计算节点主机。

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