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

Передача переменной jinja в скрипт из соляного столба

Использование соли для подготовки, и я хочу иметь возможность запускать cmd.script. Скрипт работает, если я перечисляю все пакеты, которые собираюсь установить в скрипте. Но я предпочитаю иметь список пакетов в формуле соли и ссылаться на него из сценария. Ниже работает нормально.

формула соли

Run masterscript:
  cmd.script:
    - name: masterscript
    - source: http://server/r-install.sh

r-install.sh

IFS=","
packages="'devtools','shiny','rmarkdown','plyr','shinydashboard','googleVis','RPostgreSQL','reshape2','xtable','DT','lattice','latticeExtra','ggplot2','formattable','plotly','htmlwidgets','shinyBS','stringr','DBI'"
for i in $packages; do su - -c "R -e \"install.packages($i, repos='http://cran.rstudio.com')\""; done

Я предпочитаю перечислять пакеты в столбце, т.е.

r:
  packages:
     - package1
     - package2

формула соли:

Run masterscript:
  cmd.script:
    - name: masterscript
    - source: http://server/r-install.sh
    - template: jinja

r-install.sh:

{%- for package in salt['pillar.get']('r:packages', []) %}
su - -c "R -e \"install.packages({{package}}, repos='http://cran.rstudio.com')\""
{% endfor -%}