安装并配置控制器节点

mysql -u root -p进入数据库

创建三个数据库

MariaDB [(none)]> CREATE DATABASE nova_api;

MariaDB [(none)]> CREATE DATABASE nova;

MariaDB [(none)]> CREATE DATABASE nova_cell0;

 

授权

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \

  IDENTIFIED BY '123456';

 

. admin-openrc 以管理员权限

openstack user create --domain default --password-prompt nova 创建nova用户

openstack role add --project service --user nova admin将admin角色添加到nova用户

openstack service create --name nova   --description "OpenStack Compute" compute创建nova服务实体

 

创建Compute API服务端点

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 user create --domain default --password-prompt placement 创建密码

openstack role add --project service --user placement admin用户添加到具有管理员角色的服务项目中

openstack service create --name placement --description "Placement API" placement在服务目录中创建Placement API条目

创建Placement API服务端点

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

安装软件包

yum install openstack-nova-api openstack-nova-conductor \

  openstack-nova-console openstack-nova-novncproxy \

  openstack-nova-scheduler openstack-nova-placement-api

 

编辑/etc/nova/nova.conf

[DEFAULT]

# ...

enabled_apis = osapi_compute,metadata

[api_database]

# ...

connection = mysql+pymysql://nova:123456@controller/nova_api

[database]

# ...

connection = mysql+pymysql://nova:123456@controller/nova

[DEFAULT]

# ...

transport_url = rabbit://openstack:123456@controller

[api]

# ...

auth_strategy = keystone

[keystone_authtoken]

# ...

auth_url = http://controller:5000/v3

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = nova

password = 123456

[DEFAULT]

#...

my_ip  =  192.168.12.150

[DEFAULT]

#...

use_neutron  =  True

firewall_driver  =  nova.virt.firewall.NoopFirewallDriver

 

[vnc]

enabled = true

# ...

server_listen = $my_ip

server_proxyclient_address = $my_ip

[glance]

# ...

api_servers = http://controller:9292

 [oslo_concurrency]

# ...

lock_path = /var/lib/nova/tmp

 [placement]

# ... placement

os_region_name = RegionOne

project_domain_name = Default

project_name = service

auth_type = password

user_domain_name = Default

auth_url = http://controller:5000/v3

username = placement

password =123456

 

填充数据库

su -s /bin/sh -c "nova-manage api_db sync" nova 忽略抛出错误

 

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova注册cell0数据库

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova创建cell1单元格

su -s /bin/sh -c "nova-manage db sync" nova填充nova数据库

nova-manage cell_v2 list_cells 验证nova cell0cell1是否正确注册

 

启动服务

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

systemctl status openstack-nova-api.service \

  openstack-nova-consoleauth.service openstack-nova-scheduler.service \

  openstack-nova-conductor.service openstack-nova-novncproxy.service

日志位置/var/log/nova/