使用木偶时我常常做以下事情:
class common_vars {
$some_var = calculate_some_var()
}
class A {
Class[common_vars] -> Class[A]
do_something_with($common_vars::some_var)
}
class B {
Class[common_vars] -> Class[B]
do_something_else_with($common_vars::some_var)
}
我现在正在寻找盐栈中类似的东西。
我用它来设置绑定到特定网络地址的网络服务。我首先设置网络,然后计算一些常见的地址,然后设置网络服务。
我不想在每个状态文件中反复计算这些地址(不同服务可能共享同一地址),而是计算它们一次,然后再重复使用它们。
答案 0 :(得分:1)
这可能超出了Salts YAML渲染器。相反,你可以用纯python编写你的SLS,让你能够编写函数,类等并返回状态数据。例如:
some_var = lambda: 1 + 2
def do_something():
global(some_var)
return some_var() + 5 # 8
def do_something_else():
global(some_var)
return some_var() + 10 # 13
def run():
return {
'/home/user/somefile.txt': {
'file.append': [
{'text': do_something()},
]
},
'/home/user/some_other.txt': {
'file.append': [
{'text': do_something_else()},
]
},
}
答案 1 :(得分:1)
我会在Salt's Pillar中这样做。
以下是演练:http://docs.saltstack.com/topics/tutorials/pillar.html