在控制节点上执行

controllerHost='controller'
controllerIP='172.31.240.49'
MYSQL_PASSWD='m4r!adbOP'
RABBIT_PASSWD='0penstackRMQ'
NOVA_PASSWD='nova1234!'
PLACEMENT_PASSWD='placement1234!'

1.创建数据库

mysql -uroot -p${MYSQL_PASSWD} << EOF
     DROP DATABASE IF EXISTS nova;
     CREATE DATABASE nova;
     DROP DATABASE IF EXISTS nova_api;
     CREATE DATABASE nova_api;
     DROP DATABASE IF EXISTS nova_cell0;
     CREATE DATABASE nova_cell0;
     DROP DATABASE IF EXISTS placement;
     CREATE DATABASE placement;
     GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '${NOVA_PASSWD}';
     GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '${NOVA_PASSWD}';
     GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '${NOVA_PASSWD}';
     GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '${NOVA_PASSWD}';
     GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '${NOVA_PASSWD}';
     GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '${NOVA_PASSWD}';
     GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '${PLACEMENT_PASSWD}';
     GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '${PLACEMENT_PASSWD}';
EOF

2.创建认证用户并授权

openstack user create --domain default --password ${NOVA_PASSWD} nova
openstack role add --project service --user nova admin

openstack user create --domain default --password ${PLACEMENT_PASSWD} placement
openstack role add --project service --user placement admin

3.创建服务实体和端点

openstack service create --name nova  --description "OpenStack Compute" compute
openstack endpoint create --region RegionOne compute public http://${controllerHost}:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://${controllerHost}:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://${controllerHost}:8774/v2.1

openstack service create --name placement --description "Placement API" placement
openstack endpoint create --region RegionOne placement public http://${controllerHost}:8778
openstack endpoint create --region RegionOne placement internal http://${controllerHost}:8778
openstack endpoint create --region RegionOne placement admin http://${controllerHost}:8778

4.安装nova组件

yum -y install openstack-nova-api openstack-nova-placement-api openstack-nova-scheduler openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy

5.配置nova服务访问数据库

openstack-config --set  /etc/nova/nova.conf  api_database  connection  mysql+pymysql://nova:${NOVA_PASSWD}@${controllerHost}/nova_api
openstack-config --set  /etc/nova/nova.conf  database connection  mysql+pymysql://nova:${NOVA_PASSWD}@${controllerHost}/nova
openstack-config --set  /etc/nova/nova.conf  placement_database connection  mysql+pymysql://placement:${PLACEMENT_PASSWD}@${controllerHost}/placement

6.配置nova服务访问memcached服务

openstack-config --set  /etc/nova/nova.conf  cache backend oslo_cache.memcache_pool
openstack-config --set  /etc/nova/nova.conf  cache enabled True
openstack-config --set  /etc/nova/nova.conf  cache memcache_servers  ${controllerHost}:11211

7.配置nova服务访问rabbitmq服务

openstack-config --set  /etc/nova/nova.conf  DEFAULT transport_url rabbit://openstack:${RABBIT_PASSWD}@${controllerHost}:5672

8.配置nova访问glance服务

openstack-config --set  /etc/nova/nova.conf  glance api_servers  http://${controllerHost}:9292

9.配置nova服务访问认证服务

openstack-config --set  /etc/nova/nova.conf  api auth_strategy  keystone
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken auth_url  http://${controllerHost}:5000/v3
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken auth_type  password
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken project_domain_name  Default
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken user_domain_name  Default
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken project_name  service
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken username  nova
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken password  ${NOVA_PASSWD}

10.配置统一资源管理placement服务访问认证服务

openstack-config --set  /etc/nova/nova.conf  placement auth_url  http://${controllerHost}:5000/v3
openstack-config --set  /etc/nova/nova.conf  placement region_name  RegionOne
openstack-config --set  /etc/nova/nova.conf  placement auth_type  password
openstack-config --set  /etc/nova/nova.conf  placement project_domain_name  Default
openstack-config --set  /etc/nova/nova.conf  placement user_domain_name  Default
openstack-config --set  /etc/nova/nova.conf  placement project_name  service
openstack-config --set  /etc/nova/nova.conf  placement username  placement
openstack-config --set  /etc/nova/nova.conf  placement password  ${PLACEMENT_PASSWD}

