У меня очень простой вариант использования, который я пытаюсь реализовать:
Мне нужно загрузить и установить несколько пакетов с исходным кодом 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
Последние версии соли избавились от этой боли благодаря включенному по умолчанию автоматическому порядку состояний. http://docs.saltstack.com/ref/states/ordering.html#state-auto-ordering
Тем не менее, ваше решение лучше, если явно указать требование.