Использование соли для подготовки, и я хочу иметь возможность запускать 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 -%}