11.配置nova开启计算和元数据API服务

openstack-config --set  /etc/nova/nova.conf  DEFAULT enabled_apis  osapi_compute,metadata

12.配置计算和元数据API服务的监听IP和端口

openstack-config --set  /etc/nova/nova.conf  DEFAULT osapi_compute_listen ${controllerIP}
openstack-config --set  /etc/nova/nova.conf  DEFAULT osapi_compute_listen_port 8774
openstack-config --set  /etc/nova/nova.conf  DEFAULT metadata_listen ${controllerIP}
openstack-config --set  /etc/nova/nova.conf  DEFAULT metadata_listen_port 8775

13.配置nova开启VNC代理服务

openstack-config --set  /etc/nova/nova.conf  vnc enabled true
openstack-config --set  /etc/nova/nova.conf  vnc server_listen ${controllerIP}
openstack-config --set  /etc/nova/nova.conf  vnc server_proxyclient_address ${controllerIP}
openstack-config --set  /etc/nova/nova.conf  vnc novncproxy_base_url http://${controllerIP}:6080/vnc_auto.html
openstack-config --set  /etc/nova/nova.conf  vnc novncproxy_host ${controllerIP}
openstack-config --set  /etc/nova/nova.conf  vnc novncproxy_port 6080

14.配置nova加载防火墙驱动程序

openstack-config --set  /etc/nova/nova.conf  DEFAULT firewall_driver  nova.virt.firewall.NoopFirewallDriver

15.配置nova允许动态调整实例大小

openstack-config --set  /etc/nova/nova.conf  DEFAULT allow_resize_to_same_host True

16.配置nova使能自动发现并添加nova-compute服务到数据库cell中

#时间间隔单位是秒
openstack-config --set  /etc/nova/nova.conf  scheduler discover_hosts_in_cells_interval  300

17.配置nova中oslo库的锁定路径

openstack-config --set  /etc/nova/nova.conf  oslo_concurrency lock_path  /var/lib/nova/tmp

18.配置placement服务的监听IP

sed -i "s/Listen 8778/Listen 0.0.0.0:8778/g"  /etc/httpd/conf.d/00-nova-placement-api.conf
sed -i "s/*:8778/0.0.0.0:8778/g"  /etc/httpd/conf.d/00-nova-placement-api.conf

19.解决placement启动配置中的bug

sed -i "/ErrorLogFormat/a\<Directory /usr/bin>\n\t<IfVersion >= 2.4>\n\t\tRequire all granted\n\t</IfVersion>\n\t<IfVersion < 2.4>\n\t\tOrder allow,deny\n\t\tAllow from all\n\t</IfVersion>\n</Directory>"   /etc/httpd/conf.d/00-nova-placement-api.conf

20.同步数据库

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
su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
su -s /bin/sh -c "nova-manage db sync" nova

21.启动nova服务

systemctl enable openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service openstack-nova-consoleauth.service
systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service openstack-nova-consoleauth.service
systemctl status openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service openstack-nova-consoleauth.service
systemctl restart httpd
systemctl status httpd

22.校验nova服务正常性

source ~/admin-openrc
openstack compute service list
openstack catalog list
openstack image list
nova-status upgrade check

23.创建flavor实例类型

openstack flavor create --id 1 --vcpus 2 --ram 4096 --disk 40 small.flavor
openstack flavor create --id 2 --vcpus 4 --ram 4096 --disk 40 medium.flavor
openstack flavor create --id 3 --vcpus 8 --ram 8192 --disk 40 large.flavor

24.手动发现并添加新加入的计算节点到数据库cell中

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

在计算节点上执行

controllerHost='controller'
controllerVIP='172.31.240.49'
computeIP='172.31.240.45'
RABBIT_PASSWD='0penstackRMQ'
NOVA_PASSWD='nova1234!'
PLACEMENT_PASSWD='placement1234!'

1.安装nova组件

yum -y install openstack-nova-compute

2.配置nova访问memcached服务

openstack-config --set  /etc/nova/nova.conf  cache backend oslo_cache.memcache_pool
openstack-config --set  /etc/nova/nova.conf  cache enabled True
openstack-config --set  /etc/nova/nova.conf  cache memcache_servers  ${controllerHost}:11211

