Ansible:声明整个游戏都可以访问的变量,"tasks"



我正试图根据剧中任务返回的值来声明一些变量。这就是我所拥有的。

tasks:
- name: search for file
find:
paths: "{{path}}"
patterns: "*{{pattern}}*"
recurse: "yes"
file_type: "file"
register: result
vars:
file_path: result.files.0.path
file_name: file_path.split("/")[-1]
file_model: file_name.split("_")[0]
file_version: file_name.split("_")[1]
- debug:
msg: "info: {{file_path}} : {{file_name}} : {{file_model}} : {{file_version}}"

基于调试任务抛出的未定义变量错误,我假设在任务下面声明的变量的范围仅限于该特定任务。

如果是这样的话,有没有任何方法可以在";任务";?

试试这个

tasks:
- name: search for file
find:
paths: "{{ path }}"
patterns: "*{{ pattern }}*"
recurse: yes
file_type: file
register: result
- set_fact:
file_path: "{{ result.files.0.path }}"
file_name: "{{ file_path.split('/')[-1] }}"
file_model: "{{ file_name.split('_')[0] }}"
file_version: "{{ file_name.split('_')[1] }}"
- debug:
msg: "info: {{ file_path }} :
{{ file_name }} :
{{ file_model }} :
{{ file_version }}"

最新更新