如何从 Python 构建人偶资源

How to construct a puppet resource from Python

我想从 Python 中构建一个人偶资源。如果我有键和值的散列,或者有值的变量,这怎么办?

这是人偶资源的一个简单示例。

file { '/etc/passwd':
  owner => root,
  group => root,
  mode  => 644
}

如果我有字符串 /etc/passwd、值为 root 的变量、另一个值为 root 的变量和一个值为 mode 的变量644,我如何从 Python 中生成上述资源?

从您的评论来看,您似乎只是希望能够将 python 对象输出为人偶清单格式。由于没有执行此操作的 python 包,我建议编写您自己的 类 来处理您需要的资源类型,然后覆盖 str 函数,以便它输出你需要的清单。

class fileresource:

    def __init__(self, mfile, owner, group, mode):
        self.mfile = mfile
        self.owner = owner
        self.group = group
        self.mode = mode

    def __str__(self):
        mystring = "file {'" + self.mfile + "':\n"
        mystring += "  owner => " + self.owner + "\n"
        mystring += "  group => " + self.group + "\n"
        mystring += "  mode => " + self.mode + "\n"
        mystring += "}\n"
        return mystring

if __name__ == "__main__":
    myfile = fileresource("/etc/passwd", "root", "root", "0644")
    print myfile

这将是输出:

$ python fileresource.py 
file {'/etc/passwd':
  owner => root
  group => root
  mode => 0644
}

您可以想象编写一个完整的包来处理所有不同类型的人偶资源,并在您的代码中使用它。希望这就是您要找的。