ow to create empty file in ansible playbook

Create empty file in ansible

Ansible Task to Create new file on remote machine, Validate and Copy Content on Remote Machine

In this article I have covered create a new file on remote machine from ansible playbook, Write contend on new file from ansible , Copy file on remote machine using ansible playbook.

We can use file, stat and copy module in Ansbile to create, validate and copy the file respectively in Ansible. These are the ansible “File Module”.

file: Ansible file module used in create a new file, sets attributes of files, symlinks, and directories, or removes files/symlinks/directories.

copy: The Copy ansible module copy the file from local machine to remote server. We can also write content into remote file from variable as well. Refer below example.

stat: Stat module is used to get facts of the remote file. Like if a path exists or not. path is a symlink.

Create a blank file in Ansible Playbook

- name: Create a new file
  file: path=/etc/foo.conf state=touch

Validate file on remote server whether it has been created or not.

- stat: path=/etc/foo.conf
  register: file_path
- debug: msg="File exists"
  when: file_path.stat.exists == true

Write content on remote file.  We can also Copy file on remote machine using ansible playbook you need to pass local file path in src instead of content.

- copy: content="Your content goes here.." dest="/etc/foo.conf"
  when: file_path.stat.exists == true

Combined above task into one playbook.

 # Define file path
 - name: Set remote file path here
   set_fact: remote_file_path=/etc/foo.conf     
 
 # Create a blank file
 - name: Create a new file
   file: path="{{ remote_file_path }}" state=touch

 # Check remote file
 - stat: path="{{ remote_file_path }}"
   register: file_path

 # Write file content in file_content variable
 - set_fact: file_content="Write your file content here"

 # If file exist then copy content in remote file.
 - copy: content="{{ file_content }}" dest="{{ remote_file_path }}"
   when: file_path.stat.exists == true

Check more about Ansible : https://docs.ansible.com/

(Visited 1,957 times, 14 visits today)