【问题标题】:How to symlink in saltstack latest version or file如何在 saltstack 最新版本或文件中进行符号链接
【发布时间】: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


    【解决方案1】:

    要在 Saltstack 中实现这一点,我们大约需要两个步骤:

    1. 获取最新文件
    2. 链接文件

    对于第一部分,我们可以使用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 变量。

    【讨论】:

      【解决方案2】:
      {% 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 }}
      

      为我工作...谢谢帮助

      【讨论】:

      • 完美,我意识到对于较新版本的 Saltstack,我们需要使用 cmd.shell,我应该更新我的答案吗?
      • 我认为没关系。谢谢你的帮助。
      • 这是另一个答案的精确副本,但没有解释
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 2019-04-25
      • 2015-09-04
      • 2012-11-01
      • 2019-07-12
      • 2014-05-05
      相关资源
      最近更新 更多