Как перебрать конфиг Kannel в Jinja2 - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть файл конфигурации для Kannel (WAP и SMS-шлюз с открытым исходным кодом), в котором есть несколько записей, которые могут со временем меняться.Файл выглядит следующим образом:

group = smsc
smsc = smpp
smsc-id = my_smsc
allowed-smsc-id = my_smsc
host = 127.1.2.3
port = 1234
receive-port = 0
smsc-username = User1
smsc-password = FakePassword
transceiver-mode = yes
system-type = "SMPP"
throughput = 50
max-pending-submits = 10
source-addr-ton = 0
source-addr-npi = 0
enquire-link-interval = 30

Этот блок конфигурации можно добавить несколько раз в один и тот же файл, чтобы открыть несколько связей для увеличения пропускной способности.

Мне нужно перебрать sls версия файла с использованием Jinja2 для создания файла conf на контейнере с использованием соли.

Но этот пост просто для того, чтобы собрать идеи о том, как перебрать такой файл?Любая помощь будет принята с благодарностью!

Спасибо!

1 Ответ

0 голосов
/ 04 октября 2018

Я в конечном итоге решил эту проблему, поместив эти значения в файл столбца (.sls), а затем создал шаблон со значениями-заполнителями, связанными с исходным файлом.Вот как выглядел шаблон:

group="{{ kanneltrx.group }}"
smsc="{{ kanneltrx.smsc }}"
smsc-id="{{ kanneltrx.smsc_id }}"
allowed-smsc-id="{{ kanneltrx.allowed_smsc_id }}"
host="{{ kanneltrx.host }}"
port="{{ kanneltrx.port }}"
receive-port="{{ kanneltrx.receive_port }}"
smsc-username="{{ kanneltrx.smsc_username }}"
smsc-password="{{ kanneltrx.smsc_password }}"
transceiver-mode="{{ kanneltrx.transceiver_mode }}"
system-type="{{ kanneltrx.system_type }}"
throughput="{{ kanneltrx.throughput }}"
max-pending-submits="{{ kanneltrx.max_pending_submits }}"
source-addr-ton="{{ kanneltrx.source_addr_ton }}"
source-addr-npi="{{ kanneltrx.source_addr_npi }}"
enquire-link-interval="{{ kanneltx.enquire_link_interval }}"

Значения в скобках были тогда полями в файле колонны.

Единственное, чего не хватало, это как сказать Джиндже, сколько разЗациклите конфиг на количество необходимых привязок.Для этого я добавил еще одно поле с именем number_of_binds в столб и написал оператор for для многократного цикла.

{% if pillar.kanneltx is defined %}
{% set kanneltx = salt['pillar.get']('kanneltx') %}
{% for i in range ( kanneltx.number_of_binds ) %}
...