Loading...

Watch: Read a file into a variable on host - Ansible lookup plugin file

How to automate the reading of example.txt file on Ansible host, assign to a variable and use in your Ansible Playbook code.

How to read a file into a variable on the host with Ansible?

I'm going to show you a live Playbook with some simple Ansible code.

I'm Luca Berton and welcome to today's episode of Ansible Pilot.

Ansible read a file into a variable

  • ansible.builtin.file
  • read file contents

Let's deep dive into the Ansible lookup plugin file.

Plugins are a way to expand the Ansible functionality. With lookup plugins specifically, you can load variables or templates with information from external sources.

The full name is ansible.builtin.file, it's part of ansible-core and is included in all Ansible installations.

The purpose of the file lookup plugin is to read file contents.

Parameters and Return Values

Parameters

  • \_terms string - path(s) of files to read

Return Values

  • \_raw list - content of file(s)

The parameters of the lookup plugin file.

The only required parameter is the default "\_terms", with the path(s) of files to read.

The normal usage is to assign the lookup plugin to a variable name that you could use in your playbook.

## Playbook

Read a file into a variable on the host with Ansible Playbook.

code

``yaml

---

  • name: read file on host

hosts: all

vars:

contents: "{{ lookup('file','example.txt') }}"

tasks:

- name: print file

ansible.builtin.debug:

msg: "the content of file is {{ contents }}"

`

execution

`bash

ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory variables/read-file.yml

PLAY [read file on host] **

TASK [Gathering Facts]

ok: [demo.example.com]

TASK [print file] *

ok: [demo.example.com] => {

"msg": "the content of file is example contents"

}

PLAY RECAP **

demo.example.com : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

ansible-pilot $

`

idempotency

``bash

ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory variables/read-file.yml

PLAY [read file on host] **

TASK [Gathering Facts]

ok: [demo.example.com]

TASK [print file] **

Read the full tutorial: Read a file into a variable on host - Ansible lookup plugin file