Coreos

Coreos 裸機安裝登錄失敗,一些點火指令被忽略

  • January 29, 2021

我是 coreos 的新手,過去幾天試圖解決過時文件和新文件之間的差異,試圖弄清楚如何在具有兩個網路介面和四個 HDD 的裸機系統上安裝 coreos。我已經嘗試安裝了幾次,但留下的系統不允許我從控制台登錄,也不允許我通過 ssh 遠端登錄。

以下是我使用的基本步驟:

  1. 將 coreos 版本 1800.4.0 ISO 映像刻錄到 CD。
  2. 創建了一個點火配置yaml文件,並使用ct將其轉換為json,並複製到U盤上。
  3. 在我的裸機系統上插入快閃記憶體驅動器並從 CD ISO 啟動。
  4. 初始系統啟動後,我從控制台輸入了以下命令:

sudo su ping google.com #驗證網路 lsblk #驗證我的 U 盤在:/dev/sde1 mkdir /mnt/sde1 mount /dev/sde1 /mnt/sde1 coreos-install -d /dev/sda -i /mnt/sde1/ignition.json 5. 安裝完成後,我取出 CD、快閃記憶體驅動器並重新啟動。重啟

系統啟動,並在控制台顯示 localhost 登錄提示。使用我在點火文件中指定的使用者登錄控制台失敗,它不接受密碼。從 ssh 遠端登錄也無法辨識密碼。(點火文件密碼雜湊值是使用“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 陣列中有兩個網卡和四個 HDD,並且能夠在指定的靜態地址登錄。

對於那些發現這個問題的人來說僅供參考:我終於放棄了在裸機上安裝 coreos 的嘗試,它只是不允許我登錄。切換到基本的 Ubuntu Server 18.04,我的容器很快就在那裡執行了。

引用自:https://serverfault.com/questions/924332