_这个问题最初是由@kojiromike作为hashicorp/terraform#14768 打开的。 由于提供者拆分,它被迁移到这里。 问题的原始正文如下。_
0.9.5
resource "local_file" "foo" {
content = "contents"
filename = "foo.txt"
}
我这里的umask是0022
应该已经使用模式-rw-r--r--
创建了一个文件。
使用模式-rwxr-xr-x
创建了一个文件。
虽然我更喜欢在 tf 配置中提供特定模式的选项,但我认为 Terraform 应该回退到支持open
的标准行为,这将导致文件不可执行。
我认为mode
应该是一个属性。 例如,我为一组实例使用动态生成的私钥,但使用 loca_file 将其放在我的本地路径中,以防我稍后需要 ssh 和故障排除。 但是在我的情况下,生成的.pem
文件应该使用600
模式,以便与ssh -i <*.pem> <host>
命令一起使用。
我同意,在保存需要较少许可模式的文件时遇到此问题。
虽然我们没有合适的解决方案,但我正在使用以下解决方法。
resource "local_file" "foo" {
content = "contents"
filename = "foo.txt"
provisioner "local-exec" {
command = "chmod 644 foo.txt"
}
不是最好的解决方案,但对我有用! 希望能帮助到你。
@rodrigocmn感谢您的解决,这对我的场景非常有用!
虽然我们没有合适的解决方案,但我正在使用以下解决方法。
resource "local_file" "foo" { content = "contents" filename = "foo.txt" provisioner "local-exec" { command = "chmod 644 foo.txt" }
不是最好的解决方案,但对我有用! 希望能帮助到你。
很不错的把戏!
现在支持模式(在 pull request #30 中实现),使用 $# v1.4.0
file_permission
参数。
这对我不起作用。 当我创建我的本地文件时,我设置了这个参数file_permission = "0600"
。 但是,该文件仍然是使用 755 创建的。
最有用的评论
虽然我们没有合适的解决方案,但我正在使用以下解决方法。
不是最好的解决方案,但对我有用! 希望能帮助到你。