Size: a a a

2021 June 30

L

LightVik in Saltstack
пример для докер repo
источник

L

LightVik in Saltstack
import org.sonatype.nexus.ldap.persist.LdapConfigurationManager
import org.sonatype.nexus.ldap.persist.entity.Connection
import org.sonatype.nexus.ldap.persist.entity.Mapping

def ldapConfigMgr = container.lookup(LdapConfigurationManager.class.getName())

def ldapConfig = ldapConfigMgr.newConfiguration()
ldapConfig.setName('{{ pillar['nexus_ldap_name'] }}')

boolean update = false;
ldapConfigMgr.listLdapServerConfigurations().each {
   if (it.name == '{{ pillar['nexus_ldap_name'] }}') {
       ldapConfig = it
       update = true
   }
}

connection = new Connection()
connection.setHost(new Connection.Host(Connection.Protocol.valueOf('{{ pillar['nexus_ldap_protocol'] }}'), '{{ pillar['network_ipa_vip'] }}', Integer.valueOf('{{ pillar['nexus_ldap_port'] }}')))
connection.setAuthScheme("simple")
connection.setSystemUsername('uid={{ pillar['srvnexus_user'] }},cn=users,cn=accounts,{{ pillar['network_domain_ldap'] }}')
connection.setSystemPassword('{{ pillar['srvnexus_pass'] }}')

connection.setSearchBase('cn=accounts,{{ pillar['network_domain_ldap'] }}')
connection.setConnectionTimeout(30)
connection.setConnectionRetryDelay(300)
connection.setMaxIncidentsCount(3)
connection.setUseTrustStore(Boolean.valueOf('false'))
ldapConfig.setConnection(connection)

mapping = new Mapping()
mapping.setUserBaseDn('cn=users')
mapping.setLdapFilter('memberOf=cn=g_nexus*,cn=groups,cn=accounts,{{ pillar['network_domain_ldap'] }}')
mapping.setUserObjectClass('inetOrgPerson')
mapping.setUserIdAttribute('uid')
mapping.setUserRealNameAttribute('cn')
mapping.setEmailAddressAttribute('mail')

mapping.setLdapGroupsAsRoles(true)
mapping.setGroupBaseDn('cn=groups')
mapping.setGroupObjectClass('groupOfNames')
mapping.setGroupIdAttribute('cn')
mapping.setGroupMemberAttribute('member')
mapping.setGroupMemberFormat('uid=${username},cn=users,cn=accounts,{{ pillar['network_domain_ldap'] }}')

mapping.setUserSubtree(Boolean.valueOf('false'))
mapping.setGroupSubtree(Boolean.valueOf('false'))

ldapConfig.setMapping(mapping)

if (update) {
   ldapConfigMgr.updateLdapServerConfiguration(ldapConfig)
} else {
   ldapConfigMgr.addLdapServerConfiguration(ldapConfig)
}
источник

L

LightVik in Saltstack
ldap
источник

AA

Andrew Avdeev in Saltstack
Спасибо
источник

AA

Andrew Avdeev in Saltstack
источник
2021 July 08

KP

Kirill Proskurin in Saltstack
Попытались снова обновится на 3003.1 - время деплоя выросло на ~10-15% 😞
источник
2021 July 09

AA

Andrew Avdeev in Saltstack
источник
2021 July 12

С

Сергей in Saltstack
Привет всем!
Получил в наследство вот такой top файл.
Помогите разобраться что значит 'G@os:Centos':  'G@role:proxmox-host': и т.д.
Что значит «G»?
источник

YZ

Yerzhan Zhiyentayev in Saltstack
grain
источник

С

Сергей in Saltstack
Тогда еще вопрос.
Поясните, что тут описано
version: {{ pillar['docker']['version'] }}
Не могу понять, что значит docker  в этой строке
источник

R

Roman in Saltstack
имя пиллара
вам определенно стоит почитать основы https://docs.saltproject.io/en/latest/
источник

TL

Timofey Larkin in Saltstack
это шаблон на jinja2, всё, что в {{}} условно говоря питоноподобный код. pillar — переменная (словарь), а из него по ключам достают значения. (docker, version)
источник

TL

Timofey Larkin in Saltstack
кстати, подскажите, как правильнее делать?
{{ salt['pillar.get']('docker:version') }}

или
{{ pillar['docker']['version'] }}

?
источник

KP

Kirill Proskurin in Saltstack
оба варианта рабочие и правильные. get нотация позволяет выставить дефолт если ключа нет
источник

KP

Kirill Proskurin in Saltstack
еще есть jinja dot notation типа

pillar.docker.version
источник

TL

Timofey Larkin in Saltstack
а по производительности нет разницы? Ну, типа, тут вызывается произвольная функция прям в рантайме, а пиллар, возможно, заранее загруженный словарь?
источник

TL

Timofey Larkin in Saltstack
о, кайф, красиво)
источник

KP

Kirill Proskurin in Saltstack
валидный поинт про производительность, но если эта разница у вас на что-то повлияет то скорее всего проблемы в другом месте
источник

KP

Kirill Proskurin in Saltstack
ну то есть не надо в пилларах хранить войну и мир и вот это все
источник

R

Roman in Saltstack
я в 99% случаев использую dot вариант, вариант с квадратными скобками только когда нужно использовать переменную в качестве имени ключа
источник