010-cloudboot批量安裝rancheros
cloudboot 是 雲霽科技 科技開源的一款簡單易用的裝機系統,類似cobbler ,但是功能更強大,更易用。(可參考我之前寫的 007-Cobbler批量自動化部署Windows10和Server 2019 和 006-Cobbler批量自動化部署CentOS/Ubuntu/Windows )
rancheros
rancheros 是 rancher lab 開源的一款容器作業系統,類似 coreos ,RancherOS是RancherLab設計的小巧、專用的容器作業系統,可用安裝到伺服器本地硬碟中,也可以部署到公有云上,或者配合DockerMachine使用。與Ubuntu和CentOS不同,RancherOS使用cloud-config.yml配置檔案來管理機器的配置資訊,包括系統啟動時的服務、網路相關的配置資訊、儲存配置、容器配置等等,都可以放到配置檔案中進行管理。
安裝cloudboot
參考cloudboot一鍵部署 不多贅述
掛載rancheros映象
wget -P /tmp/ http://releases.rancher.com/os/latest/rancheros.iso mkdir -p $PWD/cloudboot/deploy/iso/rancheros/1.5.1/ mount -o loop /tmp/rancheros.iso /media rsync -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 rancheros LABEL rancheros KERNEL http://osinstall.idcos.com/rancheros/1.5.1/boot/vmlinuz-4.14.85-rancher APPEND initrd=http://osinstall.idcos.com/rancheros/1.5.1/boot/initrd-v1.5.1rancher.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-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/bash progress() { 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 network curl -o /tmp/networkinfo "http://osinstall.idcos.com/api/osinstall/v1/device/getNetworkBySn?sn=${_sn}&type=raw" source /tmp/networkinfo cat > /etc/network/interfaces <<EOF auto lo iface lo inet loopback auto eth0 iface eth0 inet static address $IPADDR netmask $NETMASK gateway $GATEWAY EOF echo "$HOSTNAME" > /etc/hostname sudo 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會自動輪詢是否有自動裝機任務,所以靜候即可。如果等不及,可以在錄入成功後,手動重啟虛擬機器。
在【正在安裝的裝置】中,會自動出現要安裝的裝置

點選【詳情】會在滾動模式下試試看到安裝進度

在【裝置列表】可以看到已安裝成功的裝置

注意
不知道為嘛,安裝後需要重啟一下虛擬機器後,才能使用ssh進行連線。
參考資料
- cloudboot一鍵部署
- cloudboot PXE模板定製規範
- rancheros#docs#iPXE
- 006-Cobbler批量自動化部署CentOS/Ubuntu/Windows
- 007-Cobbler批量自動化部署Windows10和Server 2019
招聘小廣告
山東濟南的小夥伴歡迎投簡歷啊 加入我們 , 一起搞事情。
長期招聘,Java程式設計師,大資料工程師,運維工程師,前端工程師。