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