Ban*_*jer 0 centos puppet exec
我有一个脚本,实际上只需要在服务器上运行一次,即在部署时,但认为最好让 Puppet 管理它。该脚本重新映射了与本地系统用户冲突的几个旧用户 ID。
我检查的方法是 gopher 用户的默认 uid 是否为 13。如果是,那么我需要运行我的重新映射脚本。
exec { "change_uid":
command => "/script/to/run.sh",
provider => 'shell',
path => [ "/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin" ],
onlyif => "test `/usr/bin/id -u gopher` -eq 13; echo $?",
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上述onlyif检查的几种不同排列,但是 exec 总是在代理上被解雇。
当我直接在命令行中运行该命令,它返回0或1,这可能涉及到的事实,庆典返回0,当真正和1时,假的,但我认为它更可能是我误解的方式onlyif工作.
当 gopher 的 uid=13 时,我怎么能有这个 exec 火?我愿意采用其他方法来实现我在这里尝试完成的工作。
更新
我放弃了回声部分。最终的工作解决方案是:
exec { "change_uid":
command => "/script/to/run.sh",
path => [ "/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin" ],
onlyif => "test `id -u gopher` -eq 13",
}
Run Code Online (Sandbox Code Playgroud)
使用命令ralsh有助于测试,感谢@Daniel C. Sobral。我将@Daniel 标记为已接受的答案,因为这是主要问题,除了我对一些概念的误解之外,而且他先回答了。谢谢大家。
| 归档时间: |
|
| 查看次数: |
13810 次 |
| 最近记录: |