o nnhX@sTddlmZdZdZdZddlmZmZddlm Z ddl m Z Gdd d e Z d S) ) annotationsam name: vars author: Ansible Core Team version_added: "2.5" short_description: Lookup templated value of variables description: - 'Retrieves the value of an Ansible variable. Note: Only returns top level variable names.' options: _terms: description: The variable names to look up. required: True default: description: - What to return if a variable is undefined. - If no default is set, it will result in an error if any of the variables is undefined. seealso: - plugin_type: lookup plugin: ansible.builtin.varnames aZ - name: Show value of 'variablename' ansible.builtin.debug: msg="{{ lookup('ansible.builtin.vars', 'variabl' + myvar) }}" vars: variablename: hello myvar: ename - name: Show default empty since i dont have 'variablnotename' ansible.builtin.debug: msg="{{ lookup('ansible.builtin.vars', 'variabl' + myvar, default='') }}" vars: variablename: hello myvar: notename - name: Produce an error since i dont have 'variablnotename' ansible.builtin.debug: msg="{{ q('vars', 'variabl' + myvar) }}" ignore_errors: True vars: variablename: hello myvar: notename - name: find several related variables ansible.builtin.debug: msg="{{ query('ansible.builtin.vars', 'ansible_play_hosts', 'ansible_play_batch', 'ansible_play_hosts_all') }}" - name: show values from variables found via varnames (note "*" is used to dereference the list to a 'list of arguments') debug: msg="{{ q('vars', *q('varnames', 'ansible_play_.+')) }}" - name: Access nested variables ansible.builtin.debug: msg="{{ lookup('ansible.builtin.vars', 'variabl' + myvar).sub_var }}" ignore_errors: True vars: variablename: sub_var: 12 myvar: ename - name: alternate way to find some 'prefixed vars' in loop ansible.builtin.debug: msg="{{ lookup('ansible.builtin.vars', 'ansible_play_' + item) }}" loop: - hosts - batch - hosts_all z] _value: description: - value of the variables requested. type: list elements: raw ) AnsibleErrorAnsibleUndefinedVariable) string_types) LookupBasec@seZdZdddZdS) LookupModuleNc Ks|dur||j_t|jdi}|j||d|d}g}|D]\}t|ts0td|t|fz7z||}Wn#t yZz |d|d|}Wn t yWt d|wYnw| |jj |dd Wqt y{|durx| |nYqw|S) N_available_variables) var_optionsdirectdefaultz:Invalid setting identifier, "%s" is not a string, its a %shostvarsinventory_hostnamez$No variable found with this name: %sT)fail_on_undefined) _templaravailable_variablesgetattr set_options get_option isinstancerrtypeKeyErrorrappendtemplate) selfterms variableskwargsmyvarsr rettermvaluer!F/usr/local/lib/python3.10/dist-packages/ansible/plugins/lookup/vars.pyrunSs8        zLookupModule.run)N)__name__ __module__ __qualname__r#r!r!r!r"rQsrN) __future__r DOCUMENTATIONEXAMPLESRETURNansible.errorsrransible.module_utils.sixransible.plugins.lookuprrr!r!r!r"s *