Отключить CoreOS cloudinit

Я хотел попробовать CoreOS для нового vServer. Пока мне это нравится, но я совершил фатальную ошибку: я создал его с помощью файла cloudinit вместо более нового метода ignition , и теперь при каждой перезагрузке обновления он сбрасывает мой пароль и настройки ssh. ..

Мне было лень создавать "идеальный" файл cloudinit, поэтому я решил, что смогу изменить все настройки впоследствии, так как каждый раз, когда я устанавливал ОС до ...

Итак, после каждого временного окна обновления я должен снова измените свой пароль, и мне нужно перезапустить службу sshd, потому что порт снова установлен на 22, даже если конфигурация все еще определяет мой измененный номер порта.

Я не смог найти никаких советов по изменению файла cloudinit после этого или даже чтобы отключить сброс при перезагрузке. Я вижу преимущество файлов зажигания, которые выполняются только один раз, но я бы не хотел переустанавливать весь vServer только для переустановки CoreOS с помощью файла зажигания.

Есть идеи или подсказки? :)

Заранее спасибо

0
задан 16 February 2019 в 20:43
1 ответ

Майкл указал мне правильное направление - спасибо! Не знал о возможности снабдить систему новой облачной конфигурацией и подумал, что мне нужно изменить некоторые конфигурации в разных местах в любом месте системы ...

Другая проблема, похоже, заключалась в том, что CoreOS немного использует cloud-init немного отличается от того, что показано в документации cloud-init, и поэтому вы можете найти несколько различных решений, которые не работают для CoreOS.

Проблема 1: перезагрузка сбрасывает порт ssh на 22

Я нашел эту страницу в документации , и я обнаружил, что правильно отредактировал sshd_config, но система использовала sshd.socket после перезагрузки, поэтому мне пришлось (повторно) запускать sshd все время ...

Решение: Отключение активация sshd.socket

sudo systemctl mask --now sshd.socket
sudo systemctl enable sshd.service      # VERY IMPORTANT!
sudo systemctl restart sshd.service

Очень важно: Вы можете заблокировать себя вне системы! Вы можете проверить, есть ли у вас доступ к оболочке входа через панель управления вашего провайдера (спасло меня). В документации говорится, что вы должны выполнить команды 1 и 3 выше, но служба sshd отключена после перезагрузки, поэтому вы должны включить ее перед перезагрузкой!

в качестве альтернативы вы можете использовать sshd.socket и изменить порт там. Это также задокументировано по ссылке выше.

Проблема 2: Сброс моего пароля после каждой перезагрузки

Решение: Создайте новый cloud-init.yaml

Я мог бы создать лучший cloud-init.yaml и повторно примените его. Просто изменил пароль и добавил мои ssh-ключи для существующего пользователя и вызвал

sudo coreos-cloudinit --validate --from-file=/path/to/cloud-init.yaml

, чтобы проверить файл. Удаление флага - validate применит cloud-init.yaml и изменит пароль (можно проверить его), но перезагрузка все равно сбросит его ! Как я выяснил, команда coreos-cloudinit не предназначена для запуска любыми пользователями вручную. Чтобы обновить конфигурацию для повторной инициализации при перезагрузке, мы должны перезаписать другой файл:

sudo cp /path/to/cloud-init.yaml /var/lib/coreos-install/user_data

Впоследствии мой пароль был правильным после перезагрузки.

1
ответ дан 4 December 2019 в 15:45

Теги

Похожие вопросы