我是 coreos 的新手,过去几天一直在尝试解决旧文档和新文档之间的差异,试图弄清楚如何在具有两个网络接口和四个硬盘的裸机系统上安装 coreos。我尝试安装几次,但系统不允许我从控制台或通过 ssh 远程登录。
以下是我所采用的基本步骤:
将 coreos 版本 1800.4.0 ISO 映像刻录到 CD。
创建了一个 ignition 配置 yaml 文件,并使用 ct 将其转换为 json,并将副本放在 USB 闪存驱动器上。
将闪存驱动器插入我的裸机系统并从 CD ISO 启动。
初始系统启动后,我从控制台输入以下命令:
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
安装完成后,我取出 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,很快就让我的容器在那里运行。