使用 salt 进行配置,我希望能够运行 cmd.script。如果我在脚本中列出我打算安装的所有包,该脚本就会起作用。但我更喜欢在 salt 公式中列出包列表,并从脚本中引用它。下面可以正常工作。
盐配方
Run masterscript:
cmd.script:
- name: masterscript
- source: http://server/r-install.sh
r-安装.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
答案1
盐公式:
Run masterscript:
cmd.script:
- name: masterscript
- source: http://server/r-install.sh
- template: jinja
r-安装.sh:
{%- for package in salt['pillar.get']('r:packages', []) %}
su - -c "R -e \"install.packages({{package}}, repos='http://cran.rstudio.com')\""
{% endfor -%}