四、安装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 | | +--------------------------------------+--------+--------+--------+