json_file
Библиотека Ansible: json_file
Модуль библиотеки, позволяющий изменять json файлы.
Требования
Нет
Зависимости
Нет
Примеры использования
- hosts: all
tasks:
- name: Изменить значение 'foo' на 'bar'
json_file:
dest: /etc/file.conf
key: 'foo'
value: 'bar'
Эта библиотека поддерживает вложенность в JSON, используя точку ('.') в качестве разделителя в ключе. Рассмотрим следующий файл:
{ "foo": {
"bar": "buzz"
}
}
Чтобы изменить значение "bar" на "whatever", делаем это так:
- hosts: all
tasks:
- name: Изменить значение 'bar' на 'whatever'
json_file:
dest: /etc/file.conf
key: 'foo.bar'
value: 'whatever'
Точки в названиях ключей должны быть экранированы:
{ "foo.bar": "buzz" }
Можно изменить так:
- hosts: all
tasks:
- name: Изменить значение 'foo.bar' на 'whatever'
json_file:
dest: /etc/file.conf
key: 'foo\.bar'
value: 'whatever'
Установить значение null
немного сложнее, чем ожидается, из-за ошибки в Ansible.
Установите value
в None
, чтобы достичь этого:
- hosts: all
tasks:
- name: Установить 'foo' в null
json_file:
dest: /etc/file.conf
key: 'foo'
value: None
Иногда число нужно сохранить как строку в результирующем JSON файле.
Установка аргумента as_string
в 'yes' обеспечит это:
- hosts: all
tasks:
- name: Установить 'foo' в "25"
json_file:
dest: /etc/file.conf
key: 'foo'
value: 25
as_string: yes
Этот модуль поддерживает все аргументы, поддерживаемые модулем Ansible file (такие как 'owner', 'group', 'mode' и т.д.).
Благодарности
Эта библиотека во многом основывается на модуле ini_file и библиотеке @FauxFaux ghetto_json.
Ограничения
json_file
работает только с файлами, которые являются словарями (т.е. имеют верхний уровень с '{').
Списки не поддерживаются/не тестировались.
Лицензия
MIT
Информация об авторе
Питер Лексис (@lieter_)
ansible-galaxy install pieterlexis/ansible-json_file