AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

一文教你用 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:251434

评论

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

一本书了解AI的下一个风口:AI Agent

博文视点Broadview

小红书从记忆机制解读信息检索,提出新范式获得 EACL Oral

小红书技术REDtech

gr 检索 信息检索 GDR EACL

Sora新突破!AI生成电影迈向新阶段,配音版Sora登场!将如何改变影视行业?

蓉蓉

人工智能 openai sora

英特尔软件定义架构赋能未来智能座舱

最新动态

三项国际人工智能顶会大奖!拿下!

天翼云开发者社区

人工智能 云计算 天翼云

首届超算互联网峰会!天翼云弹性高性能计算E-HPC亮相!

天翼云开发者社区

云计算 高性能计算 互联网峰会

杭州悦数与伟仕佳杰达成战略合作,共绘图数据库市场新蓝图

悦数图数据库

图数据库 知识图

MES管理系统在人工智能方面的应用

万界星空科技

人工智能 智能工厂 mes 万界星空科技

Linux设备驱动系列(七)——真实的设备驱动程序

Linux内核拾遗

Linux Kenel 内核开发 设备驱动

DEKRA德凯2023年财年 创新引领韧性发展

财见

春耕司法护农时,阳光便捷驻田间!

天翼云开发者社区

云计算 云服务 云电脑

Linux Bridge和Tap关系详解

天翼云开发者社区

云计算 Linux bridge

模型量化与量化在LLM中的应用 | 得物技术

得物技术

算法 性能优化 AIGC LLM 企业号 4 月 PK 榜

「软件测试面试题解析」限时优惠,助你高效备战,拿下心仪职位

测试人

软件测试

PCB中泪滴的作用

芯动大师

PCB 电路板 泪滴

杭州悦数参与国家重点研发计划“高性能可信跨境贸易支付监管关键技术研究”项目

悦数图数据库

双栈网络使用什么技术实现总部网络能访问分部网络?

天翼云开发者社区

云计算 安全 网络 ipv6

一键自动化博客发布工具,用过的人都说好(简书篇)

程序那些事

程序那些事 工具技巧

以全栈智算拥抱生态,为AIGC种一棵向上生长的巨榕

脑极体

AI

从原始边列表到邻接矩阵Python实现图数据处理的完整指南

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟 企业号2024年4月PK榜

万界星空科技MES系统中的业务过程管理流程

万界星空科技

生产管理系统 mes 车间管理

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