报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

一文教你用 CloudBoot 批量安装 RancherOS

  • 2020-05-14
  • 本文字数:2457 字

    阅读完需:约 8 分钟

一文教你用CloudBoot批量安装RancherOS

介绍

CloudBoot


CloudBoot 是云霁科技科技开源的一款简单易用的装机系统,类似 Cobbler ,但是功能更强大,更易用。(详情可参阅参考资料的链接)


RancherOS


RancherOS 是 Rancher Labs 开源的一款容器操作系统,类似 coreOS,RancherOS 是 Rancher Labs 设计的小巧、专用的容器操作系统,可用安装到服务器本地硬盘中,也可以部署到公有云上,或者配合 DockerMachine 使用。与 Ubuntu 和 CentOS 不同,RancherOS 使用 cloud-config.yml 配置文件来管理机器的配置信息,包括系统启动时的服务、网络相关的配置信息、存储配置、容器配置等等,都可以放到配置文件中进行管理。

安装 cloudboot

可参阅 CloudBoot 一键部署 :


http://idcos.github.io/osinstall-doc/environment/一键部署.html


挂载 RancherOS 镜像


wget -P /tmp/ http://releases.rancher.com/os/latest/rancheros.isomkdir -p $PWD/cloudboot/deploy/iso/rancheros/1.5.1/mount -o loop /tmp/rancheros.iso /mediarsync -a /media/ $PWD/cloudboot/deploy/iso/rancheros/1.5.1/umount /media
复制代码


创建软连接


docker exec -it cloudboot /bin/sh


ln -s /data/iso/rancheros /home/www/rancheros


注意


  • CloudBoot 默认用户名密码是 admin/admin

  • 登陆后需要配置 dhcp(【系统管理】-> 【系统设置】)

  • 需要配置网段(【网段管理】->【应用网段】)

  • 本文讲的是 VMware,所以不需要配置 OOB

  • 需要配置设备位置(【模板管理】->【位置管理】)

  • 如果 CloudBoot 和 RancherOS 都装在 VMware 虚拟机里,需要把 VMware 的网络设置中的 dhcp 去掉,否则会冲突

pxe 安装 RancherOS

参考 RancherOS#docs#iPXE 和 CloudBoot PXE 模板定制规范



PXE 模板管理


从【模板管理】->【PXE 模板管理】 新增 RancherOS-1.5.1


DEFAULT rancherosLABEL rancherosKERNEL http://osinstall.idcos.com/rancheros/1.5.1/boot/vmlinuz-4.14.85-rancherAPPEND initrd=http://osinstall.idcos.com/rancheros/1.5.1/boot/initrd-v1.5.1 rancher.cloud_init.datasources=[url:http://osinstall.idcos.com/api/osinstall/v1/device/getSystemBySn?sn={sn}] rancher.autologin=tty1 rancher.autologin=ttyS0 rancher.autologin=ttyS1 rancher.autologin=ttyS1 console=tty1 console=ttyS0 console=ttyS1 printk.devkmsg=on panic=10IPAPPEND 2
复制代码


系统模板管理


从【模板管理】->【系统模板管理】 新增 rancheros-1.5.1


把 docker mirror 换成实际的加速器,如果不需要,可以删除,ssh_authorized_keys 换成真实的 ssh key


#cloud-config
rancher: console: alpine docker: registry_mirror: "https://xxx.mirror.aliyuncs.com"runcmd: - sh -c 'curl http://osinstall.idcos.com/scripts/rancheros.sh | bash'ssh_authorized_keys: - ssh-rsa AAAA....ZZZZ user@user
复制代码


自定义脚本


在 CloudBoot 宿主机上,运行 docker exec -it cloudboot /bin/sh ,然后运行 vim /home/www/scripts/rancheros.sh


#!/bin/bashprogress() {    curl -H "Content-Type: application/json" -X POST -d "{\"Sn\":\"$_sn\",\"Title\":\"$1\",\"InstallProgress\":$2,\"InstallLog\":\"$3\"}" http://osinstall.idcos.com/api/osinstall/v1/report/deviceInstallInfo}
_sn=$(sed q /sys/class/net/eth0/address)
progress "配置主机名和网络" 0.7 "6YWN572u5Li75py65ZCN5ZKM572R57uc"
# config networkcurl -o /tmp/networkinfo "http://osinstall.idcos.com/api/osinstall/v1/device/getNetworkBySn?sn=${_sn}&type=raw"source /tmp/networkinfo
cat > /etc/network/interfaces <<EOFauto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress $IPADDRnetmask $NETMASKgateway $GATEWAYEOF
echo "$HOSTNAME" > /etc/hostnamesudo hostname "$HOSTNAME"
progress "配置alpine镜像源" 0.8 "6YWN572uYWxwaW5l6ZWc5YOP5rqQ"sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
progress "安装完成" 1 "5a6J6KOF5a6M5oiQ"sudo ros install -c http://osinstall.idcos.com/api/osinstall/v1/device/getSystemBySn?sn=$_sn" -d /dev/sda -f
复制代码


自动化安装 RancherOS


从 VMware 创建 空盘 -> 其他 Linux4.x 或更高版本内核 64 位,2 核 2G 虚拟机,然后上电


