Automation 如何为需要用户设置密码或默认设置的包(如TIGERNC或openvpn)编写Puppet模块?

Automation 如何为需要用户设置密码或默认设置的包(如TIGERNC或openvpn)编写Puppet模块?,automation,puppet,puppet-enterprise,Automation,Puppet,Puppet Enterprise,我正在学习puppet,并试图编写模块来安装tigervnc和openvpn等服务 问题在于tigervnc需要用户进行初始密码设置。我试过使用: “exec{'/usr/bin/echo password}/usr/bin/vncpasswd>~/.vnc/passwd” 如果我以用户身份登录,在命令行上运行它,但通过puppet运行时不起作用,则此功能有效 openvnc的问题在于,证书生成/证书颁发机构和密钥生成的默认设置需要大量用户交互。 我曾经尝试过用“pkitool”方法来使用exe

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

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

openvnc的问题在于,证书生成/证书颁发机构和密钥生成的默认设置需要大量用户交互。 我曾经尝试过用“pkitool”方法来使用exec,这些方法在一定程度上是有效的,但不是很好或者很稳定。如果有更好的方法,我也会小心使用许多exec

因此,总结一下,我的主要问题是,在尝试使用puppet自动化安装时,如何处理这些用户交互,还有比运行大量Exec更好的方法吗?在我看来,这是最后的选择


谢谢

如果设置一个软件需要用户交互,我真的看不出有什么办法可以绕过
exec
。将它的使用限制在最低限度确实是一个明智的设计目标

经济方法是

  • 创建一个脚本,执行傀儡资源无法执行的所有必要提升
  • 让Puppet将该脚本部署到代理
  • 通过
    exec
    在适当的时间运行它(与good
    一起创建
    onlyif
    查询)
  • 运行依赖于交互式输入的安装向导的脚本可能应该依赖于
    expect
    和朋友