Packer 无法以 sudo 身份执行 shell 配置程序 [英] Packer can't execute shell provisioner as sudo

查看:80
本文介绍了Packer 无法以 sudo 身份执行 shell 配置程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在打包器中有一个 shell 配置器 与用户 vagrant

I have a shell provisioner in packer connected to a box with user vagrant

{
  "environment_vars": [
    "HOME_DIR=/home/vagrant"
  ],
  "expect_disconnect": true,
  "scripts": [
    "scripts/foo.sh"
  ],
  "type": "shell"
}

脚本内容在哪里:

whoami
sudo su
whoami

并且输出奇怪地保持:

==> virtualbox-ovf: Provisioning with shell script: scripts/configureProxies.sh
    virtualbox-ovf: vagrant
    virtualbox-ovf: vagrant

为什么我不能切换到root用户?如何以 root 身份执行语句?注意,我不想引用像 sudo "statement |foo" 这样的所有语句,而是像 sudo su

why cant I switch to the root user? How can I execute statements as root? Note, I do not want to quote all statements like sudo "statement |foo" but rather globally switch user like demonstrated with sudo su

推荐答案

您应该覆盖 执行命令.示例:

  "provisioners": [
    {
      "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E sh -eux '{{.Path}}'",
      "scripts": [
        "scripts/foo.sh"
      ],
      "type": "shell"
    }
  ],

这篇关于Packer 无法以 sudo 身份执行 shell 配置程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