云计算实训(实验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