Dell VxRail: VxRail 플러그인에 "제공된 vCenter 자격 증명이 유효하지 않습니다."라는 오류가 표시됨
요약: VxRail 7.0.x 또는 8.0.x 플러그인에 "제공된 vCenter 자격 증명이 유효하지 않습니다."라는 오류가 표시됩니다.
증상
VxRail 7.0.x 또는 8.0.x 플러그인이 작동하지 않습니다. 다음 오류가 표시됩니다.
The provided vCenter credentials are not valid
vCenter 관리 계정 사용자 이름과 암호가 올바르고 유효한지 확인합니다.
- 시나리오 1: 마이크로 서비스, 특히 do-cluster에서 이름 확인 문제가 있습니다.
/var/log/microservice_log/short.term.log 항목이 Temporary failure in name resolution 또는 No address associated with hostname명령을 실행합니다.
"2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737166669Z stderr F 2022-06-23 13:54:04,736 [ERROR] <Dummy-152:139828974536264> executor.py resolve_or_error() (456): An error occurred while resolving field ClusterDomainOwnerQuery.cluster" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737174033Z stderr F Traceback (most recent call last):" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737177269Z stderr F File ""/home/app/api/graphql_query/resolver/ClusterResolver.py"", line 21, in get_cluster" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737179684Z stderr F si = soap_client.get_service_instance()" ... "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737280516Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/do_common/socks_proxy.py"", line 40, in create_connection" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737283191Z stderr F sock_addr_info = get_sorted_sock_addr_info(host, port)" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737285535Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/do_common/socks_proxy.py"", line 21, in get_sorted_sock_addr_info" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737287589Z stderr F sock_addrs = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM)" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737289854Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/gevent/_socketcommon.py"", line 230, in getaddrinfo" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737291978Z stderr F addrlist = get_hub().resolver.getaddrinfo(host, port, family, type, proto, flags)" "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737294412Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/gevent/resolver/thread.py"", line 63, in getaddrinfo" ... "2022-06-23 13:54:05,524" microservice.do-cluster "2022-06-23T13:54:04.737321073Z stderr F socket.gaierror: [Errno -3] Temporary failure in name resolution"
- 시나리오 2: vCenter 신뢰할 수 있는 루트 CA 인증서에서 잘못된 CRL 파일이 다운로드되었습니다.
/var/log/mystic/web.log
2022-05-24T14:04:31.381+0000 INFO [main] com.vce.commons.core.ssl.MarvinTrustManager MarvinTrustManager.reloadAllowedAuthorities:148 - PostConstruct:reloadAllowedAuthorities 2022-05-24T14:04:31.385+0000 INFO [main] com.vce.commons.core.ssl.MarvinTrustManager MarvinTrustManager.reloadAllowedAuthorities:166 - Allowing authority permanently for cert /var/lib/vmware-marvin/trust/lin/42727c5a.0 2022-05-24T14:04:31.386+0000 INFO [main] com.vce.commons.core.ssl.MarvinTrustManager MarvinTrustManager.reloadCrl:186 - reloadCrl 2022-05-24T14:04:31.398+0000 ERROR [main] org.springframework.web.context.ContextLoader ContextLoader.initWebApplicationContext:313 - Context initialization failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'backupEVCSettingAction': Unsatisfied dependency expressed through field 'vcConnectionService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'VCConnectionServiceImpl': Unsatisfied dependency expressed through field 'connectionService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'connectionHelper': Unsatisfied dependency expressed through field 'connectionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'vcConnectionService': Unsatisfied dependency expressed through field 'marvinTrustManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'marvinTrustManager': Invocation of init method failed; nested exception is java.security.cert.CRLException: Empty input
vxm:/home/mystic # ls -l /var/lib/vmware-marvin/trust/lin/ total 8 -rw-r--r-- 1 tcserver pivotal 1489 May 17 10:47 42727c5a.0 -rw-r--r-- 1 tcserver pivotal 0 May 17 10:47 42727c5a.r0
- 시나리오 3: 오류
certificate verify failed
/var/log/microservice_log/short.term.log
2022-03-21-08:06:25 microservice.do-cluster "ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)"
2022-03-21-08:06:25 microservice.do-cluster ""
2022-03-21-08:06:25 microservice.do-cluster "During handling of the above exception, another exception occurred:"
2022-03-21-08:06:25 microservice.do-cluster ""
2022-03-21-08:06:25 microservice.do-cluster "Traceback (most recent call last):"
2022-03-21-08:06:25 microservice.do-cluster " File ""/usr/local/venv/lib64/python3.6/site-packages/graphql/execution/executor.py"", line 452, in resolve_or_error"
2022-03-21-08:06:25 microservice.do-cluster " return executor.execute(resolve_fn, source, info, **args)"
2022-03-21-08:06:25 microservice.do-cluster " File ""/usr/local/venv/lib64/python3.6/site-packages/graphql/execution/executors/sync.py"", line 16, in execute"
2022-03-21-08:06:25 microservice.do-cluster " return fn(*args, **kwargs)"
2022-03-21-08:06:25 microservice.do-cluster " File ""/home/app/api/graphql_query/cluster_do_query.py"", line 59, in resolve_cluster"
2022-03-21-08:06:25 microservice.do-cluster " cluster = ClusterResolver.get_cluster(vc_conn_info_input, cluster_argument)"
2022-03-21-08:06:25 microservice.do-cluster " File ""/home/app/api/graphql_query/resolver/ClusterResolver.py"", line 23, in get_cluster"
2022-03-21-08:06:25 microservice.do-cluster " raise GraphQLError('Failed to connect to vCenter {}'.format(vc_conn_info_input.get('host')))"
2022-03-21-08:06:25 microservice.do-cluster "graphql.error.base.GraphQLError: Failed to connect to vCenter None"
- 시나리오 4: vCenter의 SSL 인증서가 완전히 정규화되지 않았습니다.
/var/log/microservice_log/short.term.log
2022-04-20-06:00:16 microservice.do-cluster " File ""/usr/lib64/python3.6/ssl.py"", line 694, in do_handshake" 2022-04-20-06:00:16 microservice.do-cluster " match_hostname(self.getpeercert(), self.server_hostname)" 2022-04-20-06:00:16 microservice.do-cluster " File ""/usr/lib64/python3.6/ssl.py"", line 331, in match_hostname" 2022-04-20-06:00:16 microservice.do-cluster " % (hostname, dnsnames[0]))" 2022-04-20-06:00:16 microservice.do-cluster "ssl.CertificateError: hostname 'VC_FQDN' does not match 'VC_IP'"
vCenter's cert does not contain FQDN in Subject Alternative Name, it may contain IP address only: echo | openssl s_client -connect <vc_fqdn>:443 2>/dev/null |openssl x509 -noout -text X509v3 Subject Alternative Name: IP Address:xx.xx.xx.xx Example in lab: X509v3 Subject Alternative Name: DNS:xxxxxxx, IP Address:xx.xx.xx.xx
- 시나리오 5: 마이크로서비스가 오류로 인해 vCenter에 연결할 수 없음
No route to host명령을 실행합니다.
명령 firewall-cmd --reload 최근에 VxRail Manager에서 실행되었습니다./var/log/microservice_log/short.term.log
"2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540928759Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/pyVmomi/SoapAdapter.py"", line 1039, in connect" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540932851Z stderr F http_client.HTTPSConnection.connect(self)" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540936399Z stderr F File ""/usr/lib64/python3.6/http/client.py"", line 1444, in connect" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540939008Z stderr F super().connect()" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.54094136Z stderr F File ""/usr/lib64/python3.6/http/client.py"", line 956, in connect" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540943688Z stderr F (self.host,self.port), self.timeout, self.source_address)" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540946025Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/do_common/socks_proxy.py"", line 71, in create_connection" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540948554Z stderr F raise err" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540950893Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/do_common/socks_proxy.py"", line 61, in create_connection" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540955153Z stderr F sock.connect((sa[0], sa[1]))" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540958727Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/socks.py"", line 47, in wrapper" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.54096135Z stderr F return function(*args, **kwargs)" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540963723Z stderr F File ""/usr/local/venv/lib64/python3.6/site-packages/socks.py"", line 780, in connect" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.54096604Z stderr F super(socksocket, self).connect((dest_addr, dest_port))" "2024-01-20 04:18:35,083" microservice.do-cluster "2024-01-20T04:18:34.540968413Z stderr F OSError: [Errno 113] No route to host"
원인
해결
시나리오 1: 마이크로서비스에 이름 확인 문제가 있습니다.
- VxRail Manager의
dnsmasq service을 설정합니다.
service dnsmasq stop service dnsmasq start
- 재시작하는 경우
nsmasq service도움이 되지 않으면 VxRail Manager DNS 서버가 외부 공용 DNS(예: 8.8.8.8)로 구성되어 있는지 확인하십시오. - 그래도 이름 확인에 실패하면 Dell 지원 부서에 문의하고 이 문서 번호를 000214621 인용하여 DNS 확인 툴을 실행합니다.
시나리오 2: vCenter 신뢰할 수 있는 루트 CA 인증서에서 다운로드한 잘못된 CRL 파일
다음 문서를 따르십시오 . VxRail: 비어 있거나 손상된 CRL 파일로 인해 vCenter 루트 인증서를 가져올 수 없음 - 비어 있거나 손상된 CRL 파일을 vCenter에서 삭제하고 vCenter 신뢰할 수 있는 루트 인증서를 VxRail Manager로 다시 가져옵니다.
시나리오 3: 오류 certificate verify failed
인증서 문제를 해결하려면 Dell 지원 부서에 문의하고 이 문서 번호를 000157888 인용하십시오.
시나리오 4: vCenter의 SSL 인증서가 완전히 검증되지 않았습니다.
vCenter Server 시스템 SSL 인증서 재생성 > SubjectAltName 다음을 포함해야 합니다. DNS Name=machine_FQDN명령을 실행합니다.
시나리오 5: 마이크로서비스가 오류로 인해 vCenter에 연결할 수 없음 No route to host명령을 실행합니다.
다시 시작 rke2 아래 두 명령을 실행하여 서버:
bash /usr/local/bin/rke2-killall.sh systemctl start rke2-server
또는
VxRail Manager를 재부팅합니다.
firewall-cmd --reload 명령, 실행 firewall-cmd --runtime-to-permanent 옵션을 지정합니다.