2

我正在学习 puppet,并正在尝试编写模块来安装tigervnc 和openvpn 等服务。

问题是tigervnc需要用户设置初始密码。我尝试过使用:“exec {'/usr/bin/echo password | /usr/bin/vncpasswd > ~/.vnc/passwd” 如果我以用户身份登录,则在命令行上运行它可以工作但通过 puppet 运行时不起作用。

openvnc 的问题在于它需要大量的用户交互来进行证书生成/证书颁发机构和密钥生成的默认设置。我尝试过使用带有“pkitool”方法的执行程序,这些方法工作到一定程度,但不是很好或稳定。如果有更好的方法,我也对使用许多高管持谨慎态度。

所以总结一下我的主要问题是如何在尝试使用 puppet 自动化安装时处理这些用户交互,还有比运行大量执行人员更好的方法吗?

谢谢

4

1 回答 1

0

如果设置一个软件需要用户交互,我真的没有办法解决exec。将其使用降至最低确实是一个明智的设计目标。

一种经济方法是

  1. 创建一个脚本来执行 Puppet 资源无法执行的所有必要提升
  2. 让 Puppet 将该脚本部署到代理
  3. 在适当的时候通过exec(连同 good createsoronlyif查询)运行它

运行依赖交互式输入的安装向导的脚本可能应该依赖expect和朋友。

于 2016-01-10T22:46:50.723 回答