【问题标题】:Ansible set_fact wget versionAnsible set_fact wget 版本
【发布时间】:2019-09-10 14:00:18
【问题描述】:

我正在尝试在我的 ansible-playbook 开始时运行 set_fact 任务来设置一个版本并在我的 playbook 中使用它。

我已经尝试过了,但语法不正确,我认为

- name: "SO Nightly code build"
  remote_user: root
  hosts: cleanroom
  tasks:
    - name: Set version
      set_fact:
        version: {{wget -O - -o /dev/null https://repo1.maven.org/maven2/org/brutusin/wava/maven-metadata.xml | grep -Po '(?<=<version>)([0-9\.]+(-SNAPSHOT)?)' | sort --version-sort -r| head -n 1}}
      debug var=version

希望得到这个版本,这样我就可以通过我的剧本的其余部分来传递它

【问题讨论】:

    标签: ansible ansible-inventory


    【解决方案1】:

    通过将 wget 作为 shell 运行并将其设置为下面的输出查找代码来解决此问题

        - name: Set code version
          shell:  wget -O - -o /dev/null wget -O - -o /dev/null https://repo1.maven.org/maven2/org/brutusin/wava/maven-metadata.xml | grep -Po '(?<=<version>)([0-9\.]+(-SNAPSHOT)?)' | sort --version-sort -r| head -n 1
          register: shell_output
    
        - name: set version
          set_fact:
            code_version: "{{ shell_output.stdout }}"
            debug: var=code_version
    

    【讨论】:

      【解决方案2】:

      正确的语法是(无论版本是什么)。

      - name: Set version
        set_fact:
          version: "{{ wget -O - -o /dev/null https:// ... }}"
      
      - debug:
          var: version
      

      【讨论】:

      • ``` set_fact: version: " {{ wget -O - -o /dev/null repo1.maven.org/maven2/org/brutusin/wava/maven-metadata.xml | grep -Po '(?)([0-9\ .]+(-SNAPSHOT)?)' | sort --version-sort -r| head -n 1 }} " ^ 这里我们可能是错的,但这看起来可能是缺少引号的问题。 ```我从上面得到的输出
      猜你喜欢
      • 1970-01-01
      • 2015-08-20
      • 2022-10-21
      • 2017-08-13
      • 2022-11-14
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      相关资源
      最近更新 更多