Size: a a a

2020 January 30

GG

George Gaál in Saltstack
запуск - да
источник

s

sam in Saltstack
юзеры, репликация
источник

GG

George Gaál in Saltstack
это может быть очень больно
источник

s

sam in Saltstack
запуск то что автоматизировать?) ты еще инсталяцией похвастайся))
источник

s

sam in Saltstack
George Gaál
это может быть очень больно
да мне уже больно)))
источник

GG

George Gaál in Saltstack
sam
запуск то что автоматизировать?) ты еще инсталяцией похвастайся))
все так )
источник

R

Roman in Saltstack
Andrey A
если уже ранее обсуждали где-то - ткните где искать.
Собственно вопрос: как правильно заполняете файл, содержащий приватный ключ пользователя, при хранении секретов в vault?
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html#salt.states.file.managed
(раздел contents_pillar). Предлагают использовать пиллары. Ок, начинаю использовать пиллары из vault - https://docs.saltstack.com/en/latest/ref/pillar/all/salt.pillar.vault.html
Но проблема в том, что эти пиллары начинают видеть ВСЕ минионы. Это очень хотелось бы избежать.
Была идея подключать ext_pillar на уровне конфига миниона, но это не работает - https://github.com/saltstack/salt/issues/28793
Было бы классно вообще не городить огород с пилларами из vault, если бы в jinja можно было нормально выводить такие
многострочные переменные.
 - vault: path=secret/minions/{minion}/pass
в таком виде каждый миньон должен получать только свое значение, не?
источник

GG

George Gaál in Saltstack
sam
запуск то что автоматизировать?) ты еще инсталяцией похвастайся))
ну, сольт идеально - раскладывать конфиги и что-то запускать. Перестраивать на ходу структуру стейтфул сервисов типа монги - только если у тебя автоматизация прям написана на уровне Бог. Иначе легко получить дата коррапшен или если случайно что-то не то применил - все пойдет по одному месту.

Ну, и да - первоначальный бутстрап + настройки (репликации, юзеры) - тоже прекрасно вписывается в идеологию )
источник

GG

George Gaál in Saltstack
как отправную точку можно взять готовые формулы
источник

GG

George Gaál in Saltstack
источник

GG

George Gaál in Saltstack
источник

AA

Andrey A in Saltstack
пробовал, не заработало, подставляется что-то странное, в логе:
Failed to load ext_pillar vault: 403 Client Error: Forbidden for url: https://vault.test.ru/v1/private_ssh_keys/%7Bminion%7D/test123

Причем если даже заставить это работать, возникает другая проблема - если в vault для любого другого миниона не прописан  его path, то стейты перестают совсем запускаться с вышеуказанной ошибкой. Т.е. якобы надо в таком случае для всех минионов создать path, а мне это совсем не требуется
источник

R

Roman in Saltstack
а какие проблемы с многострочными переменными?
есть же
key: |
 {{ var|indent(width=8) }}
width
подбирать в зависимости от ситуации
источник

s

sam in Saltstack
George Gaál
ну, сольт идеально - раскладывать конфиги и что-то запускать. Перестраивать на ходу структуру стейтфул сервисов типа монги - только если у тебя автоматизация прям написана на уровне Бог. Иначе легко получить дата коррапшен или если случайно что-то не то применил - все пойдет по одному месту.

Ну, и да - первоначальный бутстрап + настройки (репликации, юзеры) - тоже прекрасно вписывается в идеологию )
ага, спасибо
источник

AA

Andrey A in Saltstack
salt-call vault.read_secret "private_ssh_keys/users/test"

local:
   ----------
   test_key:
       -----BEGIN RSA PRIVATE KEY-----
       MIIEogIBAAKCAQEA2ZtA1IB90F0balcU6HvBUuQXf6AIXWAKs+BS29Q4nDesK818
       8vgDPKk8E77CVyEPOZlxpjmou838qhwLch1G1G2FkfSuapJmgfZPatNG7jRItnWI
       Ub4jB8zN+f4qTY7DbqtgKGVagxgttzeAWGRZ8I4KzXp1HRLbZ4wqWuHe744DMjXe
