Open e-g1gor opened 1 year ago
I'm trying to write task to change docker config, and restart docker service only if it was changed - and json_patch task for some reason always return changed: True
changed: True
Return:
{ "changed": false, "dest": "/etc/docker/daemon.json", "diff": { "after": "{\n \"log-driver\": \"json-file\",\n \"log-opts\": {\n \"max-size\": \"10m\",\n \"max-file\": \"10\"\n }\n}", "after_header": "/etc/docker/daemon.json (content)", "before": "{\n \"log-driver\": \"json-file\",\n \"log-opts\": {\n \"max-size\": \"10m\",\n \"max-file\": \"10\"\n }\n}", "before_header": "/etc/docker/daemon.json (content)" }, "failed": false, "gid": 0, "group": "root", "mode": "0644", "owner": "root", "secontext": "system_u:object_r:container_config_t:s0", "size": 110, "state": "file", "uid": 0 }
Task example:
- name: Configure docker become: true block: - name: Setup docker logrotation by default json_patch: src: "/etc/docker/daemon.json" operations: - op: add path: "/log-driver" value: "json-file" - op: add path: "/log-opts" value: {} - op: add path: "/log-opts/max-size" value: "10m" - op: add path: "/log-opts/max-file" value: "10" pretty: true create: true register: json_patch_output changed_when: json_patch_output.diff.before != json_patch_output.diff.after - name: Set is_docker_config_changed ansible.builtin.set_fact: is_docker_config_changed: "{{ json_patch_output.diff.before != json_patch_output.diff.after }}" - name: Restart docker when: is_docker_config_changed ansible.builtin.systemd: name: docker state: restarted
I'm trying to write task to change docker config, and restart docker service only if it was changed - and json_patch task for some reason always return
changed: True
Return:
Task example: