如何从Python构造puppet资源

时间:2016-09-01 20:26:05

标签: python puppet

我想从Python中构建一个puppet资源。如果我有一个键和值的散列,或者带有值的变量,那怎么可能这样做?

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

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

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

1 个答案:

答案 0 :(得分:1)

从您的评论看来,您似乎只想将您的python对象输出为puppet清单格式。由于没有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
}

您可以想象编写一个处理所有不同类型的puppet资源的整个包,并在您的代码中使用它。希望这是你正在寻找的。