Здесь все хорошо. При попытке использования в стейте:
{% set user_private_key = salt['vault'].read_secret("private_ssh_keys/users/test") %}

test_private_key:
 file.managed:
   - name: /tmp/id_rsa
   - contents: '{{ user_private_key.test_key }}'
При запуске стетйт в файле прилетает это:
cat /tmp/id_rsa
-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEA2ZtA1IB90F0balcU6HvBUuQXf6AIXWAKs+BS29Q4nDesK818 8vgDPKk8E77CVyEPOZlxpjmou838qhwLch1G1G2FkfSuapJmgfZPatNG7jRItnWI Ub4jB8zN+f4qTY7DbqtgKGVagxgttzeAWGRZ8I4KzXp1HRLbZ4wqWuHe744DMjXe dPE8K3b9m+wPs18wPubjMrXow/Zt4YGJM5Y2+qMIYJl2AM57m1GKD6wGJxPlng9G pqhVlVFHgpryv0CZoV6EK5E51ZLx+M+ufak3BPP7ZNX/9vj0X9NGTiq/WOvQUfOM UftZby42Hpe3c7WbRmKrLZC4AYhaHvX7S6p2VwIDAQABAoIBAGFJW+6lk5o4Ri2A yUQ3L/NTLn5MmfDFI4PP4ruNYdHVwg/DSv2FjEzujIF3Y4N4sEncJEdgt+Ne8HtN FoDqPeRzIqhicCgNU+7+o/rqgme00F1ippOFIjw2gFAoJdmO3ij4TYFB7vl1Mdsb 4TGji+JUXtgGy5039QeSTs1a9kS6sf/HnV6oCFrBpY6W9onVQewl9q9qnlzVPd/1 52hxpz9Rdsd0I9qV7RU/LjPchHSwGEZpwEQvGdtcpcCmyniADNv75/I0hs/mft+/ J8dvPoVaKJ6xFQP/ZJlEfRh7VlHSiFjBDoS01XG/UPhniTdkzWb+foFR1KBeJxOy PmDIBAECgYEA7AyG4Lm2HemXd+Qn5XmDpmt0Nhl0QAfX8qt08VRfBKtsM2YdZgli C232tlqixToRWzB0y3T0VSU8iJ8cspFNZGDn9nJ2I+zJm5/aqLXO5eAUD4rvCiqg MaZJlT45o0ZG43iSPLXCOT4gMKz9HPc0PMMNk2JSQTf+1dLGIr62sdcCgYEA6/+u G3znq0lMvA+ocNDNoYJMPh/Hz
Без переносов строк, просто портянка
источник

AA

Andrey A in Saltstack
источник

AA

Andrey A in Saltstack
не зря они в стейте file.managed говорят использовать пиллары для записи приватных ключей в файл
источник

R

Roman in Saltstack
для многострочных данных надо использовать конструкцию yaml
key: |
   data
   moredata

см https://yaml-multiline.info/
источник

R

Roman in Saltstack
Andrey A
пробовал, не заработало, подставляется что-то странное, в логе:
Failed to load ext_pillar vault: 403 Client Error: Forbidden for url: https://vault.test.ru/v1/private_ssh_keys/%7Bminion%7D/test123

Причем если даже заставить это работать, возникает другая проблема - если в vault для любого другого миниона не прописан  его path, то стейты перестают совсем запускаться с вышеуказанной ошибкой. Т.е. якобы надо в таком случае для всех минионов создать path, а мне это совсем не требуется
да, и у меня все работает
ext_pillar:
 - vault: path=salt/minions/{minion}

vault kv put salt/minions/myminion privkey=blabla

vault kv get salt/minions/myminion
===== Data =====
Key        Value
---        -----
privkey    blabla

salt 'myminion' saltutil.refresh_pillar

salt 'myminion' pillar.get privkey
myminion:
   blabla


У меня правда порядком древнее все
salt 2018.3.4
Vault v1.0.2
источник

AA

Andrey A in Saltstack
У меня правда порядком древнее все
salt 2018.3.4
Vault v1.0.2

насмешили), у меня 2017.7. Вероятно, может из-за этого не заработало
источник