frp_version: "{% if frpc_version is defined %}{{ frpc_version.replace('v', '') }}{% elif frps_version is defined %}{{ frps_version.replace('v', '') }}{% endif %}"
frp_release_name: frp_{{frp_version}}_{{frp_os}}_{{frp_arch}}
frp_release_ext: "{{ 'tar.gz' if frp_os == 'linux' else 'zip' }}"
frp_release_url: https://github.com/fatedier/frp/releases/download/v{{frp_version}}/{{frp_release_name}}.{{frp_release_ext}}
In same case, the value of frp_version may be empty string, so the value of frp_release_url will not be right,
the playbook later changed the value of frp_version if it is empty, before execute the following code where frp_release_url
is expected to have the right value
- name: Download frp
unarchive:
remote_src: yes
src: "{{ frp_release_url }}"
dest: "{{ frp_tmp_dir }}"
environment:
https_proxy: '{{ frpc_http_proxy|default("") }}'
when: frpc_outdated or frps_outdated
this is called lazy evaluation
Top comments (0)