在 bash 脚本中指定非交互模式的 root 密码
specify root password with no-interactive mode into bash script
我已经在使用 Packer 和 Ubuntu 14 创建 vagrant box 时指定了 root 密码,将此命令处理到脚本配置中:echo "root:vagrant"|chpasswd
但我想用基于 Ubuntu 16.04 的新 vagrant box 来做到这一点。不幸的是,这个命令没有 运行,我必须使用 SSH 连接到我的虚拟机并手动指定我的密码 root :sudo passwd
我不要这一步配置密码。我如何使用加壳程序和配置脚本 sh 做到这一点?使用非交互模式指定 root 密码 ?
您可以:
1) 在您的 preseed.cfg
文件中设置它:
d-i passwd/root-password-again password vagrant
d-i passwd/root-password password vagrant
2) 或者在boot_command
中设置为预置参数:
"passwd/root-password={{ user `root_password` }} ",
"passwd/root-password-again={{ user `root_password` }} ",
其中 root_password
是 Packer 用户变量。请参阅 boxcutter/ubuntu: Ubuntu Template(在此示例中,设置的是 vagrant
用户的密码,而不是 root
)
PTY:见Wikipedia: Pseudoterminal and Packer Documentation: SSH PTY
我已经在使用 Packer 和 Ubuntu 14 创建 vagrant box 时指定了 root 密码,将此命令处理到脚本配置中:echo "root:vagrant"|chpasswd
但我想用基于 Ubuntu 16.04 的新 vagrant box 来做到这一点。不幸的是,这个命令没有 运行,我必须使用 SSH 连接到我的虚拟机并手动指定我的密码 root :sudo passwd
我不要这一步配置密码。我如何使用加壳程序和配置脚本 sh 做到这一点?使用非交互模式指定 root 密码 ?
您可以:
1) 在您的 preseed.cfg
文件中设置它:
d-i passwd/root-password-again password vagrant
d-i passwd/root-password password vagrant
2) 或者在boot_command
中设置为预置参数:
"passwd/root-password={{ user `root_password` }} ",
"passwd/root-password-again={{ user `root_password` }} ",
其中 root_password
是 Packer 用户变量。请参阅 boxcutter/ubuntu: Ubuntu Template(在此示例中,设置的是 vagrant
用户的密码,而不是 root
)
PTY:见Wikipedia: Pseudoterminal and Packer Documentation: SSH PTY