OpenStack-计算服务

【基于此文章的环境】点我快速打开文章

1、控制节点(controller)

1.1 创库授权  nova_apinova, 和 nova_cell0

mysql

CREATE DATABASE nova_api;

CREATE DATABASE nova;

CREATE DATABASE nova_cell0;

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';

GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';

用合适的密码代替 NOVA_DBPASS

1.2 创建服务证书

1. 创建 nova 用户

openstack user create --domain default --password NOVA_PASS nova

用合适的密码代替  NOVA_PASS

2. 给 nova 用户添加 admin 角色

openstack role add --project service --user nova admin

3. 创建 nova 服务实体

 openstack service create --name nova \
  --description "OpenStack Compute" compute

4. 创建 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

5. 创建 Placement 服务用户

openstack user create --domain default --password PLACEMENT_PASS placement

用合适的密码代替 PLACEMENT_PASS

6. 使用 admin 角色将 Placement 用户添加到服务项目

openstack role add --project service --user placement admin

7. 在服务目录中创建 Placement API 条目

openstack service create --name placement --description "Placement API" placement

8. 创建 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

1.3 安装配置 nova

1. 安装其软件包

yum install openstack-nova-api openstack-nova-conductor \
  openstack-nova-console openstack-nova-novncproxy \
  openstack-nova-scheduler openstack-nova-placement-api -y &>/dev/null

echo $?

2. 修改配置文件

1. 备份初始配置文件,然后重定向写入配置文件
cp /etc/nova/nova.conf{,.bak}

egrep -v '^$|#' /etc/nova/nova.conf.bak >/etc/nova/nova.conf

2. 编辑文件 /etc/nova/nova.conf 并完成如下动作:
vim /etc/nova/nova.conf
  • [DEFAULT] 部分,只启用计算和元数据 API
[DEFAULT]
# ...
enabled_apis = osapi_compute,metadata
  • [api_database][database] 部分,配置数据库的连接
[api_database]
# ...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api

[database]
# ...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova

用你为 Compute 数据库选择的密码来代替 NOVA_DBPASS

  • [DEFAULT] 部分,配置 RabbitMQ 消息队列访问权限
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller

用你在 RabbitMQ 中为 openstack 选择的密码替换 RABBIT_PASS

  • [api][keystone_authtoken] 部分中,配置身份服务访问
