四、安裝compute服務
1.1創建數據庫並授權
[root@controller1 ~]# mysql -uroot -p Enter password: MariaDB [(none)]> CREATE DATABASE nova; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';
1.2創建用戶並添加角色和項目
[root@controller1 ~]# source admin-openrc.sh [root@controller1 ~]# openstack user create --domain default --password-prompt nova User Password:nova Repeat User Password:nova +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | fc79ff2a87f64afd85a463149910aeb1 | | name | nova | +-----------+----------------------------------+ [root@controller1 ~]# openstack role add --project service --user nova admin
1.3創建服務實體
[root@controller1 ~]# openstack service create --name nova --description "OpenStack Compute" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | f09f55bb6ec14c2fb87a10249be98f1c | | name | nova | | type | compute | +-------------+----------------------------------+
1.4創建API訪問端點
[root@controller1 ~]# openstack endpoint create --region RegionOne compute public http://controller1:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | e41b34cee3354c60ab4166133b144453 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | f09f55bb6ec14c2fb87a10249be98f1c | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ [root@controller1 ~]# openstack endpoint create --region RegionOne compute internal http://controller1:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 8761f7304315448f86ed74b12cbfa10b | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | f09f55bb6ec14c2fb87a10249be98f1c | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ [root@controller1 ~]# openstack endpoint create --region RegionOne compute admin http://controller1:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | b8997c6318824cffbdb37d1c617d5d75 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | f09f55bb6ec14c2fb87a10249be98f1c | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+
2.1安裝配置組件
[root@controller1 ~]# yum install openstack-nova-api openstack-nova-cert openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler python-novaclient [root@controller1 ~]# vi /etc/nova/nova.conf [database] connection = mysql://nova:nova@controller1/nova [DEFAULT] rpc_backend = rabbit [oslo_messaging_rabbit] rabbit_host = controller1 rabbit_userid = openstack rabbit_password = openstack [DEFAULT] auth_strategy = keystone [keystone_authtoken] auth_uri = http://controller1:5000 auth_url = http://controller1:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = nova [DEFAULT] my_ip = 10.0.0.11 [DEFAULT] network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver [vnc] vncserver_listen = $my_ip vncserver_proxyclient_address = $my_ip [glance] host = controller1 [oslo_concurrency] lock_path = /var/lib/nova/tmp [DEFAULT] enabled_apis=osapi_compute,metadata [DEFAULT] verbose = True #可選,用於排錯
2.2初始化數據庫
[root@controller1 ~]# su -s /bin/sh -c "nova-manage db sync" nova
2.3啓動和設置開機自啓動
[root@controller1 ~]# systemctl enable openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-api.service to /usr/lib/systemd/system/openstack-nova-api.service. Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-cert.service to /usr/lib/systemd/system/openstack-nova-cert.service. Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-consoleauth.service to /usr/lib/systemd/system/openstack-nova-consoleauth.service. Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-scheduler.service to /usr/lib/systemd/system/openstack-nova-scheduler.service. Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-conductor.service to /usr/lib/systemd/system/openstack-nova-conductor.service. Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-novncproxy.service to /usr/lib/systemd/system/openstack-nova-novncproxy.service. [root@controller1 ~]# systemctl start openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
3.0安裝GLANCE服務(compute1端)
3.1安裝openstack源
[root@controller1 ~]# yum install centos-release-openstack-liberty
3.2安裝相關包
[root@compute1 ~]# yum install openstack-nova-compute sysfsutils
3.3編輯配置文件
[root@compute1 ~]# vi /etc/nova/nova.conf [DEFAULT] rpc_backend = rabbit [oslo_messaging_rabbit] rabbit_host = controller1 rabbit_userid = openstack rabbit_password = openstack [DEFAULT] auth_strategy = keystone [keystone_authtoken] auth_uri = http://controller1:5000 auth_url = http://controller1:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = nova [DEFAULT] my_ip = 10.0.0.31 [DEFAULT] network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver [vnc] enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = $my_ip novncproxy_base_url = http://controller1:6080/vnc_auto.html [glance] host = controller1 [oslo_concurrency] lock_path = /var/lib/nova/tmp [DEFAULT] verbose = True #可選,用於排錯
3.4確定使用何種虛擬化技術,返回值爲0則不支持硬件加速,需要配置libvirt以使用QEMU;返回值爲1或者非0則支持硬件加速,可以使用KVM無需要額外配置。
[root@compute1 ~]# egrep -c '(vmx|svm)' /proc/cpuinfo 0
3.5當返回值爲0時,配置使用QEMU,否則跳過此步
[root@compute1 ~]# vi /etc/nova/nova.conf [libvirt] virt_type=qemu
3.6啓動服務並設置自啓動
[root@compute1 ~]# systemctl enable libvirtd.service openstack-nova-compute.service Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-compute.service to /usr/lib/systemd/system/openstack-nova-compute.service. [root@compute1 ~]# systemctl start libvirtd.service openstack-nova-compute.service
4.0驗證
4.1查看服務組件和註冊信息
[root@controller1 ~]# nova service-list +----+------------------+-------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+-------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-conductor | controller1 | internal | enabled | up | 2016-07-12T08:37:30.000000 | - | | 2 | nova-consoleauth | controller1 | internal | enabled | up | 2016-07-12T08:37:31.000000 | - | | 3 | nova-scheduler | controller1 | internal | enabled | up | 2016-07-12T08:37:31.000000 | - | | 4 | nova-cert | controller1 | internal | enabled | up | 2016-07-12T08:37:31.000000 | - | | 5 | nova-compute | compute1 | nova | enabled | up | 2016-07-12T08:37:22.000000 | - | +----+------------------+-------------+----------+---------+-------+----------------------------+-----------------+
4.2查看認證服務中API端點信息和可連接性(忽略警告信息)
[root@controller1 ~]# nova endpoints WARNING: glance has no endpoint in ! Available endpoints for this service: +-----------+----------------------------------+ | glance | Value | +-----------+----------------------------------+ | id | 249f9d5389aa49e79ae5e02342e559c8 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:9292 | +-----------+----------------------------------+ +-----------+----------------------------------+ | glance | Value | +-----------+----------------------------------+ | id | b59af580e55b4f24b4f60cdc00042750 | | interface | public | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:9292 | +-----------+----------------------------------+ +-----------+----------------------------------+ | glance | Value | +-----------+----------------------------------+ | id | e18c793a238d4284b61563a8bb87549f | | interface | admin | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:9292 | +-----------+----------------------------------+ WARNING: nova has no endpoint in ! Available endpoints for this service: +-----------+-------------------------------------------------------------+ | nova | Value | +-----------+-------------------------------------------------------------+ | id | 25fb65eb3b1d4dbab5ba4288f939a657 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:8774/v2/c4d6ba1cb9424cbcaa32e6b9daeb4a19 | +-----------+-------------------------------------------------------------+ +-----------+-------------------------------------------------------------+ | nova | Value | +-----------+-------------------------------------------------------------+ | id | 74f3704ca16c44459bc8181b83ec85f8 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:8774/v2/c4d6ba1cb9424cbcaa32e6b9daeb4a19 | +-----------+-------------------------------------------------------------+ +-----------+-------------------------------------------------------------+ | nova | Value | +-----------+-------------------------------------------------------------+ | id | d25bfda9db8a44ab822376d847cba83f | | interface | public | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:8774/v2/c4d6ba1cb9424cbcaa32e6b9daeb4a19 | +-----------+-------------------------------------------------------------+ WARNING: keystone has no endpoint in ! Available endpoints for this service: +-----------+----------------------------------+ | keystone | Value | +-----------+----------------------------------+ | id | b5fb1bde51974e89835840a695042c29 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:5000/v2.0 | +-----------+----------------------------------+ +-----------+----------------------------------+ | keystone | Value | +-----------+----------------------------------+ | id | bbf5d984ed76415ba2ce2821bc8ed250 | | interface | public | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:5000/v2.0 | +-----------+----------------------------------+ +-----------+----------------------------------+ | keystone | Value | +-----------+----------------------------------+ | id | d5d821b16b02482f9c66027da27be217 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | url | http://controller1:35357/v2.0 | +-----------+----------------------------------+
4.3查看鏡像服務目錄並驗證鏡像服務連通性
[root@comtroller1 ~]# nova image-list +--------------------------------------+--------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+--------+--------+--------+ | ba4fd4dd-7717-4e11-8a64-5b063882b0aa | cirros | ACTIVE | | +--------------------------------------+--------+--------+--------+