我们可以使用coreos_installer 工具对原始的CoreOS ISO文件进行加工,将Ignition文件打包进去从而生成定制的 CoreOS ISO文件。使用定制的CoreOS ISO文件可以在系统启动完成后自动执行CoreOS的安装,因此CoreOS的安装会更加简单。
可以通过以下2种方法之一可获得 coreos_installer :
$ wget https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/coreos-installer/latest/coreos-installer
$ yum install coreos-installer
$ export COREOS_ISO_ORIGIN_FILE=fedora-coreos-32.20200907.3.0-live.x86_64.iso
$ export COREOS_ISO_CUSTOMIZED_FILE=my-coreos.iso
$ export IGN_FILE=config.ign
$ coreos-installer iso ignition show $COREOS_ISO_ORIGIN_FILE
Error: No embedded Ignition config.
$ coreos-installer iso ignition embed $COREOS_ISO_ORIGIN_FILE --ignition-file $IGN_FILE $COREOS_ISO_ORIGIN_FILE --output $COREOS_ISO_CUSTOMIZED_FILE
$ coreos-installer iso ignition show $COREOS_ISO_CUSTOMIZED_FILE
{"ignition":{"version":"3.1.0"},"passwd":{"users":[{"name":"core","passwordHash":"$1$yoursalt$7/tmQXmlhL0pYfN/fyBZS1","sshAuthorizedKeys":["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIBxVOCdtNHBgbEVQseDdRonC/OlP5qm7MoKeuwYFjvg6UKXl8MTplQ4ErV1r994XnkErRBzlxsPdn/s7/alJ8CJ3Po39QDMlJvvy/nG3Vak/naxc6hXwL4to1oJrMhyp7YsY2EzPke+b1FyWD6NZ27mhJnCmNhw4pND6QxfZulVCnlolg9BeTSuXaIRrgLnjdSU+9ojTz6BMVo5MWY+xXRNrydlI4rx19tnd0c62SwQnvjO8i+hCXzNAkwGb8J5KDLs7jYZhjOW4IyHa95NdgWlRDcVICQSbA0makjJyIFK9KDzaTYM0MvCpSkMXo9uTFKwPiKfhBrKw9n8nBegXN root@node1"]}]}}
使用定制的 CoreOS ISO 文件可以直接引导BareMetal或虚拟机,并根据Ignition自动完成CoreOS的安装。在完成安装后,我们可以直接在虚拟机的控制台上用core/password(在《OpenShift 4 - Fedora CoreOS (1) - 安装》中创建的“config.ign”文件里包含的core用户的密码)登录CoreOS。由于在本例使用的Ignition文件中没有指定IP地址,因此CoreOS会使用DHCP获得一个动态IP地址。为此我们需要先通过虚拟机控制台执行“ip a”命令获得它的IP地址(例如本环境分配的IP为“192.168.1.20”),然后就可使用Ignition文件中公钥对应的私钥访问这个由定制的ISO安装的CoreOS环境了。
$ ssh core@192.168.1.20 -i id_rsa
Warning: Permanently added '192.168.1.20' (RSA) to the list of known hosts.
X11 forwarding request failed on channel 0
Fedora CoreOS 32.20200907.3.0
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/c/server/coreos/
Last login: Wed Oct 7 12:37:03 2020
https://github.com/coreos/coreos-installer/blob/master/docs/cmd/iso.md
https://computingforgeeks.com/install-fedora-coreos-fcos-on-kvm-openstack/
https://dustymabe.com/2020/04/04/automating-a-custom-install-of-fedora-coreos/