Estou tendo um problema de galinha e ovo ao configurar o cliente ldap no OmniOSCE, que é um fork do Solaris.
Pergunta
Pelo que posso dizer abaixo, então ldap_client
e ldap_cachemgr
precisa um do outro para funcionar, o que parece um problema de galinha e ovo?
E é ldap_cachemgr
suposto ser um serviço que deve ser executado?
Fundo
Isto é o que estou fazendo
echo "xx.xx.xx.xx ldap.example.com" >> /etc/hosts
domainname imm
domainname > /etc/defaultdomain
cp -a /etc/nsswitch.conf{,_orig}
ldapclient manual \
-a domainName=dc=example.com -a credentialLevel=self \
-a defaultSearchBase=dc=xxx,dc=example,dc=com \
-a defaultServerList=ldap.example.com
echo "imm" > /etc/defaultdomain
/usr/bin/cp -f /etc/nsswitch.conf{_orig,}
replace_args () {
perl -i -slpe 's/^$string\s+\K.*/$add/' -- -string="$1" -add="$2" "$3"
}
replace_args 'passwd:' 'files ldap' /etc/nsswitch.conf
replace_args 'group:' 'files ldap' /etc/nsswitch.conf
replace_args 'netgroup:' 'files ldap' /etc/nsswitch.conf
replace_args 'hosts:' 'files dns' /etc/nsswitch.conf
replace_args 'ipnodes:' 'files dns' /etc/nsswitch.conf
function delete_line { ( sed -i "/$1/d" $2 ) };
delete_line ldap.example.com /etc/hosts
svcadm enable svc:/network/ldap/client
# ldaplist -l netgroup
ldaplist: LDAP configuration problem (Unable to load configuration '/var/ldap/ldap_client_file' ('').)
/var/ldap/ldap_client_file is empty.
/var/adm/messages
tenho
Apr 13 14:18:21 omniosce ldap_cachemgr[8369]: [ID 293258 daemon.error] libsldap: Status: 4 Mesg: Unable to open filename '/var/ldap/ldap_cl
ient_cred' for reading (errno=2).
Apr 13 14:18:21 omniosce ldap_cachemgr[8368]: [ID 703877 daemon.error] ldap_cachemgr: failed (rc = 255).
Apr 13 14:18:21 omniosce svc.startd[10]: [ID 652011 daemon.warning] svc:/network/ldap/client:default: Method "/lib/svc/method/ldap-client start" failed with exit status 1.
Apr 13 14:18:21 omniosce svc.startd[10]: [ID 748625 daemon.error] network/ldap/client:default failed: transitioned to maintenance (see 'svcs -xv' for details)
Apr 13 14:18:21 omniosce fmd: [ID 377184 daemon.error] SUNW-MSG-ID: SMF-8000-YX, TYPE: defect, VER: 1, SEVERITY: major
Apr 13 14:18:21 omniosce EVENT-TIME: Fri Apr 13 14:18:21 CEST 2018
Apr 13 14:18:21 omniosce PLATFORM: KVM, CSN: -, HOSTNAME: omniosce
Apr 13 14:18:21 omniosce SOURCE: software-diagnosis, REV: 0.1
Apr 13 14:18:21 omniosce EVENT-ID: 182b4afe-1cc8-68ea-8755-f9ee03c05462
Apr 13 14:18:21 omniosce DESC: A service failed - a method is failing in a retryable manner but too often.
Apr 13 14:18:21 omniosce Refer to http://illumos.org/msg/SMF-8000-YX for more information.
Apr 13 14:18:21 omniosce AUTO-RESPONSE: The service has been placed into the maintenance state.
Apr 13 14:18:21 omniosce IMPACT: svc:/network/ldap/client:default is unavailable.
Apr 13 14:18:21 omniosce REC-ACTION: Run 'svcs -xv svc:/network/ldap/client:default' to determine the generic reason why the service failed, the location of any logfiles, and a list of other services impacted.
Apr 13 14:18:27 omniosce ldap_cachemgr[8484]: [ID 293258 daemon.error] libsldap: Status: 4 Mesg: Unable to open filename '/var/ldap/ldap_client_cred' for reading (errno=2).
Apr 13 14:18:27 omniosce ldap_cachemgr[8483]: [ID 703877 daemon.error] ldap_cachemgr: failed (rc = 255).
Apr 13 14:18:27 omniosce svc.startd[10]: [ID 652011 daemon.warning] svc:/network/ldap/client:default: Method "/lib/svc/method/ldap-client start" failed with exit status 1.
Apr 13 14:18:27 omniosce svc.startd[10]: [ID 748625 daemon.error] network/ldap/client:default failed: transitioned to maintenance (see 'svcs -xv' for details)
Apr 13 14:18:27 omniosce fmd: [ID 377184 daemon.error] SUNW-MSG-ID: SMF-8000-YX, TYPE: defect, VER: 1, SEVERITY: major
Apr 13 14:18:27 omniosce EVENT-TIME: Fri Apr 13 14:18:27 CEST 2018
svcs -xv svc:/network/ldap/client:default
tenho
svc:/network/ldap/client:default (LDAP client)
State: maintenance since 13 April 2018 14:18:27 CEST
Reason: Start method failed repeatedly, last exited with status 1.
See: http://illumos.org/msg/SMF-8000-KS
See: man -M /usr/share/man -s 1M ldap_cachemgr
See: /var/svc/log/network-ldap-client:default.log
Impact: This service is not running.
Eu até tentei copiar /var/ldap/ldap_client_file
de uma instalação de teste em funcionamento, onde de alguma forma consegui fazer funcionar, mas não consigo reproduzi-la.
# svcadm restart svc:/network/ldap/client
# ldaplist -l netgroup
ldaplist: LDAP configuration problem (Unable to load configuration '/var/ldap/ldap_client_file' ('').)
Por alguma razão não vê /var/ldap/ldap_client_file
agora existe.
Não parece haver um serviço de cache em execução
# svcs|grep cache
online 14:18:28 svc:/system/name-service-cache:default
ldap_cachemgr é o cliente ldap no Solaris e sim deve continuar sempre rodando como um serviço.
Para configurar o cliente ldap você precisa de dois arquivos em /var/ldap:
ldap_client_cred contém as credenciais do usuário proxy, algo assim:
ldap_client_file contém as diretivas para se conectar ao seu servidor ldap:
my_profile deve ser carregado em seu servidor ldap.
A última etapa é incluir o ldap no nsswitch.conf e iniciar o cliente.