Назад | Перейти на главную страницу

Как выполнить cmd.script после загрузки необходимых файлов?

У меня очень простой вариант использования, который я пытаюсь реализовать:

Мне нужно загрузить и установить несколько пакетов с исходным кодом 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

Тем не менее, ваше решение лучше, если явно указать требование.