Ответ 1
Существуют государственные модули для абстрагирования первых двух строк, если хотите.
-
file.managed
: http://docs.saltstack.com/ref/states/all/salt.states.file.html -
archive.extracted
: http://docs.saltstack.com/ref/states/all/salt.states.archive.html
Но вы также можете просто запустить команды на целевом миньоне.
install-foo:
cmd.run:
- name: |
cd /tmp
wget -c http://example.com/foo-3.4.3.tar.gz
tar xzf foo-3.4.3.tar.gz
cd foo-3.4.3
./configure --prefix=/usr/local
make
make install
- cwd: /tmp
- shell: /bin/bash
- timeout: 300
- unless: test -x /usr/local/bin/foo
Просто включите аргумент unless
, чтобы сделать idempotent script.
В качестве альтернативы, распространите bash script на миньон и выполните. Видеть: Как выполнить несколько команд с помощью Salt Stack?
Что касается best practice
? Я бы рекомендовал использовать fpm
для создания пакета .deb или .rpm и установить его. По крайней мере, скопируйте этот архив в мастер соли и не будете полагаться на внешние ресурсы, чтобы быть там через три года.