4.3 KiB
4.3 KiB
Заголовок
[cephadm/bootstrap] Bootstrap падает на orch host add, если SSH на ноде не на 22 (custom port 10225)
TL;DR
cephadm bootstrap во время установки пытается добавить bootstrap-хост в orchestrator через SSH на порт 22. Если SSH слушает 10225, bootstrap ломается с ошибкой Can't communicate with remote host ... Connect call failed (ip, 22).
Контекст
- Компонент: Cephadm / ceph orch (orchestrator backend: cephadm)
- ОС: Debian 13 (trixie), VM (Proxmox)
- SSH: sshd слушает 10225, порт 22 закрыт/не слушает
- Ceph:
cephadm 18.2.7(reef),ceph-common 18.2.7 - Сеть:
192.168.0.0/24, bootstrap mon-ip:192.168.0.102
Шаги воспроизведения
- На ноде включить SSH только на кастомном порту:
Port 10225- порт 22 не слушает/закрыт
- Запустить bootstrap:
cephadm bootstrap \ --mon-ip 192.168.0.102 \ --initial-dashboard-user admin \ --initial-dashboard-password password \ --allow-fqdn-hostname - Дождаться шага добавления хоста в orchestrator.
Ожидаемое
- Bootstrap завершён успешно.
- Bootstrap-нода добавлена в
ceph orch host ls. ceph -sиceph orch psработают.
Фактическое
- Bootstrap прерывается на добавлении bootstrap-хоста в orchestrator:
Error EINVAL: Can't communicate with remote host ...Connect call failed ('192.168.0.102', 22)
- Кластер остаётся в “полуразвернутом” состоянии и требует cleanup через
cephadm rm-cluster.
Логи / доказательства
Команда:
cephadm bootstrap \
--mon-ip 192.168.0.102 \
--initial-dashboard-user admin \
--initial-dashboard-password password \
--allow-fqdn-hostname
Фрагмент вывода:
Generating ssh key...
Wrote public SSH key to /etc/ceph/ceph.pub
Adding key to root@localhost authorized_keys...
Adding host dev-kyiv01-vm-ceph-main-01...
...
Error EINVAL: Can't communicate with remote host `192.168.0.102`
[Errno 111] Connect call failed ('192.168.0.102', 22)
Проверки, подтверждающие причину:
ss -lntp | grep sshd # показывает слушает 10225, нет :22
nc -vz 192.168.0.102 22 # refused/failed
nc -vz 192.168.0.102 10225 # ok
Root cause (гипотеза/факт)
- Факт:
cephadm bootstrapвнутри запускаетceph orch host add <hostname> <mon-ip>для bootstrap-ноды и пытается достучаться до неё по SSH на 22/tcp. - При SSH на 10225 соединение на 22 не устанавливается → bootstrap падает.
Влияние
- Частота: always, если sshd не слушает 22.
- Impact:
- невозможно быстро поднять кластер “из коробки” при custom ssh port
- остаются артефакты “битого” кластера (нужен ручной purge)
Workaround
- Временно открыть/включить SSH на 22 в mgmt-сети
План фикса / идеи
- Попробовать bootstrap/оркестратор с явной настройкой SSH порта через ssh_config для cephadm (custom port 10225):
- подготовить отдельный ключ и
ssh_configсPort 10225 - прокинуть его в bootstrap (например через параметры вида
--ssh-config,--ssh-private-key/--ssh-public-key,--ssh-user— зависит от версии/пакета) - после поднятия закрепить ssh_config для cephadm module (чтобы
ceph orch host addвсегда использовал 10225)
- подготовить отдельный ключ и
- Если “быстро и надёжно” не выходит — принять стандарт: внутри mgmt/VPN оставить 22, с firewall allowlist (а наружу не публиковать вообще), а 10225 использовать только там, где реально нужно.