相关疑难解决方法(0)

如何比较 salt sls 文件中的版本字符串

saltstack 是否有相当于 puppets versioncmp() 的函数?或者,是否有一种方法可以在 jinja+yaml 渲染的 sls 文件中获取 distutils.version 或 Packaging.version.parse 方法(如Compare version strings in Python 中提到的)?

salt-stack

5
推荐指数
1
解决办法
2941
查看次数

比较 Ansible playbook 中的软件包版本

可能有更好的方法来做到这一点,但到目前为止,我正在使这项工作正常进行,但遇到了问题。我正在尝试执行以下操作:

  1. 使用package_facts并注册包收集包事实
  2. 我调试注册的变量并获取我想要的包,将版本转换为 int
  3. 然后我会动态设置后面的包的变量,并提取版本并转换为 int
  4. 我尝试使用最新版本的软件包的 set 变量升级软件包,并且仅当 set_fact 变量的 int 版本大于已安装的现有软件包时才应用它

这是剧本:

---
- name: Attempt upgrade package
  hosts: all
  gather_facts: false

  tasks:  
     
        - name: Get Splunk package
      package_facts:
        manager: auto
      register: package_info

    - name: Get SplunkForwarder Package Info
      debug:
        var: package_info.ansible_facts.packages.splunkforwarder[0].version
      register: splunk_current_version

    - name: Include variables for new splunk forwarder
      set_fact:
        splunk_latest_version: "{{ splunkforwarder_latest.split('-')[1] }}"
      vars:
        splunkforwarder_latest: "splunkforwarder-9.1.1-82c987350fde-linux-2.6-x86_64.rpm"
      when: splunk_current_version is defined

    - name: Debug latest
      debug:
        var: splunk_latest_version

    - name: Upgrade when latest …
Run Code Online (Sandbox Code Playgroud)

ansible

1
推荐指数
1
解决办法
1339
查看次数

标签 统计

ansible ×1

salt-stack ×1