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_)

О проекте

Library module to manipulate JSON files without the use of templates or files

Установить
ansible-galaxy install pieterlexis/ansible-json_file
Лицензия
mit
Загрузки
769
Владелец