原标题:ironic部署物理机

ironic是openstack的帐篷项目之一,主要用来部署和管理裸机,提供统一接口,方便nova同时管理裸机和虚机,ironic的概念架构图如图1所示。本文以tecs3.0为例,介绍ironic部署裸机的流程。

图1 ironic概念架构图

ironic安装

目前tecs3.0默认不安装ironic。有两种方法安装ironic。

● 修改answer-file安装

● 安装完tecs之后使用yum安装

修改anser-file文件安装

tecs是使用packstack工具来部署openstack环境的,tecs.conf对应packstack的answer-file。然后安装tecs的时候选择配置文件方式安装。tecs.conf中的如下内容:

yum安装

首先使用tecs3.0的bin文件安装tecs,这个时候ironic是没有默认安装的,需要我们手动安装。安装步骤如下:

1

rpm包安装

2

权限配置

下面--project后面的services要根据实际情况填写。开源社区默认是service, tecs3.0使用的是services。具体可以通过openstack project list命令查看。

3

创建数据库

数据库密码IRONIC_DBPASSWORD根据实际情况替换,也可以不替换。

4

配置裸机服务

Ø ironic-api配置

修改/etc/ironic/ironic.conf数据库连接用户名,密码,DB_IP要和前面的对应,另外mysql端口号如果不是3306需要在DB_IP之后加上端口号。

eg:

确认mysql的端口号可以通过查看`/etc/my.cnf.d/server.cnf`的[mysqld]部分的ports确认。

Ø 创建数据库表

创建命令如下,如果前面已经创建过表,把create_schema换成update。

重启ironic-api服务

systemctl restart openstack-ironic-api

Ø ironic-conductor配置

HOST_IP替换成实际ip(ironic-conductor服务所在节点ip)enabled_drivers后的驱动根据实际添加,这里使用pxe_ipmitool。

Ø 重启服务

systemctl restart openstack-ironic-conductor

到这里ironic就已经安装完成了,后面就是nova和neutron的一些配置。

共管配置

由于一个nova-compute一次只能使用一种驱动,起虚机是用的libvirt驱动,而部署物理机是需要使用ironic驱动。

目前nova已经提供了共管的方式来同时管理裸机和虚机,参考:nova共管配置

需要说明的是共管方式是:

● 共管方式只是用拿出一个节点提供ironic驱动,专门用来部署裸机。

● 提供ironic驱动的机器不能用来起虚机。

● 裸机使用的flavor必须要设置hw:compute_type=ironic属性。

nova配置

Ø 修改/etc/nova/nova.conf

Ø 重启nova服务

neutron配置

部署裸机和虚机用的neutron配置是一样的,目前tecs3.0有些neutron默认没有设置,需要我们自己设置一下。

Ø 编辑 /etc/neutron/plugins/ml2/ml2_conf.ini,配置如下:

Ø 编辑/etc/neutron/plugins/ml2/openvswitch_agent.ini

Ø 创建网桥

Ø 重启服务

systemctl restart neutron-plugin-openvswitch-agent

最终要保证如下几个服务是正常的:

