Ansible timezone module fails (different reasons on different OSes)

7.2k views Asked by At

I decided to refactor some playbooks and give a try to the new timezone module.

The task I try is a verbatim copy of the example given in the manual page:

- name: set timezone to Asia/Tokyo
  timezone:
    name: Asia/Tokyo

It fails on each system I tried. Results for Vagrant machines:

  • On Debian 8 (debian/jessie64):

    TASK [set timezone to Asia/Tokyo] **********************************************
    fatal: [debian]: FAILED! => {"changed": false, "cmd": "/usr/bin/timedatectl set-timezone Asia/Tokyo", "failed": true, "msg": "Failed to set time zone: The name org.freedesktop.PolicyKit1 was not provided by any .service files", "rc": 1, "stderr": "Failed to set time zone: The name org.freedesktop.PolicyKit1 was not provided by any .service files\n", "stdout": "", "stdout_lines": []}

  • On CentOS 7 (centos/7) - different from Debian:

    TASK [set timezone to Asia/Tokyo] **********************************************
    fatal: [centos]: FAILED! => {"changed": false, "cmd": "/usr/bin/timedatectl set-timezone Asia/Tokyo", "failed": true, "msg": "Failed to set time zone: Interactive authentication required.", "rc": 1, "stderr": "Failed to set time zone: Interactive authentication required.\n", "stdout": "", "stdout_lines": []}

  • On Ubuntu 16.04 (ubuntu/xenial64) - same as CentOS, different from Debian:

    TASK [set timezone to Asia/Tokyo] **********************************************
    fatal: [ubuntu]: FAILED! => {"changed": false, "cmd": "/usr/bin/timedatectl set-timezone Asia/Tokyo", "failed": true, "msg": "Failed to set time zone: Interactive authentication required.", "rc": 1, "stderr": "Failed to set time zone: Interactive authentication required.\n", "stdout": "", "stdout_lines": []}

Am I missing something? Is there some dependency required?

2

There are 2 answers

2
helloV On BEST ANSWER

timedatectl needs sudo privileges.

- name: set timezone to Asia/Tokyo
  timezone:
    name: Asia/Tokyo
  become: yes
  become_method: sudo
0
panticz On

Check if dbus package is installed (tested on Ubuntu):

dpkg -l dbus

and install it with:

apt-get install -y dbus

else you get a error:

# /usr/bin/timedatectl
Failed to create bus connection: No such file or directory