我有一个非常简单的用例,我试图去做:
我需要从主站下载并安装几个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
最近版本的盐在默认情况下已经把状态自动sorting的很多痛苦带走了。 http://docs.saltstack.com/ref/states/ordering.html#state-auto-ordering
这就是说,你的解决scheme是明确说明要求的更好的方法。