Last active
October 14, 2020 19:44
-
-
Save garethrees/5591027 to your computer and use it in GitHub Desktop.
Ansible set timezone on Ubuntu host
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- name: Group by Distribution | |
hosts: all | |
tasks: | |
- group_by: key=${ansible_distribution} | |
- name: Set Time Zone | |
hosts: Ubuntu | |
gather_facts: False | |
tasks: | |
- name: Set timezone variables | |
copy: content='America/Los_Angeles' | |
dest=/etc/timezone | |
owner=root | |
group=root | |
mode=0644 | |
backup=yes | |
notify: | |
- update timezone | |
handlers: | |
- name: update timezone | |
command: dpkg-reconfigure --frontend noninteractive tzdata |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
vagrant@us:~$ ll /etc/ | grep timezone | |
-rw-r--r-- 1 root root 20 May 16 06:27 timezone | |
-rw-r--r-- 1 root root 20 May 16 06:22 timezone.2013-05-16@06:24~ | |
-rw-r--r-- 1 root root 20 May 16 06:24 timezone.2013-05-16@06:27~ | |
vagrant@us:~$ cat /etc/timezone | |
America/Los_Angeles | |
vagrant@us:~$ cat /etc/timezone.2013-05-16@06:24~ | |
America/Los_Angeles | |
vagrant@us:~$ cat /etc/timezone.2013-05-16@06:27~ | |
America/Los_Angeles | |
vagrant@us:~$ |
thanks! but I have slightly modified your code to avoid of getting 'changed' status every run.
i've used static file with timezone copy: src=timezone
instead of copy: content='America/Los_Angeles'
Just use \n,
- name: Set timezone variables
copy: content='Europe/Moscow\n'
dest=/etc/timezone
owner=root
group=root
mode=0644
backup=yes
TASK: [test | Set timezone variables] **************************************
ok: [0.1.2.3]
For checking current timezone and making this idempotent, just use the ansible_date_time.tz
built-in fact:
- name: Set timezone to UTC
when: ansible_date_time.tz != 'UTC'
command: timedatectl set-timezone UTC
Doesn't work on Ubuntu 16.04 LTS (Xenial Xerus) :( - any workaround?
EDIT: This works: https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1554806
This working on Ubuntu 14.04 (managed node), thank you!
@xanview this ansible galaxy role worked for me today on Xenial https://galaxy.ansible.com/adriagalin/timezone/
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thanks a lot :)