Yurko Tymchuk
Uko Codes

Follow

Uko Codes

Follow
Set Local Timezone with Ansible

Set Local Timezone with Ansible

Automatically derived from your IP

Yurko Tymchuk's photo
Yurko Tymchuk
·Mar 12, 2023·

1 min read

You know this annoyance when you install a fresh linux server and it has time in UTC? At least I end up like that with Armbian when I don't access it with interactive shell.

It turns out that there is a very simple way of setting your timezone automatically based in your IP location, especially if you use Ansible for that.

Now, Ansible has two tasks:

Thus everything you need to do, is to have these two tasks sequentially in your playbook

---
- hosts: "all"
  become: true

  tasks:
    - name: Get IP geolocation data
      ipinfoio_facts:

    - name: "Set timezone to {{ ansible_facts.timezone }}"
      timezone:
        name: "{{ ansible_facts.timezone }}"
      when: ansible_facts.timezone is defined

As you can guess from the code, the ipinfoio_facts task is going to populate ansible_facts with various location datai, and out of which we will use timezone to set, well..., the time zone (if it's available).

That's all. I hope I helped someone ☺️

 
Share this