牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

ansible-playbook を再実行時にタイムゾーンの設定が changed にならないようにするメモ

(ansible 1.9.1、対象の host OS は Ubuntu 14.04)

追記

2016-12-02

以下は過去のメモということでそのまま残します

目的

タイムゾーン設定のやり方が悪くて再実行するたびに 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 になってるのでオケ。

参考