800px-Fedora_CoreOS_logo.svg.png
Fedora CoreOS 是一个自动更新的、最小的、单一的、以容器为中心的操作系统,为集群设计,但也可以独立运行,为 Kubernetes 优化,但没有它也很好。它旨在结合 CoreOS Container Linux 和 Fedora Atomic Host 的优点,将来自 Container Linux 的 Ignition 等技术与来自 Project Atomic 的 rpm-ostree 和 SELinux 加固技术相结合。其目标是提供最佳容器主机,以安全、大规模地运行容器化工作负载。

获取 Fedora CoreOS

下载 Fedora CoreOS

下载好live光盘iso文件,建立一个虚拟机

  • live光盘启动后是一个类似 WinPE的内存挂载系统,用来安装 Fedora CoreOS

    ###########################################################################
    Welcome to the CoreOS live environment. This system is running completely
    from memory, making it a good candidate for hardware discovery and
    installing persistently to disk. Here is an example of running an install
    to disk via coreos-installer:
    
    sudo coreos-installer install /dev/sda \r
      --ignition-url https://example.com/example.ign
    
    You may configure networking via 'sudo nmcli' or 'sudo nmtui' and have
    that configuration persist into the installed system by passing the
    '--copy-network' argument to 'coreos-installer install'. Please run
    'coreos-installer install --help' for more information on the possible
    install options.
    ###########################################################################
    
    Fedora CoreOS 34.20211004.3.1
    Tracker: https://github.com/coreos/fedora-coreos-tracker
    Discuss: https://discussion.fedoraproject.org/c/server/coreos/
    

安装 Fedora CoreOS 到硬盘中的命令

sudo coreos-installer install /dev/sda

CoreOS.png

安装速度还是非常快的,只是把硬盘分区,然后把光盘中的文件想 ghost 一样解压到硬盘中

  • 34.20211004.3.1 Arch: x86_64 Release Date: Oct 20, 2021
  • ignition 2.12.0 kernel5.14.9 moby-engine 20.10.8 podman 3.3.1 rpm-ostree 2021.11 systemd 248.7
  • 396 packages (expand); 47 upgraded (expand);
  • 光盘中的软件包主要如上,工具软件是是只读保存在一个 img 文件中,系统启动的时候挂载这个 img 镜像

Fedora CoreOS 系统已经安装完成了,reboot 重启到实际的硬盘系统

  • 你是没法登陆的,因为你不知道密码,也没远程登陆的证书
    123.png

先研究下ssh证书登陆 证书登陆的脚本.sh

#!/bin/bash
mkdir -p ~/.ssh  && cd ~/.ssh
authorized_keys(){
cat <<EOF >>  authorized_keys
ssh-rsa 把你的公钥放这行 root
EOF
}
authorized_keys
  • 制作类似一个脚本保存在能 web访问的网页目录下,如果你不懂,就当我没说

Fedora CoreOS 系统安装后没法启动,先live光盘启动,把 SSH 证书 注入到硬盘系统

  • 如果你重启没法登陆,研究了ssh证书登陆,然后使用 live 光盘重启来修复证书登陆

1. 先启用live光盘 ssh 证书登陆,使用SSH远程登陆,方便复制粘贴

bash < (curl -sL 188.8.8.8/sshkey.sh)
# 你把 sshkey.sh 脚本存放到一台网页服务器上
ssh [email protected]    # 使用ssh工具远程登陆

1.png

2. 使用 partx或fdisk 查看硬盘分区,查到 /dev/sda4 是硬盘系统 root 分区

$ sudo partx /dev/sda

NR   START     END SECTORS SIZE NAME       UUID
 1    2048    4095    2048   1M BIOS-BOOT  e7503859-edcd-4cd0-af97-0a2fe6684831
 2    4096  264191  260096 127M EFI-SYSTEM 37d8cf15-0620-4a6d-ba07-a0836412b7d5
 3  264192 1050623  786432 384M boot       c251fa18-a8cf-46e9-9779-38061d148096
 4 1050624 5005278 3954655 1.9G root       c5cebabd-7bd9-49da-bfbd-395e534885b2

$ sudo fdisk -l
Device       Start     End Sectors  Size Type
/dev/sda1     2048    4095    2048    1M BIOS boot
/dev/sda2     4096  264191  260096  127M EFI System
/dev/sda3   264192 1050623  786432  384M Linux filesystem
/dev/sda4  1050624 5005278 3954655  1.9G Linux filesystem

3. 挂载 /dev/sda4 根分区,添加 ssh 证书文件

sudo mkdir /mnt/sda4
sudo mount /dev/sda4 /mnt/sda4

cd /mnt/sda4/ostree/deploy/fedora-coreos/var/home/core
sudo mkdir .ssh
sudo cp ~/.ssh/authorized_keys  .ssh/

$ ls -a .ssh/
authorized_keys

4. 给 root 用户也添加 ssh 证书

sudo -i
cd /mnt/sda4/ostree/deploy/fedora-coreos/var/
cd roothome/
cp /home/core/.ssh/authorized_keys .ssh/

$ ls -a .ssh/
authorized_keys

卸载光盘使用硬盘启动,再远程 ssh 登陆 root 和 core 用户都能远程登陆了

ssh [email protected]
ssh [email protected]

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注