a )g @snddlmZmZmZeZdZdZdZddl Z ddl Z ddl Z ddl m Z ddlmZdd Zed krjedS) )absolute_importdivisionprint_functiona --- module: slurp version_added: historical short_description: Slurps a file from remote nodes description: - This module works like M(ansible.builtin.fetch). It is used for fetching a base64- encoded blob containing the data in a remote file. - This module is also supported for Windows targets. options: src: description: - The file on the remote system to fetch. This I(must) be a file, not a directory. type: path required: true aliases: [ path ] extends_documentation_fragment: - action_common_attributes attributes: check_mode: support: full diff_mode: support: none platform: platforms: posix, windows notes: - This module returns an 'in memory' base64 encoded version of the file, take into account that this will require at least twice the RAM as the original file size. seealso: - module: ansible.builtin.fetch author: - Ansible Core Team - Michael DeHaan (@mpdehaan) a! - name: Find out what the remote machine's mounts are ansible.builtin.slurp: src: /proc/mounts register: mounts - name: Print returned information ansible.builtin.debug: msg: "{{ mounts['content'] | b64decode }}" # From the commandline, find the pid of the remote machine's sshd # $ ansible host -m ansible.builtin.slurp -a 'src=/var/run/sshd.pid' # host | SUCCESS => { # "changed": false, # "content": "MjE3OQo=", # "encoding": "base64", # "source": "/var/run/sshd.pid" # } # $ echo MjE3OQo= | base64 -d # 2179 aW content: description: Encoded file content returned: success type: str sample: "MjE3OQo=" encoding: description: Type of encoding used for file returned: success type: str sample: "base64" source: description: Actual path of file slurped returned: success type: str sample: "/var/run/sshd.pid" N) AnsibleModule) to_nativec Cstttdddgdddd}|jd}z6t|d}|}Wdn1sR0YWnttfy}zh|jtjkrd|}n<|jtj krd |}n&|jtj krd |}nd t |d d }| |WYd}~n d}~00t |}|j||dddS)NpathT)typerequiredaliases)src)Z argument_specZsupports_check_moder rbzfile not found: %szfile is not readable: %sz,source is a directory and must be a file: %szunable to slurp file: %sZsurrogate_then_replace)errorsbase64)Zcontentsourceencoding)rdictparamsopenreadIOErrorOSErrorerrnoENOENTZEACCESZEISDIRrZ fail_jsonrZ b64encodeZ exit_json)modulerZ source_fhZsource_contentemsgdatar9/usr/lib/python3.9/site-packages/ansible/modules/slurp.pymain]s*  *        r__main__)Z __future__rrrrZ __metaclass__Z DOCUMENTATIONZEXAMPLESZRETURNrrosZansible.module_utils.basicrZ+ansible.module_utils.common.text.convertersrr__name__rrrrs#