我打算制作一本可自动更新某些图书馆的剧本
我收到的错误消息:
“ msg”:“任务包括带有未定义变量的选项。 错误为:“ lib_wheel_path”未定义\ n \ n该错误似乎 位于“ /home/user/Desktop/setup/roles/lib/tasks/main.yml”中:第4行 第3列,但可能\ n不在文件中的其他位置,具体取决于确切的位置 语法问题。\ n \ n出现问题的行是:\ n \ n \ n-名称: 在这里下载lib \ n ^ \ n“
我的 ansible / vars 文件包含libs的路径:
local_path: "~/Some_Libraries/"
lib_wheel_path: "{{ local_path }}lib/"
ansible / role / lib / vars / main.yml 文件包含:
lib_path: "{{ lib_wheel_path }}"
lib_wheels: "'{{ lib_path }}' | regex_findall('(lib\\S*\\.whl)') | sort(reverse=True) }}"
ansible / role / lib / tasks / main.yml 文件包含:
- name: Download lib
copy:
src: "{{ lib_path }}/{{ lib_wheels[0] }}"
dest: /tmp
remote_src: true
- name: Install lib
pip:
name: file:///tmp/{{ lib_wheels[0] }}
become: yes
预计它将包含 ansible / vars ,其中包含 lib_wheel_path ,如果您对Ansible的工作原理没错的话
答案 0 :(得分:0)
您必须包含var文件。
例如:如果您的var文件为ansible/role/lib/vars/lib.yml
local_path: "~/Some_Libraries/"
lib_wheel_path: "{{ local_path }}lib/"
在您的剧本中包括以下内容。
- name: vars
include_vars: lib.yml
- name: Download lib
copy:
src: "{{ lib_path }}/{{ lib_wheels[0] }}"
dest: /tmp
remote_src: true
- name: Install lib
pip:
name: file:///tmp/{{ lib_wheels[0] }}
become: yes