Ansible set_fact wget版本

时间:2019-09-10 14:00:18

标签: ansible ansible-inventory

我试图在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

希望获得该版本,以便我可以将其通过我的剧本的其余部分

2 个答案:

答案 0 :(得分:0)

通过将wget作为外壳运行并将其设置为下面的输出查找代码来解决它

    - 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

答案 1 :(得分:0)

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

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

- debug:
    var: version