OpenStack--部署nova控制节点与计算节点

官方部署文档 : https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/common/get_started_compute.html

1、安装并配置 nova 控制节点:

官方安装文档: https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/nova-controller-install.html

#1:安装 nova 控制端:
[root@linux-host1 ~]# yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api

#2:准备数据库:
[root@linux-host4 ~]# mysql -uroot -p123456
MariaDB [(none)]> CREATE DATABASE nova_api;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova123';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> CREATE DATABASE nova;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> CREATE DATABASE nova_cell0;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 
'nova123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#3:验证数据库:

#4:创建 nova 服务并注册:
#4.1:创建 nova 服务: 
[root@linux-host1 ~]# openstack service create --name nova --description "OpenStack Compute" 
compute
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Compute |
| enabled | True |
| id | f5d5af647ae040eca5bf7d878c23086d |
| name | nova |
| type | compute |
+-------------+----------------------------------+
#4.2:创建公共端点: 
[root@linux-host1 ~]# openstack endpoint create --region RegionOne compute public http://192.168.10.100:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 9ea17b1200fc40ed84de2c66651d8298 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f5d5af647ae040eca5bf7d878c23086d |
| service_name | nova |
| service_type | compute |
| url | http://192.168.10.100:8774/v2.1 |
+--------------+----------------------------------+
#4.3:创建私有端点: 
[root@linux-host1 ~]# openstack endpoint create --region RegionOne compute internal http://192.168.10.100:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | cc3e3b629fbf44a69948922773836804 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f5d5af647ae040eca5bf7d878c23086d |
| service_name | nova |
| service_type | compute |
| url | http://192.168.10.100:8774/v2.1 |
+--------------+----------------------------------+
#4.4:创建管理端点: 
[root@linux-host1 ~]# openstack endpoint create --region RegionOne compute admin 
http://192.168.10.100:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 51dca1e673ee419f8c75fb9646520003 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f5d5af647ae040eca5bf7d878c23086d |
| service_name | nova |
| service_type | compute |
| url | http://192.168.10.100:8774/v2.1 |
+--------------+----------------------------------+
#4.5:创建 placement 用户并授权: 
# Placement 用户密码设置为 placement
[root@linux-host1 ~]# openstack user create --domain default --password-prompt placement
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | 961b40ed4c6b40a9b266ce5e451a4292 |
| enabled | True |
| id | f052cbbd13d341e3bee6a0da23588802 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
#4.6:授权 admin 权限: 
[root@linux-host1 ~]# openstack role add --project service --user placement admin

#5:创建 placement API 并注册:
[root@linux-host1 ~]# openstack service create --name placement --description "Placement API" 
placement
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Placement API |
| enabled | True |
| id | af5b2be1a8e24a2d9a619f318a04022a |
| name | placement |
| type | placement |
+-------------+----------------------------------+
[root@linux-host1 ~]# openstack endpoint create --region RegionOne placement public http://192.168.10.100:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | c1eb9cc9c3bf42bd9b49ac86b309fe2b |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | af5b2be1a8e24a2d9a619f318a04022a |
| service_name | placement |
| service_type | placement |
| url | http://192.168.10.100:8778 |
+--------------+----------------------------------+
[root@linux-host1 ~]# openstack endpoint create --region RegionOne placement internal http://192.168.10.100:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 65cf7e1dbeac440ea6a4e369e816d83e |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | af5b2be1a8e24a2d9a619f318a04022a |
| service_name | placement |
| service_type | placement |
| url | http://192.168.10.100:8778 |
+--------------+----------------------------------+
[root@linux-host1 ~]# openstack endpoint create --region RegionOne placement admin http://192.168.10.100:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 8c073907d3d84c5995df683b0a2c4f5b |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | af5b2be1a8e24a2d9a619f318a04022a |
| service_name | placement |
| service_type | placement |
| url | http://192.168.10.100:8778 |
+--------------+----------------------------------+

