私は私が始めようとしている非常に単純なユースケースがあります:
マスターからいくつかのtar.gzソースパッケージをダウンロードしてインストールし、スクリプトを実行してすべてをコンパイルしてインストールする必要があります。
これはおそらく基本的な質問だと思いますが、どんなポインタでも大歓迎です。
/usr/local/src/source1.tar.gz:
file.managed:
- source: salt://sources/source1.tar.gz
- user: root
- group: root
- mode: 644
/usr/local/src/source2.tar.gz:
file.managed:
- source: salt://sources/source2.tar.gz
- user: root
- group: root
- mode: 644
/usr/local/src/source3.tar.gz:
file.managed:
- source: salt://sources/source3.tar.gz
- user: root
- group: root
- mode: 644
//I need something like this, but am not sure how to do it
compile_and_install:
- require: /usr/local/src/source1.tar.gz
- require: /usr/local/src/source2.tar.gz
- require: /usr/local/src/source3.tar.gz
cmd.script:
- source: salt://scripts/compile_and_install.sh
- user: root
- group: root
- Shell: /bin/bash
それが将来誰かを助ける場合に備えて、それを理解しました:
/usr/local/src/source1.tar.gz:
file.managed:
- source: salt://sources/source1.tar.gz
- user: root
- group: root
- mode: 644
/usr/local/src/source2.tar.gz:
file.managed:
- source: salt://sources/source2.tar.gz
- user: root
- group: root
- mode: 644
/usr/local/src/source3.tar.gz:
file.managed:
- source: salt://sources/source3.tar.gz
- user: root
- group: root
- mode: 644
compile_and_install:
cmd.script:
- require:
- file: /usr/local/src/source1.tar.gz
- file: /usr/local/src/source2.tar.gz
- file: /usr/local/src/source3.tar.gz
- source: salt://scripts/compile_and_install.sh
- user: root
- group: root
- Shell: /bin/bash
最近のバージョンのsaltでは、デフォルトで状態自動順序付けが有効になっているため、この問題の多くが解消されています。 http://docs.saltstack.com/ref/states/ordering.html#state-auto-ordering
そうは言っても、あなたの解決策は要件を明示的に述べるより良いものです。