указать пароль root с неинтерактивным режимом в сценарии bash

Я уже указал пароль root при создании бродячего ящика с помощью Packer и Ubuntu 14, используя эту команду для подготовки сценария: echo "root:vagrant"|chpasswd

Но я хочу сделать это с новым бродячим ящиком на базе Ubuntu 16.04. К сожалению, эта команда не запускается, и я должен подключиться к своей виртуальной машине с помощью SSH и вручную указать свой пароль root с помощью: sudo passwd

Мне не нужен пароль для этой пошаговой конфигурации. Как я могу сделать это с помощью упаковщика и скрипта подготовки sh? Указать пароль root в неинтерактивном режиме ?


person darkomen    schedule 21.04.2017    source источник
comment
Теоретически это должно работать и на 16.0. Вы пытались установить/снять настройку ssh_pty? Простое решение — просто установить пароль в файле preseed или с помощью рук preseed в boot_command.   -  person Rickard von Essen    schedule 21.04.2017
comment
Что такое ssh_pty, как добавить это в preseed.cfg, что такое preseed arm или как добавить это в boot_command в упаковщике файлов шаблонов json?   -  person darkomen    schedule 22.04.2017


Ответы (1)


Вы можете:

1) Установите его в свой файл preseed.cfg с помощью:

d-i passwd/root-password-again password vagrant
d-i passwd/root-password password vagrant

См. bento: Debian 8 — Пример< /а>

2) Или установите его в качестве аргумента preseed в boot_command:

"passwd/root-password={{ user `root_password` }} ",
"passwd/root-password-again={{ user `root_password` }} ",

Где root_password — это пользовательская переменная Packer. См. раздел boxcutter/ubuntu: шаблон Ubuntu (в этом например, установлен пароль для пользователя vagrant, а не root)


PTY: См. Википедия: Псевдотерминал и Документация по Packer: SSH PTY

person Rickard von Essen    schedule 22.04.2017
comment
Очень хороший точный и полный ответ, который отлично работает на Windows 10 pro + packer 1.0.0 + Vagrant 1.9.3 и Ubuntu 16.04.2 LTS - person darkomen; 25.04.2017