Coreos 裸机安装登录失败,忽略了一些点火指令

Coreos 裸机安装登录失败,忽略了一些点火指令

我是 coreos 的新手,过去几天一直在尝试解决旧文档和新文档之间的差异,试图弄清楚如何在具有两个网络接口和四个硬盘的裸机系统上安装 coreos。我尝试安装几次,但系统不允许我从控制台或通过 ssh 远程登录。

以下是我所采用的基本步骤:

  1. 将 coreos 版本 1800.4.0 ISO 映像刻录到 CD。

  2. 创建了一个 ignition 配置 yaml 文件,并使用 ct 将其转换为 json,并将副本放在 USB 闪存驱动器上。

  3. 将闪存驱动器插入我的裸机系统并从 CD ISO 启动。

  4. 初始系统启动后,我从控制台输入以下命令:

    sudo su ping google.com #验证网络 lsblk #验证我的 USB 闪存驱动器是否位于:/dev/sde1 mkdir /mnt/sde1 mount /dev/sde1 /mnt/sde1 coreos-install -d /dev/sda -i /mnt/sde1/ignition.json

  5. 安装完成后,我取出 CD、闪存驱动器并重新启动。 重新启动

系统启动后,控制台上显示 localhost 登录提示。使用我在 ignition 文件中指定的用户登录控制台失败,它不接受密码。从 ssh 远程登录也无法识别密码。(ignition 文件 password_hash 值是使用“openssl passwd -1”命令创建的。ssh_authorized_keys 值是使用“ssh-keygen -t rsa”命令创建的。)

此外,点火配置中指定的静态网络地址被忽略,似乎使用了 DHCP。

这是转换为 json 之前的配置 yaml:

# This config is meant to be consumed by the config transpiler, which will
# generate the corresponding Ignition config. Do not pass this config directly
# to instances of Container Linux.

storage:
  files:
    - filesystem: "root"
      path:       "/etc/hostname"
      mode:       0644
      contents:
        inline: coreos1
  disks:
    - device: /dev/sda
      wipe_table: true
      partitions:
       - label: root1
         type_guid: be9067b9-ea49-4f15-b4f6-f36f8c9e1818
         number: 1
         size: 120GiB
       - label: reserve1
         type_guid: a19d880f-05fc-4d3b-a006-743f0f84911e
         number: 2
    - device: /dev/sdb
      wipe_table: true
      partitions:
       - label: root2
         type_guid: be9067b9-ea49-4f15-b4f6-f36f8c9e1818
         number: 1
         size: 120GiB
       - label: reserve2
         type_guid: a19d880f-05fc-4d3b-a006-743f0f84911e
         number: 2
    - device: /dev/sdc
      wipe_table: true
      partitions:
       - label: store1
         type_guid: a19d880f-05fc-4d3b-a006-743f0f84911e
    - device: /dev/sdd
      wipe_table: true
      partitions:
       - label: store2
         type_guid: a19d880f-05fc-4d3b-a006-743f0f84911e
  raid:
    - name: "root_array"
      level: "raid1"
      devices:
        - "/dev/sda1"
        - "/dev/sdb1"
    - name: "reserve_array"
      level: "raid1"
      devices:
        - "/dev/sda2"
        - "/dev/sdb2"
    - name: "store_array"
      level: "raid0"
      devices:
        - "/dev/sdc1"
        - "/dev/sdd1"
  filesystems:
    - name: "ROOT"
      mount:
        device: "/dev/md/root_array"
        format: "ext4"
        label: "ROOT"
    - name: "RESERVE"
      mount:
        device: "/dev/md/reserve_array"
        format: "ext4"
        label: "RESERVE"
    - name: "STORE"
      mount:
        device: "/dev/md/store_array"
        format: "ext4"
        label: "STORE"
networkd:
  units:
    - name: static.network
      contents: |
        [Match]
        Name=eno1
        [Network]
        DNS= *snipped*
        Address=10.0.0.178/24
        Gateway=10.0.0.1
    - name: 00-enp2s0.network
      contents: |
        [Match]
        Name=enp2s0
        [Network]
        DNS= *snipped*
        Address=10.0.0.179/24
        Gateway=10.0.0.1
passwd:
  users:
    - name: "user1"
      password_hash: "$1$Fe8..."
      ssh_authorized_keys:
        - ssh-rsa AAAAB3N...
      groups:
        - "sudo"
        - "docker"

又花了一天时间在网上搜索更多线索以查明我做错了什么之后,我似乎已经用尽了其他任何建议。

如果您有使用 coreos 的经验,请告诉我我可能做错了什么。我的目标是在裸机硬件上安装 coreos,该硬件配有两个网卡和四个硬盘驱动器(RAID 阵列),并能够在指定的静态地址登录。

答案1

对于那些发现此问题的人,请参考:我最终放弃了在裸机上安装 coreos 的尝试,因为它就是不让我登录。切换到基本的 Ubuntu Server 18.04,很快就让我的容器在那里运行。

相关内容