虚拟机会从 PXE 拉取 CloudBoot 的 bootos 安装到内存中,并且往 CloudBoot 上注册待录入的设备(待屏幕变蓝色)



从 http://${cloudboot host}/#/dashboard/device/scan/list 会发现新设备,选中后,点击录入新设备




bootos 会自动轮询是否有自动装机任务,所以静候即可。如果等不及,可以在录入成功后,手动重启虚拟机。


在【正在安装的设备】中,会自动出现要安装的设备



点击【详情】会在滚动模式下试试看到安装进度



在【设备列表】可以看到已安装成功的设备



注意


和 Rancher Labs 架构师张智博讨论后,张智博指出


booting from ISO 首次启动,整个系统都在内存中。

执行 ros install 后,安装 bootloader 和 initrd/vmlinuz 到磁盘。

再次启动后,就是完整的运行在硬盘上的操作系统。

脑洞

可以在 cloud config 配置自定义服务,这样装机后,就可以直接启动服务,不需要 ssh 到 ros 上,手动执行命令,例如配置 Rancher client 的添加主机的命令,这样就可以直接添加到已有集群。


更多参考 Custom System Services:https://rancher.com/docs/os/v1.x/en/installation/system-services/custom-system-services/


#cloud-config
rancher: services: nginxapp: image: nginx restart: always
复制代码

参考资料


作者简介


赵安家,山东顺能网络全栈研发工程师。前端后端通吃,DevOps、安全、培训都有涉猎,负责了公司从单体服务迁移至微服务的项目。


2020-05-14 22:251402

评论

发布
暂无评论
发现更多内容

香港云主机的优势,为何成为新一代网站托管首选?

一只扑棱蛾子

云主机 香港云主机

腾讯云 ES 重磅推出,一站式全托管的自治索引终于来了!

腾讯云大数据

ES

🔥对线面试官-线程入门第一课

派大星

线程 Java 面试题

专家论道: 唐贤香云纱塑造中国非遗国际品牌

极客天地

IoT 场景下 TimescaleDB 与 TDengine 的性能对比测试报告出炉!点击查看

爱倒腾的程序员

数据库

基于 Flink & Paimon 实现 Streaming Warehouse 数据一致性管理

Apache Flink

大数据 flink 实时计算

文本 Embedding 基本概念和应用实现原理

Dify

技术分享 Embedding word embedding

Gartner首发中国数据、分析与人工智能技术成熟度曲线,柏睿数据入选实时数据管理典型厂商

新消费日报

百度搭台,千家打擂,文心杯创业大赛成投资人新宠?

热爱编程的小白白

高效能ScrumMaster的三大权利

ShineScrum

Scrum ScrumMaster

云智慧x统信软件:智能化IT服务管理,提升客户服务价值

云智慧AIOps社区

ITSM IT运维 智能运维AIOps 工单管理系统

可视化分析30天免费,瓴羊Quick BI助力企业转型

流量猫猫头

Flink Unaligned Checkpoint 在 Shopee 的优化和实践

Apache Flink

大数据 flink 实时计算

瓴羊QuickBI,助您加速企业转型,免费试用

巷子

Dify.AI 用户直面会总结:Embedding 技术与 Dify 数据集设计/规划

Dify

开源项目 AI技术实践 LLMOps

GPU 容器虚拟化新能力发布和全场景实践

百度Geek说

人工智能 企业号 8 月 PK 榜

打包自己的Python应用并上传到PYPI

Rayzh

Python

《云管理产品与服务图谱(2023)》发布!MIAOYUN荣登【运维平台】板块

MIAOYUN

云计算 运维平台 云管理平台 云管理 云管理产品与服务图谱

SUSECON 深圳 2023 创新峰会开启报名

Rancher

火山引擎DataLeap的Data Catalog系统搜索实践 (上)

字节跳动数据平台

数据中台 数据治理 数据安全 数据研发 企业号 8 月 PK 榜

基于YonGPT 的智能招聘,全新的数智化招聘体验!

用友BIP

企业服务大模型 YonGPT

AB实验遇到用户不均匀怎么办?—— vivo游戏中心业务实践经验分享

vivo互联网技术

AB实验 分层抽样 用户不均匀 事前用户分层

重磅更新 | 大幅提升数据集命中预期;AI 联网搜索能力也来了!

Dify

AI技术 开源软件 LLMOps

JMeter笔记17 | JMeter逻辑控制器简介

测试 单元测试 Jmeter 性能测试 接口测试

山东布谷科技iOS端分析直播app源码秒开技术(二):缓冲功能

山东布谷科技

软件开发 ios 开发 首帧秒开 缓冲 直播APP源码

面试 JVM 一问三不知?看这篇就够

java易二三

Java 编程 程序员 计算机

北京信息化协会信息技术应用创新工作委员会一行到开放原子开源基金会交流学习

开放原子开源基金会

开源 开放原子开源基金

现代化税收征管的“四精”目标 科学技术发挥关键作用

用友BIP

税务管理

一文教你用CloudBoot批量安装RancherOS_文化 & 方法_Rancher_InfoQ精选文章