#6:编辑配置文件:
#6.1:编辑 nova.conf: 
[root@linux-host1 ~]# vim /etc/nova/nova.conf
2629 enabled_apis=osapi_compute,metadata
3021 transport_url=rabbit://openstack:123456@192.168.10.205 #rabbit 服务器 IP,不支持代理
3085 auth_strategy=keystone
3380 connection = mysql+pymysql://nova:nova123@192.168.10.100/nova_api
4398 connection = mysql+pymysql://nova:nova123@192.168.10.100/nova
5599 auth_uri = http://192.168.10.100:5000
5600 auth_url = http://192.168.10.100:35357
5601 memcached_servers = 192.168.10.100:11211
5602 auth_type = password
5603 project_domain_name = default
5604 user_domain_name = default
5605 project_name = service
5606 username = nova
5607 password = nova #nova 用户的密码,不是数据库的密码
2306 use_neutron=true
2465 firewall_driver=nova.virt.firewall.NoopFirewallDriver
9677 enabled=true
9700 vncserver_listen=192.168.10.201
9712 vncserver_proxyclient_address=192.168.10.201
4957 api_servers=http://192.168.10.100:9292
7250 lock_path=/var/lib/nova/tmp
#详细配置:
1:[DEFAULT]
2306:use_neutron=true
2465:firewall_driver=nova.virt.firewall.NoopFirewallDriver
2629:enabled_apis=osapi_compute,metadata
3021:transport_url = rabbit://openstack:123456@192.168.10.205
3028:rpc_backend=rabbit
3069:[api]
3085:auth_strategy=keystone
3367:[api_database]
3380:connection = mysql+pymysql://nova:nova123@192.168.10.100/nova_api
4370:[database]
4398:connection = mysql+pymysql://nova:nova123@192.168.10.100/nova
4939:[glance]
4957:api_servers=http://192.168.10.100:9292
5598:[keystone_authtoken]
5599:auth_uri = http://192.168.10.100:5000
5600:auth_url = http://192.168.10.100:35357
5601:memcached_servers = 192.168.10.100:11211
5602:auth_type = password
5603:project_domain_name = default
5604:user_domain_name = default
5605:project_name = service
5606:username = nova
5607:password = nova
7235:[oslo_concurrency]
7250:lock_path=/var/lib/nova/tmp
8081:[placement]
8082:os_region_name = RegionOne
8083:project_domain_name = Default
8084:project_name = service
8085:auth_type = password
8086:user_domain_name = Default
8087:auth_url = http://192.168.10.100:35357/v3
8088:username = placement
8089:password = placement
9669:[vnc]
9685:enabled=true
9708:vncserver_listen=192.168.10.201
9720:vncserver_proxyclient_address=192.168.10.201
#6.2:配置 apache 允许访问 placement API:
[root@linux-host1 ~]# vim /etc/httpd/conf.d/00-nova-placement-api.conf
#最下方添加以下配置:
<Directory /usr/bin>
 <IfVersion >= 2.4>
 Require all granted
 </IfVersion>
 <IfVersion < 2.4>
 Order allow,deny
 Allow from all
 </IfVersion>
</Directory>
#6.3:重启 http: 
[root@linux-host1 ~]# systemctl restart httpd
#6.4:初始化数据库: #nova_api 数据库
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
#nova 数据库
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage db sync" nova
#nova cell0 数据库
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
#nova cell1 数据库
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" 
nova
7972a48a-bddb-4957-b773-852565a25725

#5:验证 nova cell0 和 nova cell1 是否正常注册:
[root@linux-host1 ~]# nova-manage cell_v2 list_cells
+-------+--------------------------------------+
| Name | UUID |
+-------+--------------------------------------+
| cell0 | 00000000-0000-0000-0000-000000000000 |
| cell1 | 7972a48a-bddb-4957-b773-852565a25725 |
+-------+--------------------------------------+

#6:启动并将 nova 服务设置为开机启动: 
[root@linux-host1 ~]# systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service 
openstack-nova-novncproxy.service
[root@linux-host1 ~]# systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service 
openstack-nova-novncproxy.service

#7:重启 nova 控制端脚本: 
[root@linux-host1 ~]# cat nova-restart.sh 
#!/bin/bash
systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@linux-host1 ~]# chmod a+x nova-restart.sh

#8:查看 nova 服务日志: 
#9:查看 rabbitMQ 连接:

#10:验证 nova 控制端:
[root@linux-host1 ~]# nova service-list
2、部署 nova 计算节点:

在计算节点服务器部署

