我试图在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
希望获得该版本,以便我可以将其通过我的剧本的其余部分
答案 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