目的:通过pxe引导进入coreos,然后在coreos执行安装脚本将系统安装到硬盘
思路:
参考资料
# nginx目录结构
.
├── 1353.7.0
│ ├── coreos_production_image.bin.bz2
│ └── coreos_production_image.bin.bz2.sig
└── cloud-configs
├── 08:00:27:56:a4:22.yml
├── default.yml
└── install.sh
1353.7.0是coreos的系统版本号
08:00:27:56:a4:22.yml是目标机器网卡mac地址增加上yml后缀名
08:00:27:56:a4:22.yml文件内容
#cloud-config
# include one or more SSH public keys
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAv7O ...
公钥内容省略部分,实际情况应该很长
install.sh的内容
#!/bin/sh
image_url=http://192.168.33.50
mac_addr=`ifconfig | grep -A2 'broadcast' | grep -o '..:..:..:..:..:..'`
wget ${image_url}/cloud-configs/${mac_addr}.yml
sudo coreos-install -d /dev/sda -V 1353.7.0 -c ${mac_addr}.yml -b ${image_url}
sudo reboot
/var/lib/tftpboot/pxelinux.cfg/default
内容
default coreos
prompt 1
timeout 15
display boot.msg
label coreos
menu default
kernel coreos_production_pxe.vmlinuz
initrd coreos_production_pxe_image.cpio.gz
append cloud-config-url=http://192.168.33.50/cloud-configs/install.sh
仅需要在配置好pxe和准备好nginx中的文件后,重启目标机器,机器会从pxe启动,然后执行安装脚本,安装完成后会自动重启(记得配置硬盘第一启动项,网络启动第二启动项)