#1:安装 nova 计算服务:
[root@linux-host2 ~]# yum install openstack-nova-compute

#2:配置 nova.conf:
[root@linux-host2 ~]# vim /etc/nova/nova.conf
2629 enabled_apis=osapi_compute,metadata
3021 transport_url = rabbit://openstack:123456@192.168.10.205
3085 auth_strategy=keystone
5596 [keystone_authtoken]
5597 auth_uri = http://192.168.10.100:5000
5598 auth_url = http://192.168.10.100:35357
5599 memcached_servers = 192.168.10.100:11211
5600 auth_type = password
5601 project_domain_name = default
5602 user_domain_name = default
5603 project_name = service
5604 username = nova
5605 password = nova
2306 use_neutron=true
2465 firewall_driver=nova.virt.firewall.NoopFirewallDriver
9659 [vnc]
9675 enabled=true
4937 [glance]
4955 api_servers=http://192.168.10.100:9292
7248 lock_path=/var/lib/nova/tmp
8080 os_region_name = RegionOne
8081 project_domain_name = Default
8082 project_name = service
8083 auth_type = password
8084 user_domain_name = Default
8085 auth_url = http://192.168.10.100:35357/v3
8086 username = placement
8087 password = placement
#全部配置:
1:[DEFAULT]
2306:use_neutron=true
2465:firewall_driver=nova.virt.firewall.NoopFirewallDriver
2629:enabled_apis=osapi_compute,metadata
3021:transport_url = rabbit://openstack:123456@192.168.10.205
3069:[api]
3085:auth_strategy=keystone
4937:[glance]
4955:api_servers=http://192.168.10.100:9292
5596:[keystone_authtoken]
5597:auth_uri = http://192.168.10.100:5000
5598:auth_url = http://192.168.10.100:35357
5599:memcached_servers = 192.168.10.100:11211
5600:auth_type = password
5601:project_domain_name = default
5602:user_domain_name = default
5603:project_name = service
5604:username = nova
5605:password = nova
7233:[oslo_concurrency]
7248:lock_path=/var/lib/nova/tmp
8079:[placement]
8080:os_region_name = RegionOne
8081:project_domain_name = Default
8082:project_name = service
8083:auth_type = password
8084:user_domain_name = Default
8085:auth_url = http://192.168.10.100:35357/v3
8086:username = placement
8087:password = placement
9667:[vnc]
9683:enabled=true
9706:vncserver_listen=0.0.0.0
9718:vncserver_proxyclient_address=192.168.10.202
9738:novncproxy_base_url=http://192.168.10.100:6080/vnc_auto.html

#3:确认计算节点是否支持硬件加速:
[root@linux-host2 ~]# egrep -c '(vmx|svm)' /proc/cpuinfo
40

#4:启动 nova 计算服务并设置为开机启动:
[root@linux-host2 ~]# systemctl enable libvirtd.service openstack-nova-compute.service
[root@linux-host2 ~]# systemctl start libvirtd.service openstack-nova-compute.service

#5:添加计算节点到 cell 数据库:
[root@linux-host1 ~]# source admin-openstack.sh 
[root@linux-host1 ~]# openstack hypervisor list
+----+-------------------------+-----------------+----------------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State |
+----+-------------------------+-----------------+----------------+-------+
| 1 | linux-host2.exmaple.com | QEMU | 192.168.10.202 | up |
+----+-------------------------+-----------------+----------------+-------+

#6:主动发现计算节点: #使用命令发现:
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
#定期主动发现:
[root@linux-host1 ~]# vim /etc/nova/nova.conf
8577 [scheduler]
8684 discover_hosts_in_cells_interval=300
[root@linux-host1 ~]# bash nova- restart.sh #重启nova服务

#7:验证计算节点:
[root@linux-host1 ~]# nova host-list
[root@linux-host1 ~]# nova service-list
[root@linux-host1 nova]# nova image-list
[root@linux-host1 nova]# openstack image list
[root@linux-host1 ~]# openstack compute service list
#列出服务组件是否成功注册
[root@linux-host1 ~]# nova-status upgrade check
#检查 cells 和 placement API 是否工作正常:
[root@linux-host1 ~]# openstack catalog list
#列出 keystone 服务中的端点,以验证 keystone 的连通性。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值