【发布时间】:2021-01-05 14:44:59
【问题描述】:
我正在使用 terraform 在 Openstack 中创建一台带有 s390x 架构的 RHEL7.8 机器,并在 user_data 中运行 init.sh 文件我在执行 init.sh 文件中的任何命令时收到以下错误日志。
我的 init.sh 文件
echo "Start executing bootstrap...\n"
echo -e "${root_pwd}\n${root_pwd}" | sudo passwd root
echo "Changed Root account password"
sudo yum update -y
我收到以下错误消息
Start executing bootstrap...\n
sudo: Account or password is expired, reset your password and try again
Changing password for root.
sudo: no tty present and no askpass program specified
sudo: unable to change expired password: Authentication token manipulation error
Changed Root account password
sudo: Account or password is expired, reset your password and try again
sudo: no tty present and no askpass program specified
sudo: unable to change expired password: Authentication token manipulation error
当我手动登录机器并尝试sudo passwd root 时,它工作正常。
为什么它不能通过 terraform 工作
【问题讨论】:
-
您是否使用与 Terraform 用于连接的相同凭据手动登录计算机?
-
是的,我正在使用密钥登录机器。在 Terraform 中,我也在使用密钥连接机器。但这里我正在执行 user_data 中的
init.sh文件 -
我只是在这里猜测,但是否有一些 VM 初始化任务在尝试脚本化 sudo 之前尚未完成,但在您手动尝试之前完成?也许在脚本中添加延迟可以解决这个问题。
-
你的意思是延迟
user_data的执行? -
我延迟执行脚本但仍有问题