1

puppetを使用するとき、私は次のようなことをしていました。

    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)
    }

私は今、saltstackで似たようなものを探しています。

たとえば、特定のネットワークアドレスにバインドされたネットワークサービスを設定するためにこれを使用しました。最初にネットワークを設定し、次にいくつかの一般的なアドレスを計算してから、ネットワークサービスを設定します。

これらのアドレス(異なるサービスが同じアドレスを共有する可能性がある場合)を各状態ファイルで何度も計算するのではなく、一度計算して後で再利用したいと思います。

4

2 に答える 2

1

これはおそらくSaltsYAMLレンダラーを超えています。代わりに、純粋な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()},
             ]
        },
    }
于 2013-03-28T10:45:46.090 に答える
1

私はSalt'sPillarでこれを行います。

ウォークスルーは次のとおりです:http://docs.saltstack.com/topics/tutorials/pillar.html

于 2013-04-09T05:56:42.937 に答える