AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,400 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of 8 Ansible books published by Apress and Leanpub including "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example", and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

ansible_date_time: Use Date, Time & Timestamps in Ansible Playbooks

By Luca Berton · Published 2024-01-01 · Category: troubleshooting

Learn how to use date, time, and timestamp in Ansible playbooks without facts. Follow our Playbook and simple Ansible code examples for quick solutions.

ansible_date_time: Use Date, Time & Timestamps in Ansible Playbooks

How to use Date, Time, and Timestamp without Facts in Ansible Playbook.

A quick and dirty workaround using the date command-line utility. I'm going to show you a live Playbook and some simple Ansible code. I'm Luca Berton and welcome to today's episode of Ansible Pilot.

See also: ansible_date_time: Format Dates, Time & Timestamps in Playbooks

Using Date, Time, and Timestamp without Facts in Ansible Playbook

Date and time • date +%Y-%m-%d@%H:%M:%S

ISO8601 • date --iso-8601=secondsdate +%Y-%m-%dT%H:%M:%S%z

How to Use the Date, Time, and Timestamp in Ansible Playbook. The ansible_data_time fact is an amazing resource but sometimes you can't have it or you don't want to use the date and time of the remote host. These solutions enable you to print the Date and Time and ISO8601 format. I ended up after carefully reading the date man page. Unfortunately not all the platforms support the --iso-8601 parameter so you need to build it manually the format by yourself (for example in macOS operating system).

Links

ansible.builtin.pipe lookup plugindate man pageISO8601

## Playbook

Let's jump into a quick live Playbook of Using Date, Time, and Timestamp in the Ansible Playbook. I'm going to share with you how to display the full ansible_date_time and the ISO8601 format.

code

---
- name: date and time Playbook
  hosts: all
  gather_facts: false
  tasks:
    - name: date and time
      ansible.builtin.debug:
        msg: "{{ lookup('pipe', 'date +%Y-%m-%d@$H:%M:%S') }}"

- name: iso8601 manual ansible.builtin.debug: msg: "{{ lookup('pipe', 'date +%Y-%m-%dT%H:%M:%S%z') }}"

- name: iso8601 ansible.builtin.debug: msg: "{{ lookup('pipe', 'date --iso8601=seconds') }}" ignore_errors: true

execution

$ ansible-playbook -i virtualmachines/demo/inventory variables/datetime_nofact.yml

PLAY [date and time Playbook] *************************************************************************

TASK [date and time] ****************************************************************************** ok: [demo.example.com] => { "msg": "2022-05-22@:57:33" }

TASK [iso8601 manual] ***************************************************************************** ok: [demo.example.com] => { "msg": "2022-05-22T14:57:33+0200" }

TASK [iso8601] ************************************************************************************ date: illegal option -- - usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format] fatal: [demo.example.com]: FAILED! => {"msg": "An unhandled exception occurred while running the lookup plugin 'pipe'. Error was a <class 'ansible.errors.AnsibleError'>, original message: lookup_plugin.pipe(date --iso8601=seconds) returned 1. lookup_plugin.pipe(date --iso8601=seconds) returned 1"} ...ignoring

PLAY RECAP **************************************************************************************** demo.example.com : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1

code with ❤️ in GitHub

See also: Ansible Scheduled Tasks: Cron Jobs & at Module for Timed Execution

Conclusion

Now you know how to use the Date, Time and Timestamp without Ansible Facts in Ansible Playbook.

Related Articles

Ansible inventory file structureAnsible Ignore Errors Guide

Category: troubleshooting

Watch the video: ansible_date_time: Use Date, Time & Timestamps in Ansible Playbooks — Video Tutorial

Browse all Ansible tutorials · AnsiblePilot Home