如果l3-agent启动失败,检查下/etc/neutron/l3_agent.ini`是否配置了:

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

Ø 修改/etc/neutron/fwaas_driver.ini文件,内容如下:

Ø 修改/etc/neutron/dhcp_agent.ini,配置dhcp_driver和interface_driver

Ø 创建网络

镜像创建

Ironic部署一台物理机需要两组镜像:deploy images和user images。这两组镜像都可以通过diskimage-builder工具创建。这里建议此工具采用源码安装的方式安装,方便代码修改跟踪:

或者就按照文档中提到的pip安装:

pip install diskimage-builder

deploy image

在Mitaka版本中部署镜像和物理机发现下载的镜像是同一套镜像,都是通过下面命令实现的:

disk-image-create ironic-agent centos7 -o ironic-deploy

这里面使用到了一个重要的模块:Ironic-python-agent,它既完成目标主机在部署阶段提供tgt+iscsi服务,又提供物理机发现阶段收集上报目标主机的物理信息。

成功执行后会生成两个文件:ironic-deploy.vmlinuz和ironic-deploy.initramfs,这里实际上是ironic-deploy. Kernel和ironic-deploy.initramfs,对于fedora这样的OS来说,都不会生成ironic-deploy.vmlinuz。

user image

对于partition images制作,采用下面命令:

image-create centos7 baremetal dhcp-all-interfaces grub2 -o my-image

成功完成后,会生成my-image.qcow2、my-image.vmlinuz和my-image.initrd三个文件。

添加镜像到glance服务

这里还是以partition images来介绍,添加 images到glance服务:

创建flavor

这里我们先创建一个flavor,flavor里的硬件信息我们先手动填写,里面的cpu,内存,硬盘和要部署的裸机硬件信息学保持一致。

如果是实际大批量部署,需要用到ironic-inspector来收集硬件信息。

当然,在创建flavor之前,必须先确保quota额度够了。通过nova quota-show可以看一下,不够可以分别通过下面命令进行cores和ram的扩展(后面的ID是tenant为admin的ID)

PXE配置

在部署之前,我们需要配置tftp服务,先安装tftp-serve和xinet的rpm包。

yum -y install tftp-server syslinux-tftpboot

xinetd也要安装,并且安装后需要进行enable和start操作:

创建对应的目录,并修改一下其所有者。

配置tftp服务, /etc/xinetd.d/tftp配置文件如下:

ironic部署的时候会自动生成指定的镜像,以及pxe需要的default文件,并存放在/tftpboot目录下。根据ironic node的uuid和mac地址来区分。

开始部署

使用`ironic node-validate $NODE_UUID`判断node是否可以部署确保boot、deploy、management和power相关接口是True状态。

说明:

一般创建完ironic node之后需要等待大概1min才能进行nova boot操作,否则会出现no valid host错误。这是因为nova-compute会定期去同步ironic node的信息到nova数据库中。

检查nova hypervisor-list 和nova hypervisor-show $ID,确保信息按配置修改。没有则等待一段时间。

Ø 创建实例

这时候可以使用kvm连接我们要部署的裸机,裸机会从网口启动,下载部署镜像。

责任编辑:

一般数据库服务器物理机配置,ironic部署物理机相关推荐

  1. WSUS服务器的详细配置和部署

    WSUS服务器的详细配置和部署 一.WSUS 安装要求 1.硬件要求: 对于多达 500 个客户端的服务器,建议使用以下硬件: * 1 GHz 的处理器 * 1 GB 的 RAM 2.软件要求: 要使 ...

  2. 如何配置系统数据库服务器地址,如何配置系统数据库服务器地址

    如何配置系统数据库服务器地址 内容精选 换一换 华为云提供两种连接方式通过SQL Server客户端连接实例:非SSL连接和SSL连接.其中,SSL连接实现了数据加密功能,具有更高的安全性.安装SQL ...

  3. 数据库服务器对硬件配置的要求

    随着运营时间的增加,那些以数据库为主要支撑的应用例如ERP系统.论坛系统,在具备一定规模之后,对服务器硬件的设备要求就更加严苛,一旦服务器设备无法承受数据库的工作压力,将直接造成系统和各种业务的瘫痪, ...

  4. 浅谈优化SQLServer数据库服务器内存配置的策略

    引文 http://demo.nbarticle.com/view/2004/8/9/view_1827.htm 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于Win ...

  5. 数据库和服务器什么协议,数据库服务器协议

    数据库服务器协议 内容精选 换一换 本章节适用于MRS 3.x之前版本.Loader支持以下多种连接,每种连接的配置介绍可根据本章节内容了解.obs-connectorgeneric-jdbc-con ...

  6. 修改数据库服务器日期命令,服务器上数据库用命令修改

    服务器上数据库用命令修改 内容精选 换一换 本教程旨在演示使用GDS(Gauss Data Service)工具将远端服务器上的数据导入GaussDB(for openGauss)中的办法,帮助您学习 ...

  7. FastDFS的配置、部署与API使用解读(7)Nginx的FastDFS模块(转)

    1.Nginx的FastDFS模块什么作用? 我们在使用FastDFS部署一个分布式文件系统的时候,通过FastDFS的客户端API来进行文件的上传.下载.删除等操作.同时通过 FastDFS的HTT ...

  8. 怎么在数据库服务器解压文件,数据库服务器9怎么解压

    数据库服务器9怎么解压 内容精选 换一换 Joomla是一套全球知名的内容管理系统,即Joomla CMS(Content Management System).Joomla是使用PHP语言加上Mys ...

  9. 安装Oracle 11g数据库服务器类

    <Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南>第3章Oracle 11g数据库的安装,本章将介绍如何在32位系统结构的Windows 7操作系统平台上对Oracle ...

最新文章

  1. .NET 3.5 中WCF客户端代理性能改进以及最佳实践
  2. 以太网实习_一位工科男在拿到华为实习生offer后的面经干货
  3. 创建ACFS集群文件系统(命令方式)
  4. 使用个推的时候出现Installation error: INSTALL_FAILED_DUPLICATE_PERMISSION
  5. IDEA 一直不停的scanning files to index解决办法
  6. TikTok测试三分钟视频、Reddit首次公布DAU、谷歌解雇人工智能领头人、年度最受欢迎应用|Decode the Week...
  7. C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析
  8. 【JZOJ4920】【NOIP2017提高组模拟12.10】降雷皇
  9. 开发落网电台windows phone 8应用的计划(10)-----收尾
  10. opencv Basic Drawing
  11. codewhy 深入JavaScript高级语法(资源视频全)
  12. 机器学习其实只是“皇帝的新衣”
  13. C++ log4cpp(tx2)
  14. python监控网页数据_python实现批量监控网站详解及实例
  15. python随机抽取样本1500个_python 随机抽取数据
  16. php pcntl_alarm,pcntl_alarm定时闹钟信号详解
  17. 经济基础知识(中级)【4】
  18. 最新Freewind自由之风主题最新版+Typecho内核
  19. (附源码)Springboot网上购物系统 毕业设计 311236
  20. 临沧黄衣阿佤-中国佤民族中一支穿黄色衣服的佤族群体

热门文章

  1. Nanopi r4s 使用usb网卡设置静态IP
  2. impala 实现滑动累计求和
  3. python读取excel不读取公式_openpyxl读取excel不输出公式data_only=True属性
  4. 这7款APP到底有什么好,值得知乎2万人点赞,原来如此! 1
  5. PS5运行Linux,索尼发布新驱动 PS5手柄现已支持Linux系统用户
  6. Linux压缩pdf
  7. 东软2012实习生招聘
  8. Hybrid框架之交互通信篇
  9. 月报|公众号 7 月文章汇总
  10. 智慧经营3.0进程中智慧经营和数字化经营谁更胜一筹?