[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
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 = NOVA_PASS

使用你在身份认证服务中设置的 nova 用户的密码替换 NOVA_PASS

  • [DEFAULT] 部分,配置 my_ip 来使用控制节点的管理接口的 IP 地址。
[DEFAULT]
# ...
my_ip = 10.0.0.11
  • [DEFAULT] 部分,启用网络服务支持
[DEFAULT]
# ...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
  • [vnc] 部分,配置 VNC 代理使用控制节点的管理接口 IP 地址
[vnc]
enabled = true
# ...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
  • [glance] 区域,配置镜像服务 API 的位置:
[glance]
# ...
api_servers = http://controller:9292
  • [oslo_concurrency] 部分,配置锁路径
[oslo_concurrency]
# ...
lock_path = /var/lib/nova/tmp
  • [placement] 部分,配置 Placement API
[placement]
# ...
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 = PLACEMENT_PASS

替换 PLACEMENT_PASS 为你 placementIdentity 服务中为用户选择的密码

3. 编辑文件 /etc/httpd/conf.d/00-nova-placement-api.conf 并完成如下动作:
cp /etc/httpd/conf.d/00-nova-placement-api.conf{,.bak}

vim /etc/httpd/conf.d/00-nova-placement-api.conf

#在16行</VirtualHost>这一行上面增加以下内容
<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>

4. 重启 Httpd 服务
systemctl restart httpd

3. 同步数据库(创表)

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 db sync" nova

检查
nova-manage cell_v2 list_cells

4. 启动和自动启动

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

4. 检查

openstack compute service list

2、计算节点(compute1)

2.1 安装配置 nova

1. 安装其软件包

yum install openstack-nova-compute -y &>/dev/null

echo $?

2. 修改配置文件

1. 备份初始配置文件,然后重定向写入配置文件
cp /etc/nova/nova.conf{,.bak}

egrep -v '^$|#' /etc/nova/nova.conf.bak >/etc/nova/nova.conf

2. 编辑文件 /etc/nova/nova.conf 并完成如下动作:
vim /etc/nova/nova.conf
  • [DEFAULT] 部分,只启用计算和元数据 API
[DEFAULT]
# ...
enabled_apis = osapi_compute,metadata
  • [DEFAULT] 部分,配置 RabbitMQ 消息队列访问权限
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller

用你在 RabbitMQ 中为 openstack 选择的密码替换 RABBIT_PASS

  • [api][keystone_authtoken] 部分中,配置身份服务访问
[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
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 = NOVA_PASS

使用你在身份认证服务中设置的 nova 用户的密码替换 NOVA_PASS

  • [DEFAULT] 部分,配置 my_ip 来使用控制节点的管理接口的 IP 地址。
[DEFAULT]
# ...
my_ip = 10.0.0.31
  • [DEFAULT] 部分,启用网络服务支持
[DEFAULT]
# ...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
  • [vnc] 部分,启用并配置远程控制台访问
[vnc]
# ...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
  • [glance] 区域,配置镜像服务 API 的位置:
[glance]
# ...
api_servers = http://controller:9292
  • [oslo_concurrency] 部分,配置锁路径
[oslo_concurrency]
# ...
lock_path = /var/lib/nova/tmp
  • [placement] 部分,配置 Placement API
[placement]
# ...
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 = PLACEMENT_PASS

替换 PLACEMENT_PASS 为你 placementIdentity 服务中为用户选择的密码

3. 启动和自启动

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

systemctl start libvirtd.service openstack-nova-compute.service

4. 验证操作

在控制节点上操作(controller)
openstack compute service list

发现计算节点,每添加新节点,则需要执行以下操作:

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

【后续文章】点我快速打开文章

【本文图片下载地址】【002-OpenStack】点我快速打开分享(若异常,请私信,万分感谢) 【提取码:kse1 】

今天你学习了吗?若有疑问,请留言、私信或加QQ群:647033350,大家一起进步吧!

最新文章

  1. iOS 单例模式
  2. 进程&amp;线程 同步异步&amp;阻塞非阻塞
  3. 思维导图软件TheBrain 8全新发布 提供更强大的信息管理
  4. 【UVALive 7334】Kernel Knights
  5. uva 12296 Pieces and Discs
  6. [简历] JAVA 软件工程师
  7. [置顶] P2P之我见,关于打洞的学问-------开篇
  8. Graph - leetcode [图]
  9. QQ_SingleTalkClient
  10. 方伯伯的玉米田[SCOI2014]
  11. iOS webservice接口soap协议调用遇到的问题
  12. $.extend()浅拷贝深拷贝
  13. spring事务源码分析结合mybatis源码(三)
  14. appium自动化测试等待的三种方法
  15. Python练习:小程序,列车出票程序
  16. JavaScript实现元素拖动性能优化
  17. spring boot 2.0 源码分析(一)
  18. 配置SpringMvc + maven 数据源!(四)
  19. 【高德地图Android SDK】视频教学
  20. cat 命令(转)

热门文章

  1. JSP知识总结
  2. 04webpack--webpack-dev-server 时时跟新
  3. 201871010111-刘佳华《面向对象程序设计(java)》第十一周学习总结
  4. [C10] 异常检测(Anomaly Detection)
  5. 鲜贝7.3--pycharm切换
  6. Python else
  7. POJ3104Drying(二分)
  8. VS2017 无法解析的外部符号 __vscwprintf
  9. 数据分析常用的Excel函数
  10. win10挂载efi分区