По сути, я ищу именно это, но для ansible/jinja2: преобразовать строку пар ключевых значений, разделенную запятыми, в словарь
Я получаю список, разделенный точкой с запятой пар ключ=значение с сервера mariadb galera wsrep_provider_options:
mariadb_wsrep_provider_options_output = 'base_dir = /var/lib/mysql/; base_host = 192.168.1.101; base_port = 4567;'
После сохранения этого вывода в регистре ansible я пытаюсь проанализировать его в словаре, вот так:
mariadb_wsrep_provider_options_output:
base_dir: /var/lib/mysql/
base_host: 192.168.1.101
base_port: 4567
...
Я пробовал что-то подобное, но не знаю, как преобразовать его обратно в dict:
- debug:
msg: "{% for item in mariadb_wsrep_provider_options_output.split(';') %} {{ item.split('=') }} {% endfor %}"
РЕДАКТИРОВАТЬ: он работает с приведенными ниже задачами, но кажется неуклюжим:
- set_fact:
new_var: "{{ new_var|d([]) + [{ 'key': item.split('=')[0]|trim, 'value': item.split('=')[1]|trim }] }}"
loop: "{{ mariadb_wsrep_provider_options_output.split(';') }}"
- debug:
var: new_var | items2dict
выход:
"new_var|items2dict": {
"base_dir": "/var/lib/mysql/",
"base_host": "192.168.100.153",
"base_port": "4567"
}
Подробнее здесь: https://stackoverflow.com/questions/673 ... in-ansible
Как преобразовать строку «ключ = значение;» пары в словарь в ansible? ⇐ Python
Программы на Python
1732375826
Anonymous
По сути, я ищу именно это, но для ansible/jinja2: преобразовать строку пар ключевых значений, разделенную запятыми, в словарь
Я получаю список, разделенный точкой с запятой пар ключ=значение с сервера mariadb galera wsrep_provider_options:
mariadb_wsrep_provider_options_output = 'base_dir = /var/lib/mysql/; base_host = 192.168.1.101; base_port = 4567;'
После сохранения этого вывода в регистре ansible я пытаюсь проанализировать его в словаре, вот так:
mariadb_wsrep_provider_options_output:
base_dir: /var/lib/mysql/
base_host: 192.168.1.101
base_port: 4567
...
Я пробовал что-то подобное, но не знаю, как преобразовать его обратно в dict:
- debug:
msg: "{% for item in mariadb_wsrep_provider_options_output.split(';') %} {{ item.split('=') }} {% endfor %}"
РЕДАКТИРОВАТЬ: он работает с приведенными ниже задачами, но кажется неуклюжим:
- set_fact:
new_var: "{{ new_var|d([]) + [{ 'key': item.split('=')[0]|trim, 'value': item.split('=')[1]|trim }] }}"
loop: "{{ mariadb_wsrep_provider_options_output.split(';') }}"
- debug:
var: new_var | items2dict
выход:
"new_var|items2dict": {
"base_dir": "/var/lib/mysql/",
"base_host": "192.168.100.153",
"base_port": "4567"
}
Подробнее здесь: [url]https://stackoverflow.com/questions/67324308/how-to-convert-a-string-of-key-value-pairs-to-a-dictionary-in-ansible[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия