Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ansible timezone module fails (different reasons on different OSes)

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?

like image 754
techraf Avatar asked Dec 23 '16 01:12

techraf


2 Answers

timedatectl needs sudo privileges.

- name: set timezone to Asia/Tokyo
  timezone:
    name: Asia/Tokyo
  become: yes
  become_method: sudo
like image 112
helloV Avatar answered Sep 29 '22 20:09

helloV


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
like image 28
panticz Avatar answered Sep 29 '22 20:09

panticz