I want to add below docker log rotation specs into daemon.json file using ansible-playbook
"log-driver": "json-file",
"log-opts": {
"max-size": "1m",
"max-file": "4"
}
What if daemon.json is already present on the node which I am applying the playbook to. I dont want to mess up existing configuration. How do I add above block at line no. 2 ( that is after '{' or before last line ie '}' )?
ansible.builtin.lineinfile
ansible.builtin.blockinfile
As @malpanez explains, I think it would be more accurate to use the ansible.builtin.blockinfile
module for this. You can look at the example usage from the link below.
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/blockinfile_module.html
You can use the lineinfile
module
- name: Add logrotate to daemon.json
lineinfile:
path: "<location of the docker daemon.json>"
insertafter: '\"log-opts\": {' # not sure about the escaping
line: <your custom line>
I'd use for blocks blockinfile :
- name: Add config to daemon.json
ansible.builtin.blockinfile:
path: "<location of the docker daemon.json>"
insertafter: '\"log-opts\": {' # not sure about the escaping
block: |
"log-driver": "json-file",
"log-opts": {
"max-size": "1m",
"max-file": "4"
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.