轻松掌握!一文教你用CloudBoot批量安装RancherOS

RancherOS是Rancher Labs设计的小巧、专用的容器操作系统。本文详细介绍了如何使用CloudBoot简单批量安装RancherOS。作者简介赵安家,山东顺能网络全栈研发工程师。前端后端通吃,DevOps、安全、培训都有涉猎,负责了公司从单体服务迁移至微服务的项目。介绍CloudBootCloudBoot是云霁科技科技开源的一款简单易用的装机系统,类似Cobbler ,但是功能更强大,更易用。(详情可参阅参考资料的链接)RancherOSRancherOS是Rancher Labs开源的一款容器操作系统,类似coreOS,RancherOS是Rancher Labs设计的小巧、专用的容器操作系统,可用安装到服务器本地硬盘中,也可以部署到公有云上,或者配合DockerMachine使用。与Ubuntu和CentOS不同,RancherOS使用cloud-config.yml配置文件来管理机器的配置信息,包括系统启动时的服务、网络相关的配置信息、存储配置、容器配置等等,都可以放到配置文件中进行管理。安装cloudboot可参阅CloudBoot一键部署 :http://idcos.github.io/osinst…挂载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/shln -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模板定制规范RancherOS#docs#iPXE:https://rancher.com/docs/os/v…CloudBoot PXE模板定制规范:http://idcos.github.io/osinst…PXE模板管理从【模板管理】->【PXE模板管理】 新增RancherOS-1.5.1DEFAULT 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=10 IPAPPEND 2系统模板管理从【模板管理】->【系统模板管理】 新增rancheros-1.5.1把docker mirror换成实际的加速器,如果不需要,可以删除,ssh_authorized_keys 换成真实的ssh key#cloud-configrancher: 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/networkinfocat > /etc/network/interfaces <<EOFauto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress $IPADDRnetmask $NETMASKgateway $GATEWAYEOFecho “$HOSTNAME” > /etc/hostnamesudo hostname “$HOSTNAME"progress “配置alpine镜像源” 0.8 “6YWN572uYWxwaW5l6ZWc5YOP5rqQ"sed -i ’s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g’ /etc/apk/repositoriesprogress “安装完成” 1 “5a6J6KOF5a6M5oiQ"sudo ros install -c http://osinstall.idcos.com/ap...$_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/v…#cloud-configrancher: services: nginxapp: image: nginx restart: always参考资料https://juejin.im/post/5c748a…https://juejin.im/post/5c748b… ...

March 19, 2019 · 1 min · jiezi

RancherOS v1.5.0发布

一言不合就发新版本。年关将至,寒意习习,落叶萧萧下,阳光日日稀。RancherOS团队历时两个来月的开发,正式发布RancherOS v1.5.0版本。 在此期间同为Container Linux阵营的CoreOS已经从红帽再入IBM,潮流之变,业界态势,让我们无不更加努力去争得一席之地。 无论是商业用户的积累,还是业界变化带来的社区用户增长,都在催促我们不断革新,应该说1.5.0版本是用户的需求推着我们走出来的。重大特性更新本版本的新特征众多,无法一次性全部说明,以下只表述一些用户关注度比较高的特性。个别特性详细说明,我们会不断推出文章一一展开。启动性能提升一直以来RancherOS的initrd一直采用xz格式压缩,随着RancherOS的体积不断增大,xz压缩越来越影响系统启动速度。虽然xz格式能够带来比较小的initrd和ISO, 但是我们也需要兼顾启动速度。v1.5.0版本的initrd已经采用了gzip格式,文件体积有所增大,但是启动速度有了质的飞跃。 同时我们也优化了system-docker的镜像加载和cloud-init的启动,对启动速度进行了深度优化。LUKS磁盘加密支持支持LUKS,允许用户对跟磁盘分区进行加密,在一些特殊场景下增强了RancherOS的安全性。运行效果参考下图:WiFi和4G支持Intel正在micro PC领域不断发力,RancherOS被纳入其生态体系,我们支持了WiFi和4G网络,用户可以通过简单的cloud-config配置就可以开启, 带来了十分简洁的用户体验,这部分我们会在后续其他文章中详细介绍。Hyper-V支持很多社区用户一直希望能在Hyper-V使用RancherOS,先前我们一直提供给用户一些custom build的方式来实现它,现在我们正式支持了它,并会持续维护。 无论是docker-machine方式还是boot from ISO方式均可以支持。下一个版本我们也会带来RancherOS的Azure Cloud支持。多docker engine支持这是一个很有趣的特性,目前RancherOS中默认拥有一个user docker。在v1.5.0中,用户可以用过ROS CLI来创建多个user docker engine, 并且每个docker拥有独立的ROOTFS和网络栈,并且可以在console很容易的切换使用任意一个docker。当然我们并不推荐您在生产中使用,我们的某个商业客户把这个特性应用在其CI环境中,极大的提升了资源的利用率,减少了物理机器数量的开销。改善VMware的支持RancherOS的广大用户中Vmware是占有很大的用户群,之前我们的版本中只针对docker-machine方式做了一些改善,但是很多用户还希望使用boot from ISO方式和VMDK方式, 我们相关的镜像也做了支持,用户可以直接下载使用它:[VMDK] https://releases.rancher.com/...[Docker Machine] https://releases.rancher.com/...[Boot From ISO] https://releases.rancher.com/...ARM的支持由于Rancher和ARM已经开始了战略合作,我们会在一起做很多有趣的事。RancherOS的ARM支持也是其中的一部分,原先我们只是对RPi做了支持, 现在我们提供ARM版本的initrd和vmlinuz,用户可以用它们使用iPXE方式启动:https://releases.rancher.com/…https://releases.rancher.com/…我们依然只会对ARM64支持,且v1.5.0的ARM支持只是实验性质的,并不推荐应用在生产中。 我们会和ARM进行合作进行更广泛的测试,后续的版本将会是更稳定的。更加友好的自定义社区中越来越多的发烧友并不局限使用我们的正式发布版本,他们会根据自己的需求修改RancherOS,构建自己的RancherOS。 我们提供了一些友好的编译选项,用户可以自定义自己的RancherOS。更改默认docker engineRancherOS的每个版本都会有自己设定的默认docker engine,而在用户的场景下,可能需要一个内部认可的docker engine,且希望它是RancherOS默认的版本。 那么用户可以在构建时候指定docker engine版本,来构建自己的RancherOS,以docker 17.03.2为例:USER_DOCKER_VERSION=17.03.2 make release更改默认consoleRancherOS支持很多console,比如ubuntu、alpine、centos等,由于我们的default console基于busybox,有些用户并不喜欢它,且不希望每次都去切换console。 那么用户可以使用这种方式构建一个默认console是自己喜欢的版本,以alpine console为例:$ OS_CONSOLE=alpine make release其 他AWS相关镜像已经上传到各个region中,可以直接搜索查找并使用,包括AWS中国区。其他主要镜像列表参考:https://github.com/rancher/os…更多新特性和Bug Fix请参考v1.5.0的Release Notes文档说明:https://rancher.com/docs/os/v…最后,RancherOS还是一个小众的开源项目,我们专注Docker在Linux上的精简体验,如果喜欢RancherOS,请在Github上给我们一个star,鼓励我们继续前行。Rancher Github:https://github.com/rancher/os…

January 9, 2019 · 1 min · jiezi