3.配置nova访问rabbitmq服务

openstack-config --set  /etc/nova/nova.conf  DEFAULT transport_url rabbit://openstack:${RABBIT_PASSWD}@${controllerHost}:5672

4.配置nova访问glance服务

openstack-config --set  /etc/nova/nova.conf  glance api_servers  http://${controllerHost}:9292

5.配置nova服务访问认证服务

openstack-config --set  /etc/nova/nova.conf  api auth_strategy  keystone
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken auth_url  http://${controllerHost}:5000/v3
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken auth_type  password
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken project_domain_name  Default
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken user_domain_name  Default
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken project_name  service
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken username  nova
openstack-config --set  /etc/nova/nova.conf  keystone_authtoken password  ${NOVA_PASSWD}

6.配置统一资源管理placement服务访问认证服务

openstack-config --set  /etc/nova/nova.conf  placement auth_url  http://${controllerHost}:5000/v3
openstack-config --set  /etc/nova/nova.conf  placement region_name  RegionOne
openstack-config --set  /etc/nova/nova.conf  placement auth_type  password
openstack-config --set  /etc/nova/nova.conf  placement project_domain_name  Default
openstack-config --set  /etc/nova/nova.conf  placement user_domain_name  Default
openstack-config --set  /etc/nova/nova.conf  placement project_name  service
openstack-config --set  /etc/nova/nova.conf  placement username  placement
openstack-config --set  /etc/nova/nova.conf  placement password  ${PLACEMENT_PASSWD}

7.配置nova访问计算和元数据API服务

openstack-config --set  /etc/nova/nova.conf  DEFAULT enabled_apis  osapi_compute,metadata

8.配置nova开启VNC服务

openstack-config --set  /etc/nova/nova.conf  vnc enabled true
openstack-config --set  /etc/nova/nova.conf  vnc server_listen ${computeIP}
openstack-config --set  /etc/nova/nova.conf  vnc server_proxyclient_address ${computeIP}
openstack-config --set  /etc/nova/nova.conf  vnc novncproxy_base_url  http://${controllerVIP}:6080/vnc_auto.html

9.配置nova加载防火墙驱动程序

openstack-config --set  /etc/nova/nova.conf  DEFAULT firewall_driver  nova.virt.firewall.NoopFirewallDriver

10.配置nova允许动态调整实例大小

openstack-config --set  /etc/nova/nova.conf  DEFAULT allow_resize_to_same_host True

11.配置nova服务克隆物理CPU的特征标记

openstack-config --set  /etc/nova/nova.conf  libvirt cpu_mode host-model

openstack官网对cpu_mode配置信息的描述:
(StrOpt) Set to "host-model" to clone the host CPU feature flags;
to "host-passthrough" to use the host CPU model exactly;
to "custom" to use a named CPU model;
to "none" to not set any CPU model.
If virt_type="kvm|qemu", it will default to "host-model",
otherwise it will default to "none"

(StrOpt) Set to a named libvirt CPU model
(see names listed in /usr/share/libvirt/cpu_map.xml).
Only has effect if cpu_mode="custom" and virt_type="kvm|qemu"

12.配置nova服务使能KVM虚拟机(只有物理主机支持虚拟化才可以使能KVM,默认为QEMU)

openstack-config --set  /etc/nova/nova.conf  libvirt virt_type kvm

13.配置nova中oslo库的锁定路径

openstack-config --set  /etc/nova/nova.conf  oslo_concurrency lock_path  /var/lib/nova/tmp

14.解决network-vif-plugged事件超时对虚机创建的影响

openstack-config --set  /etc/nova/nova.conf  DEFAULT vif_plugging_is_fatal  False
openstack-config --set  /etc/nova/nova.conf  DEFAULT vif_plugging_timeout  0

详情请分析这篇文章:http://www.mamicode.com/info-detail-2317620.html

15.启动nova服务

systemctl enable libvirtd.service openstack-nova-compute.service
systemctl restart libvirtd.service openstack-nova-compute.service
systemctl status libvirtd.service openstack-nova-compute.service

