写点什么

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

评论

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

面对“失业焦虑”我们可以做些什么?让 AI 帮助自己变得更强大! | 社区征文

汪子熙

人工智能 机器学习 程序员 ChatGPT 三周年征文

Studio One2024中文版补丁包

茶色酒

Studio One 许可证

1行代码,自动群发!人人可用的微信机器人

程序员晚枫

Python 微信 机器人

Flink数据流介绍

阿泽🧸

flink 三周年连更

站点可靠性工程SRE最佳实践 -- 黄金监控信号

俞凡

SRE

C++虚函数详解:多态性实现原理及其在面向对象编程中的应用

小万哥

c++ 程序员 面试 后端 开发

EasyRecovery2024中文版数据恢复软件下载

茶色酒

EasyRecovery15 EasyRecovery Photo16

八股MQ006——Message之旅

Codyida

后端、

运动健康app(一)

鸿蒙之旅

OpenHarmony 三周年连更

班迪录屏Bandicam 绿色版

源字节1号

开源 软件开发 小程序开发

开源相亲小程序

源字节1号

开源 软件开发 小程序开发

文心一言 VS chatgpt (15)-- 算法导论3.2 4~5题

福大大架构师每日一题

福大大 ChatGPT 文心一言

轻量级云原生大数据平台"CloudEon"正式开源

CloudEon开源

大数据 云原生 服务 解决方案 组件

Redis桌面管理用什么工具好?

真大的脸盆

Mac Mac 软件 桌面管理工具

Camtasia2024专业版电脑屏幕录制软件

茶色酒

Camtasia2024

ChatGPT不断升级,给互联网行业甚至计算机行业带来哪些挑战和机遇呢? | 社区征文

迷彩

人工智能 AI 笔记分享 三周年征文 三周年连更

索引合并,能不用就不要用吧!

江南一点雨

MySQL

从0到1,十分钟搭建一个微服务集群,集群由一个rpc网关和多个微服务组成

vison

微服务 gRPC Go 语言 gin 代码自动生成

应用数据加密技术概述

穿过生命散发芬芳

数据加密 三周年连更

百度AI,和“吴文俊奖”同行的十二年、千丈山、万里路

脑极体

百度 吴文俊奖

初学者如何系统性地学习Linux?

海拥(haiyong.site)

三周年连更

Portraiture2024免费版人像滤镜插件

茶色酒

Portraiture4

2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返回执行此操作后,grid 中最大的岛屿面积是多少? 岛屿 由一组上、下、左、右四个方向相

福大大架构师每日一题

Go 算法 rust 福大大

Shell的数组表示

芯动大师

Shell 三周年连更 shell数组

Mac 配置ChatGLM-6B环境

IT蜗壳-Tango

三周年连更

Django笔记二十三之case、when操作条件表达式搜索、更新等操作

Hunter熊

Python MySQL django case when

Camtasia Studio2024免费版屏幕录像剪辑工具

茶色酒

Camtasia Studio2024

Camtasia2023免费屏幕录制软件下载安装

茶色酒

Camtasia2023

EasyRecovery易恢复2024电脑版免费数据恢复软件

茶色酒

EasyRecovery

学生管理系统毕设作业

kylexy_0817

架构实战营

Linux中最低调、最易让人忽视的tmp目录,原来用处那么大!

wljslmz

Linux 三周年连更

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