Как настроить ssh-доступ для автоматического ISO-образа linux-distro для локальной среды разработки, аналогичной доступу к экземплярам виртуальной машины облачной службы?
Я сконфигурировал Packer для сборки автоматической установки различных дистрибутивов Debian для VMware Fusion. Когда я настраиваю виртуальные машины вручную для доступа по ssh, время ожидания истекает, а созданные артефакты сборки стираются.
Как вам выполнить предварительную установку ssh-доступа как части образа установки ОС, подобно тому, как это делается для экземпляров виртуальных машин облачной службы? Я собираюсь попытаться настроить его с помощью кикстарта или предсессионной команды preseed в Debian в обновленный образ ISO, чтобы решить мою проблему, но мне было бы интересно услышать другие более гибкие методы. Цель всего этого - создать инфраструктуру разработки, которую можно легко включать и выключать автоматизированным способом, который можно использовать для локального моделирования облачной среды.
3 ответа
Вскоре после того, как я задал этот вопрос, я решил свою проблему, настроив статическую ssh-клавишу с помощью поздней команды Debian. Ни в коем случае не окончательное решение (поскольку ssh-ключи не генерируются динамически), но для локальной инфраструктуры разработки, которая находится в стадии разработки, этого будет достаточно. Я также считаю, что другие опубликованные ответы являются одинаково обоснованными решениями, которые следует учитывать, если вы окажетесь в такой ситуации.
Вы можете установить git и puppet agent на коробке и настроить rc.local для запуска git pull && puppet apply.
Вам понадобится доступ к http(s) git repo, который вы также можете разместить в своей среде (например, в ноутбуке), и манифест марионетки с определениями пользователя / ключа, который очень легко написать.
Если вы обновляете определения ключей в репозитории, git pull обновляет локальный клон, а puppet извлекает их данные оттуда. Puppet является идемпотентом, поэтому последовательные прогоны не изменят систему, если будут созданы все пользователи, и все ключи ssh идентичны тем, которые есть в локальном клоне git, а git pull перед каждым запуском обеспечит синхронизацию клона локального репо с восходящим потоком.
Возможно, вы также можете использовать другие инструменты CFG MGMT.
Вы можете предварительно установить агент Userify на ISO. Они будут обновлять ваши ключи SSH с течением времени и позволят вам создавать пользователей (sudo perms и т. Д.) Удаленно. Ему нужен только исходящий HTTPS, поэтому он должен легко работать с виртуальной машины, если вы не отключили исходящий сетевой доступ.