Я пытаюсь установить и настроить Atom Editor IDE с помощью Ansible.Я знаю, как извлечь и проанализировать JSON-файл с помощью Ansible, но Я не вижу, как вставить / обновить некоторые поля этого JSON-файла, если рассматривать их как словарь , что также связано с тем, что файлможет отсутствовать в начале книги Ansible.
Я знаю, что настройки хранятся в ~/.atom/config.cson
.
Моя первоначальная конфигурация выглядела так:
$ cat ~/.atom/config.cson
"*":
core:
telemetryConsent: "limited"
editor:
invisibles: {}
"exception-reporting":
userId: "<SOME_UUID>"
Но затем я хотел убедиться, что вкладки обрабатываются как 2 пустых пространства, поэтому я зашел в окно «Настройки», изменил некоторые параметры, после чего файл конфигурации выглядел следующим образом:
$ cat ~/.atom/config.cson
"*":
core:
telemetryConsent: "limited"
editor:
invisibles: {}
showInvisibles: true
softTabs: false
tabType: "soft"
"exception-reporting":
userId: "<SOME_UUID>"
В Ansible я знаю, что могузагрузите объект JSON и проанализируйте его с помощью:
- name: Configure Atom IDE
shell: cat /home/"{{ cli_input_username }}"/.atom/config.cson
register: result
become_user: "{{ cli_input_username }}"
- set_fact:
atom_config_dict: "{{ result.stdout | from_json }}"
А затем проверьте некоторые поля этого «словаря JSON» с помощью "{{ jsonVar['atom_config_dict."*".editor'] }}"
.Я думаю, что это сработает, но, возможно, мне нужно использовать некоторые специальные приемы из-за того, что звездочка используется в качестве ключа словаря "*"
.
Но тогда как мне UPSERT (ВСТАВИТЬ / ОБНОВИТЬ ключ / значения JSON) некоторые поля и сохранить в файл весь словарь JSON (после изменений) в ~/.atom/config.cson
?
Нужно ли обрабатывать специальные ключи JSON как "*"
вконкретный способ?Или это просто строка, рассматриваемая как ключ словаря?
Как мне убедиться, что Ansible playbook может обрабатывать тот факт, что файл конфигурации JSON может отсутствовать в начале?(например, когда я устанавливаю IDE редактора Atom в первый раз, т.е. при первом запуске книги воспроизведения Ansible).
EDIT :
Я только что понял этоФайл конфигурации не может быть полностью действительным JSON.На самом деле это расширение файла "cson", с которым я не знаком.Так что, вероятно, эти трюки, касающиеся from_json
, не сработают.
Есть ли способ иметь дело с этим файлом конфигурации структурированным образом, чтобы сделать его доступным для поиска и анализировать его, а затем вставить / обновить некоторые ключи этого словаря?Возможно, это можно рассматривать как файл YAML, используя from_yaml
?