【发布时间】:2021-05-27 05:04:05
【问题描述】:
ln -fs /opt/app/$(ls -rt file-*.jar | tail -n1) /opt/app/file.jar
在 bash 中工作得很好
目录包含
file-1.jar
file-2.jar
file-3.jar
如何在盐堆状态 sls 公式中做到这一点?
【问题讨论】:
标签: salt-stack
ln -fs /opt/app/$(ls -rt file-*.jar | tail -n1) /opt/app/file.jar
在 bash 中工作得很好
目录包含
file-1.jar
file-2.jar
file-3.jar
如何在盐堆状态 sls 公式中做到这一点?
【问题讨论】:
标签: salt-stack
要在 Saltstack 中实现这一点,我们大约需要两个步骤:
对于第一部分,我们可以使用file.find等一些salt模块,但我感觉现有的使用ls -rt的逻辑更简单。
所以我们可以使用这个命令来获取最新的 JAR 文件到一个变量中。然后使用 Salt 状态链接文件。
例子:
{% set latest_jar = salt.cmd.run('ls -rt /opt/app/file-*.jar | tail -n1') %}
link-latest-jar:
file.symlink:
- name: /opt/app/file.jar
- target: {{ latest_jar }}
更新:
对于较新版本的 Saltstack,我们需要使用 salt.cmd.shell 来设置 latest_jar 变量。
【讨论】:
{% set latest_jar = salt['cmd.shell']('ls -rt /opt/app/file-*.jar | tail -n1') %}
link-latest-jar:
file.symlink:
- name: /opt/app/file.jar
- target: {{ latest_jar }}
为我工作...谢谢帮助
【讨论】:
cmd.shell,我应该更新我的答案吗?