安装nova的更多相关文章

  1. OpenStack:安装Nova

    >安装Nova1. 安装# apt-get install nova-novncproxy novnc nova-api \  nova-ajax-console-proxy nova-cert ...

  2. CentOS7安装OpenStack(Rocky版)-04.安装Nova计算服务(控制节点)

    上一篇文章分享了glance镜像服务的安装配置,本文主要分享openstack的计算服务Nova的安装和配制方法 ------------------ 完美的分割线 ----------------- ...

  3. OpenStack Train版-6.安装nova计算服务(计算节点)

    安装nova计算服务(computel01计算节点 192.168.0.20)安装软件包 yum install centos-release-openstack-train -y yum insta ...

  4. OpenStack Train版-5.安装nova计算服务(控制节点)

    nova计算服务需要在 控制节点 和 计算节点 都安装 控制节点主要安装 ​ nova-api(nova主服务)​ nova-scheduler(nova调度服务)​ nova-conductor(n ...

  5. 安装nova后解决登录没账号问题

    找到laravel安装目录执行php artisan nova:user

  6. laravel安装nova 运行php artisan migrate出错

    报错一$ php artisan migrate Illuminate\Database\QueryException : could not find driver (SQL: select * f ...

  7. Nova计算节点安装配置

    Nova计算节点安装配置 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ## Nova计算节点安装配置 #基本配置 ...

  8. OpenStack 安装:nova服务

    上一篇介绍了glance,并且成功创建了一个镜像,这一篇介绍Nova. 首先创建Nova用户,需要记得先source环境变量,然后创建Nova用户,并设置密码为nova [root@linux-nod ...

  9. openstack安装-计算节点-nova计算服务安装

    一.基础服务安装 先安装基础工具 yum install net-tools vim telnet wget lrzsz 1.添加hosts解析 cat << EOF >/etc/h ...

随机推荐

  1. quartz (从原理到应用)详解篇(转)

    一.Quartz 基本介绍 1.1 Quartz 概述 1.2 Quartz特点 1.3 Quartz 集群配置 二.Quartz 原理及流程 2.1 quartz基本原理 2.2 quartz启动流 ...

  2. python镜像

    国内镜像列表豆瓣: http://pypi.doubanio.com/simple清华: https://pypi.tuna.tsinghua.edu.cn/simple科大: https://mir ...

  3. PHP处理base64编码字符串

    接收前端传过来的base64编码后的字符串, 如果是json字符串, 那么PHP使用file_get_contents('php://input'); 来接收. 本次这里是以post传参的形式传bas ...

  4. Verilog状态机使用技巧

    “没有什么难处是通过增加一个状态机不能够解决的,如果不行,那就俩..” 在实现某种功能时,若感觉该功能的各种可能状态间的切换太绕了,此时,增加一个状态机往往能使思路变得清晰,功能的实现也就简单明了了. ...

  5. 部分易错JS知识点整理(缓慢填坑)

    主要还是各地搜刮来的,本人对于这方面的总结还是8彳亍,给各位大佬磕头了砰砰砰 1. 2.JS闭包和匿名对象以及作用域 js在执行之前,会将所有带var和function的进行提前定义和声明.(带var ...

  6. [Luogu] 计数

    https://www.luogu.org/problemnew/show/P3130 #include <cstdio> #include <iostream> using ...

  7. 【模板】强连通分量和tarjan算法

    看了好久才终于明白了这个算法..复杂度是O(n+m). 我觉得这个算法不是很好理解,但是看懂了以后还是觉得听巧妙的. 下面给出模板代码和三组简单数据帮助理解. 代码如下: #include <s ...

  8. 原生javascript封装动画库

    ****转载自自己发表于牛人部落专栏的文章**** 一.前言 本文记录了自己利用原生javascript构建自己的动画库的过程,在不断改进的过程中,实现以下动画效果: 针对同一个dom元素上相继发生的 ...

  9. Error creating bean with name 'persistenceExceptionTranslationPostProcessor' defined in class path resource [org/springframework/boot/autoconfigure/dao/PersistenceExceptionTranslationAutoConfiguration

    dubbo 包和SpringBoot 冲突,注释就可以正常启动

  10. 2018-2019-2 20175226王鹏雲 实验四《Android程序设计》实验报告

    2018-2019-2 20175226王鹏雲 实验四<Android程序设计>实验报告 实验报告封面 课程:Java程序设计 班级:1752班 姓名:王鹏雲 学号:20175226 指导 ...