使用ansbile更新application.properties值

时间:2017-04-20 11:39:43

标签: spring spring-boot ansible properties-file

如何在使用ansibile脚本部署时更新spring的application.properties中的值。

我可以使用ansible的lineinfile模块并用regex替换值。但我正在寻找更好的解决方案。

编辑:使用Ansible jinja模板是另一种解决方案。但是每当我在spring的application.properties中有什么东西时,我也应该在模板中添加它。但是我希望它在一个地方。

1 个答案:

答案 0 :(得分:0)

您应该将templateJinja Templating模块一起使用。您需要创建模板.j2文件,如下所示:

class parent-child():
     stack = []
     def tree_recur(self,employee, level):
    s = s[s.index("(")+1:s.rindex(")")]
    ind = 0
    while(s.rstrip != null or s != ""):
            ss = s.index(",")
        words = s[ind:ss]
        parenind = words.index("(") 
        if parenind == -1:
            stack.append(level,words)
            s = s[ss+1:len(s)]
        else:
            stack.append(s[ss+1:parenind-1])
            closeparenind = s.index(")")
            ss1= s[parenind:closeparenind]
            return tree_recur(self,ss1,level+1)

    def main():
        s = "(id,created,employee(id,firstname,employeeType(id), lastname),location)"
        level = 0
        print(E = parent-child(s, level))

    main()

logging.level.root={{logging_level_root}} endpoints.enabled={{endpoints_enabled}} 中的值是从通常存储在每个环境的清单文件中的变量中解析的。 {{}}在不同情况下很有用 - 通常替换文件中的行。