[英]Store env variables in Vagrant from Packer
I'm trying to export PATH=$PATH:$GOPATH/bin
for go in the Vagrant box that my Packer built so when I vagrant ssh
into the box I can call whatever binary I have in there.
environment_vars = ["GOPATH=$HOME/go"]
让go
安装包,但它不会留在盒子里。 我已经在scripts/dependencies.sh
中尝试export GOPATH=$HOME/go
和export PATH=$PATH:$GOPATH/bin
,但这没有用。
有人知道如何将环境变量从 Packer 版本存储到 Vagrant 盒子吗?
build {
name = "test-vagrant"
description = "Testing VM"
sources = [
"source.vagrant.alpine"
]
provisioner "shell" {
environment_vars = ["GOPATH=$HOME/go"]
scripts = [
"scripts/dependencies.sh",
////
]
execute_command = "echo 'vagrant' | sudo -S -E sh -c '{{ .Vars }} {{ .Path }}'"
}
}
#!/bin/sh
set -eu
apk update && \
apk add \
////
go \
unzip
go install github.com/OJ/gobuster/v3@latest
好吧,我想不出通过 Packer 的 shell 导出变量,但我确实有一个解决方案。
https://www.packer.io/docs/provisioners/file
provisioner "file" {
source = "upload/go.sh"
destination = "/tmp/go.sh"
}
provisioner "shell" {
inline = [
"sudo mv /tmp/go.sh /etc/profile.d/"]
}
附带说明,这最初不起作用(并且 Packer 没有抛出任何信息/错误)这是因为.vagrant.d/boxes
中的“文件夹” packer_alpine
我删除了它,它修复了上传和其他一些问题有。
所以我找到了另一个解决办法,哈哈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.