目录
一、创建nova数据库并授权
#控制节点配置
mysql -pxyz123
MariaDB [(none)]> CREATE DATABASE nova_api;
MariaDB [(none)]> CREATE DATABASE nova;
MariaDB [(none)]> CREATE DATABASE nova_cell0;
MariaDB [(none)]> show databases;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'xyz123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'xyz123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'xyz123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'xyz123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'xyz123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'xyz123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit
#命令解释见keystone篇、glance篇
二、在openstack中创建nova用户
openstack user create --domain default --password xyz123 nova
openstack role add --project service --user nova admin
openstack service create --name nova --description "OpenStack Compute" compute
#创建nova服务API的endpoint(url访问)
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
openstack endpoint list
#创建placement用户,placement也是openstack的一个辅助组件,用于资源的追踪记录
openstack user create --domain default --password xyz123 placement
openstack role add --project service --user placement admin
openstack service create --name placement --description "Placement API" placement
openstack endpoint create --region RegionOne placement public http://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778
二、在控制节点安装和配置nova组件
yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api -y
#备份配置文件
cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
cp /etc/httpd/conf.d/00-nova-placement-api.conf /etc/httpd/conf.d/00-nova-placement-api.conf.bak
#修改配置文件/etc/nova/nova.conf
vim /etc/nova/nova.conf
[DEFAULT]
2753
enabled_apis = osapi_compute,metadata
[api_database]
3479
connection = mysql+pymysql://nova:xyz123@controller/nova_api
[database]
4453
connection=mysql+pymysql://nova:xyz123@controller/nova
[DEFAULT]
3130
transport_url=rabbit://openstack:xyz123@controller
[api]
3193
auth_strategy = keystone
[keystone_authtoken] #直接在该行下复制粘贴以下内容
5771
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = xyz123
[DEFAULT]
1817
use_neutron = True
2479
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[vnc]
9896
enabled = true
9918
vncserver_listen = 192.168.122.11
9929
vncserver_proxyclient_address = 192.168.122.11
[glance]
5067
api_servers = http://controller:9292
[oslo_concurrency]
7488
lock_path=/var/lib/nova/tmp
[placement] #直接在该行下复制粘贴以下内容
8304
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = xyz123
#由于安装包存在bug,需要修改apache子配置文件,并重启apache。
#修改配置文件/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>
</VirtualHost> #在该行上面复制粘贴以上字段
#导数据
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
8ea690ce-6016-4774-831e-e4dd41f313fe
#执行这条命令时可能会报错,再执行一次就可以了
su -s /bin/sh -c "nova-manage db sync" nova
#验证
mysql -h controller -u nova -pxianyu123 -e 'use nova;show tables;' |wc -l
111
mysql -h controller -u nova -pxianyu123 -e 'use nova_api;show tables;' |wc -l
33
mysql -h controller -u nova -pxianyu123 -e 'use nova_cell0;show tables;' |wc -l
111
#起服务
systemctl enable openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl start openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
验证:
source admin-openstack.sh
openstack catalog list
ls /var/log/nova/
nova-api.log nova-consoleauth.log nova-novncproxy.log nova-scheduler.log
nova-conductor.log nova-manage.log nova-placement-api.log
三、在计算节点安装配置nova
yum install openstack-nova-compute sysfsutils -y
cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
#修改配置文件/etc/nova/nova.conf
vim /etc/nova/nova.conf
[DEFAULT]
2753
enabled_apis = osapi_compute,metadata
[DEFAULT]
3130
transport_url=rabbit://openstack:xyz123@controller
[api]
3193
auth_strategy = keystone
[keystone_authtoken] #直接在该行下复制粘贴以下内容
5771
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = xyz123
[DEFAULT]
1817
use_neutron = True
2479
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[vnc]
9896
enabled = true
9918#所有人都可以访问
vncserver_listen = 0.0.0.0
9929#计算节点的管理网卡地址
vncserver_proxyclient_address = 192.168.122.12
9947
novncproxy_base_url=http://192.168.122.11:6080/vnc_auto.html
[glance]
5067
api_servers = http://controller:9292
[oslo_concurrency]
7488
lock_path=/var/lib/nova/tmp
[placement] #直接在该行下复制粘贴以下内容
8304
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = xyz123
#如果此命令返回的值大于等于零,则计算节点支持硬件加速(虚拟化),则取消注释即可。
#如果此命令返回的值为零,则计算节点不支持硬件加速,必须将libvirt配置为使用QEMU而不是KVM。
egrep -c '(vmx|svm)' /proc/cpuinfo
2
vim /etc/nova/nova.conf
[libvirt]
6057
virt_type=qemu
总结:计算节点的/etc/nova/nova.conf配置文件配置基本相同,不同之处在于[vnc]、[libvirt]两部分,可将控制节点的配置文件复制过来略作修改即可。
使用kvm报错:实例开机提示找不到磁盘Booting from Hard Disk... GRUB.又改回qemu
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service
四、在控制节点同步计算节点
#查看服务
openstack compute service list
#新增计算节点记录,增加到nova数据库中
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
#验证所有API是否正常
nova-status upgrade check