(ansible 1.9.1、対象の host OS は Ubuntu 14.04)
追記
2016-12-02
- timezone モジュールあった...
以下は過去のメモということでそのまま残します
目的
タイムゾーン設定のやり方が悪くて再実行するたびに changed になってしまっていたのでなんとかする。
ファイル構成
. ├── hosts ├── roles │ └── ubuntu │ ├── handlers │ │ └── main.yml │ └── tasks │ └── main.yml └── foobar.yml
コード
(roles のみ hosts と foobar.yml や vagrant の設定等は省略)
'Asia/Tokyo\n'
の \n
必要なので気をつける。
roles/ubuntu/tasks/main.yml
- name: Set timezone variables copy: content='Asia/Tokyo\n' dest=/etc/timezone backup=yes notify: update tzdata
notify 変更あった時のみ update する
roles/ubuntu/handlers/main.yml
- name: update tzdata command: /usr/sbin/dpkg-reconfigure --frontend noninteractive tzdata
実行
$ ansible-playbook -i hosts foobar.yml -v
1回目
TASK: [ubuntu | Set timezone variables] *************************************** changed: [192.168.33.44] => {"backup_file": "/etc/timezone.2015-08-08@07:51:48~", "changed": true, "checksum": "3adbe16d2366135afed647d058f34b360d1ef498", "dest": "/etc/timezone", "gid": 0, "group": "root", "md5sum": "5fb64d575eb1b84e443741f1fb4e5e3c", "mode": "0644", "owner": "root", "size": 11, "src": "/home/vagrant/.ansible/tmp/ansible-tmp-1439020308.11-205053725396731/source", "state": "file", "uid": 0} NOTIFIED: [ubuntu | update tzdata] ******************************************** changed: [192.168.33.44] => {"changed": true, "cmd": ["/usr/sbin/dpkg-reconfigure", "--frontend", "noninteractive", "tzdata"], "delta": "9:00:00.258388", "end": "2015-08-08 16:51:48.972633", "rc": 0, "start": "2015-08-08 07:51:48.714245", "stderr": "\nCurrent default time zone: 'Asia/Tokyo'\nLocal time is now: Sat Aug 8 16:51:48 JST 2015.\nUniversal Time is now: Sat Aug 8 07:51:48 UTC 2015.", "stdout": "", "warnings": []}
2回目
TASK: [ubuntu | Set timezone variables] *************************************** ok: [192.168.33.44] => {"changed": false, "checksum": "3adbe16d2366135afed647d058f34b360d1ef498", "dest": "/etc/timezone", "gid": 0, "group": "root", "mode": "0644", "owner": "root", "path": "/etc/timezone", "size": 11, "state": "file", "uid": 0}
ok
になってるのでオケ。