클라이언트 문제 해결
- 1. 자동 설치
- 2. 베어 메탈 시스템
- 3. 수명이 종료된 CentOS 6 클라이언트 부트스트랩
- 4. 수명 종료 제품의 부트스트랩 리포지토리
- 5. 복제된 Salt 클라이언트
- 6. FQDNS grain 비활성화
- 7. noexec로 /tmp 마운팅
- 8. noexec로 /var/tmp 마운팅
- 9. grain을 시작 이벤트로 전달
- 10. 프록시 연결 및 FQDN
- 11. Red Hat CDN 채널 및 여러 인증서
- 12. Web UI에서 등록이 실패했으며, 오류가 표시되지 않습니다.
- 13. 이전 클라이언트 등록
- 14. 작동 중지 및 DNS 설정으로 표시된 Salt 클라이언트
- 15. Salt 3000에서 Salt Bundle로 마이그레이션
1. 자동 설치
기본 채널에 따라 새 자동 설치 프로파일이 필수 패키지가 누락된 채널에 가입될 수 있습니다.
자동 설치가 작동하려면 다음과 같은 패키지가 필요합니다.
-
pyOpenSSL
-
rhnlib
-
libxml2-python
-
spacewalk-koan
이 문제를 해결하려면 먼저 다음 사항을 확인하십시오.
-
자동 설치 프로파일의 기본 채널과 관련이 있는 도구 소프트웨어 채널이 조직 및 사용자에게 제공되는지 확인합니다.
-
도구 채널이 SUSE Manager에 하위 채널로 제공되는지 확인합니다.
-
필수 패키지와 모든 종속성이 연결된 채널에 제공되는지 확인합니다.
2. 베어 메탈 시스템
네트워크의 베어메탈 시스템이 시스템
목록에 자동으로 추가되지 않는 경우 다음 사항을 우선 확인합니다.
-
pxe-default-image
패키지 설치를 완료한 상태이어야 합니다. -
파일 경로 및 파라미터를 올바르게 구성해야 합니다.
pxe-default-image
가 제공하는vmlinuz0
및initrd0.img
파일이rhn.conf
구성 파일에 지정된 위치에 있는지 확인합니다. -
베어메탈 시스템을 SUSE Manager 서버에 연결하는 네트워킹 장비가 제대로 작동하고 있는지, 서버에서 SUSE Manager 서버 IP 주소에 도달할 수 있는지 확인합니다.
-
조달할 베어메탈 시스템은 부팅 시퀀스에 PXE 부팅이 활성화되어 있어야 하며, 운영 체제를 부팅하려고 해서는 안 됩니다.
-
DHCP 서버는 부팅 중에 DHCP 요청에 반드시 응답해야 합니다. PXE 부팅 메시지에서 다음 사항이 이루어지고 있는지 확인합니다.
-
DHCP 서버가 예상 IP 주소를 할당하고 있습니다.
-
DHCP 서버가 부팅을 위해 SUSE Manager 서버 IP 주소를
next-server
로 할당하고 있습니다.
-
-
Cobbler가 실행 중인지, 검색 기능이 활성화되어 있는지 확인합니다.
부팅 직후 파란색 Cobbler 메뉴가 표시되면 검색이 시작된 것입니다. 완료되지 않는 경우 문제 진단에 도움이 되도록 일시적으로 자동 종료를 비활성화하십시오. 자동 종료를 비활성화하려면 다음을 수행해야 합니다.
-
Cobbler 메뉴에서 화살표 키로
pxe-default-profile
을 선택하고, 타이머가 만료되기 전에 <Tab> 키를 누릅니다. -
통합된 편집기를 사용해 커널 부팅 파라미터인
spacewalk-finally=running
을 추가하고 <Enter> 키를 눌러 부팅을 계속합니다. -
사용자 이름이
root
이고 비밀번호가linux
인 셸을 입력하여 디버깅을 계속합니다.
중복 프로파일
기술적 한계로 인해 새로운 베어메탈 시스템과 이전에 검색한 시스템을 확실히 구별할 수 없습니다. 따라서 베어메탈 시스템을 여러 차례 켜지 않는 것이 좋습니다. 중복 프로파일이 생기기 때문입니다. |
3. 수명이 종료된 CentOS 6 클라이언트 부트스트랩
이제 CentOS 6는 수명이 종료되었으며 이 운영 체제를 위해 클라이언트 리포지토리에 제공되는 이미지는 최신이 아닙니다. 이러한 패키지를 사용하여 새 CentOS 6 클라이언트를 부트스트래핑하면 실패하게 됩니다. 이미 설치되어 부트스트랩된 CentOS 6 클라이언트에서는 이 부트스트래핑이 실패하지 않습니다.
새 CentOS 6 클라이언트를 부트스트랩해야 하는 경우 올바른 URL을 반영하도록 기존 리포지토리를 편집하십시오.
-
CentOS 6 클라이언트의 명령 프롬프트에서
/etc/yum.repos.d/
디렉토리에 있는CentOS-Base. repo
파일을 엽니다. -
mirrorlist.centos.org
를 가리키는mirrorlist
항목을 찾습니다. 항목이 2개 이상일 수 있습니다. 예:mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=os
-
패키지 관리자가 URL을 찾지 못하도록
mirrorlist
항목을 주석으로 처리하십시오. -
vault.centos.org
URL을 가리키도록baseurl
줄을 편집하고 CentOS 6 리포지토리를 지정하십시오. 예:baseurl=https://vault.centos.org/centos/6/os/$basearch/
-
파일에 나열된 각 리포지토리에서 이 작업을 반복합니다.
-
클라이언트를 부트스트랩합니다. CentOS 클라이언트 부트스트래핑에 대한 자세한 설명은 CentOS 클라이언트 등록를 참조하십시오.
CentOS 6 수명 종료에 대한 자세한 설명은 http://mirror.centos.org/centos/6/readme를 참조하십시오.
4. 수명 종료 제품의 부트스트랩 리포지토리
지원하는 제품이 동기화되면 부트스트랩 리포지토리가 자동으로 생성되고 SUSE Manager 서버에서 재생성됩니다. 제품이 수명 종료에 도달하여 지원이 중단된 경우 제품을 계속 사용하고 싶으면 부트스트랩 리포지토리를 수동으로 생성해야 합니다.
부트스트랩 리포지토리에 대한 자세한 내용은 부트스트랩 리포지토리를 참조하십시오.
-
SUSE Manager 서버의 명령 프롬프트에서 root 권한으로 다음 예와 같이
--force
옵션을 이용해 사용 가능한 미지원 부트스트랩 리포지토리를 나열합니다. 예는 다음과 같습니다.mgr-create-bootstrap-repo --list --force 1. SLE-11-SP4-x86_64 2. SLE-12-SP2-x86_64 3. SLE-12-SP3-x86_64
-
다음과 같이 적절한 리포지토리 이름을 제품 레이블로 사용해 부트스트랩 리포지토리를 생성합니다.
mgr-create-bootstrap-repo --create SLE-12-SP2-x86_64 --force
부트스트랩 리포지토리를 수동으로 생성하고 싶지 않다면 필요한 제품 및 부트스트랩 리포지토리에 LTSS를 사용할 수 있는지 여부를 확인하시기 바랍니다.
5. 복제된 Salt 클라이언트
하이퍼바이저 복제 유틸리티를 사용한 후 복제된 Salt 클라이언트를 등록하려 했다면 다음과 같은 오류가 표시될 수 있습니다.
죄송하지만 시스템을 찾을 수 없습니다.
이러한 오류의 원인은 복제된 새 시스템에 등록된 기존 시스템과 동일한 시스템 ID가 있기 때문입니다. 이 ID를 수동으로 변경하여 오류를 바로잡고 복제된 시스템을 등록할 수 있습니다.
추가 정보 및 지침은 Troubleshooting Registering Cloned Clients를 참조하십시오.
6. FQDNS grain 비활성화
FQDNS grain은 시스템에 있는 모든 전체 DNS 서비스의 목록을 반환합니다. 이 정보를 수집하는 작업은 대개 빠르게 완료되지만 DNS 설정이 잘못 구성된 경우 더 많은 시간이 소요될 수 있습니다. 어떤 경우 클라이언트는 무응답 상태가 되거나 작동을 중지할 수 있습니다.
이러한 문제를 방지하려면 Salt 플래그로 FQDNS grain을 비활성화하면 됩니다. grain을 비활성화하면 네트워크 모듈을 사용해 클라이언트가 무응답 상태가 될 위험 없이 FQDNS 서비스를 제공할 수 있습니다.
이전 Salt 클라이언트에만 적용됩니다. 최근에 Salt 클라이언트를 등록했다면 FQDNS grain이 기본적으로 비활성화되어 있습니다. |
SUSE Manager 서버의 명령 프롬프트에서 다음 명령을 사용해 FQDNS grain을 비활성화합니다.
salt '*' state.sls util.mgr_disable_fqdns_grain
이 명령을 실행하면 각 클라이언트가 재시작되고 서버가 처리해야 하는 Salt 이벤트를 생성합니다. 클라이언트의 수가 매우 많은 경우 대신에 다음과 같이 배치 모드로 명령을 실행할 수 있습니다.
salt --batch-size 50 '*' state.sls util.mgr_disable_fqdns_grain
배치 명령이 실행을 완료할 때까지 기다립니다. Ctrl+C로 프로세스를 인터럽트하지 마십시오.
7. noexec로 /tmp 마운팅
Salt는 클라이언트 파일 시스템의 /tmp
에서 원격 명령을 실행합니다. 그러므로 noexec
옵션으로 /tmp
를 마운트하지 않아야 합니다. 이 문제를 해결하기 위한 다른 방법은 noexec
옵션이 설정되지 않은 디렉토리를 가리키도록 Salt 서비스 지정된 TMPDIR
환경 변수로 임시 디렉터리 경로를 재정의하는 것입니다. 클라이언트에서 Salt 번들을 사용하는 경우 systemd 드롭인 구성 파일 /etc/systemd/system/venv-salt-minion.service.d/10-TMPDIR.conf
를 사용하거나 salt-minion
을 사용하는 경우에는 /etc/systemd/system/salt-minion.service.d/10-TMPDIR.conf
를 사용하는 것이 좋습니다. 드롭인 구성 파일 내용의 예:
[Service] Environment=TMPDIR=/var/tmp
8. noexec로 /var/tmp 마운팅
Salt SSH는 /var/tmp
를 사용하여 Salt Bundle을 배포하고 번들된 Python으로 클라이언트에서 Salt 명령을 실행합니다. 그러므로 noexec
옵션으로 /var/tmp
를 마운트하지 않아야 합니다. 부트스트랩 프로세스는 Salt SSH를 사용하여 클라이언트에 도달하므로 /var/tmp
가 noexec
옵션으로 마운트된 클라이언트를 Web UI로 부트스트랩할 수 없습니다.
9. grain을 시작 이벤트로 전달
Salt 클라이언트는 시작할 때마다 machine_id
grain을 SUSE Manager로 전달합니다. SUSE Manager는 이 grain을 사용해 클라이언트가 등록되었는지 여부를 판별합니다. 이 프로세스를 진행하려면 동기 Salt 호출이 필요합니다. 동기 Salt 호출은 다른 프로세스를 차단하므로 다수의 클라이언트가 동시에 시작하는 경우 프로세스가 상당히 지연될 수 있습니다.
이 문제를 해결하기 위해 별도의 동기 Salt 호출을 방지할 수 있는 새로운 기능이 Salt에 도입되었습니다.
이 기능을 사용하려면 이 기능을 지원하는 클라이언트에서 클라이언트 구성에 구성 파라미터를 추가하면 됩니다.
이 프로세스가 더 원활히 진행되게 하려면 mgr_start_event_grains.sls
도우미 Salt 상태를 사용하면 됩니다.
이전에 등록한 클라이언트에만 적용됩니다. 최근에 Salt 클라이언트를 등록했다면 이 구성 파라미터가 기본적으로 추가되어 있습니다. |
SUSE Manager 서버의 명령 프롬프트에서 다음 명령을 사용해 start_event_grains
구성 도우미를 활성화합니다.
salt '*' state.sls util.mgr_start_event_grains
이 명령은 필요한 구성을 클라이언트의 구성에 추가하고, 클라이언트를 재시작할 때 이를 적용합니다. 클라이언트가 수가 매우 많은 경우 대신에 다음과 같이 배치 모드로 명령을 실행할 수 있습니다.
salt --batch-size 50 '*' state.sls mgr_start_event_grains
10. 프록시 연결 및 FQDN
프록시를 통해 연결된 클라이언트가 Web UI에 표시되지만 프록시를 통해 연결되었음을 표시하지 않는 경우가 있습니다. 연결에 전체 도메인 이름(FQDN)을 사용하지 않고 프록시가 SUSE Manager에 알려지지 않은 경우 이러한 문제가 발생할 수 있습니다.
이러한 동작을 교정하려면 다음과 같이 프록시의 클라이언트 구성 파일에서 추가 FQDN을 grain으로 지정하십시오.
grains: susemanager: custom_fqdns: - name.one - name.two
11. Red Hat CDN 채널 및 여러 인증서
Red Hat 컨텐트 제공 네트워크(CDN) 채널은 경우에 따라 여러 인증서를 제공하지만 SUSE Manager Web UI는 한 개의 인증서만 임포트할 수 있습니다. CDN이 SUSE Manager Web UI에서 알고 있는 인증서와 다른 인증서를 제공하는 경우, 인증서가 올바르더라도 유효성 검사에 실패하고 리포지토리에 대한 액세스가 거부됩니다. 수신되는 오류 메시지는 다음과 같습니다.
[error] Repository '<repo_name>' is invalid. <repo.pem> Valid metadata not found at specified URL History: - [|] Error trying to read from '<repo.pem>' - Permission to access '<repo.pem>' denied. Please check if the URIs defined for this repository are pointing to a valid repository. Skipping repository '<repo_nam' because of the above error. Could not refresh the repositories because of errors. HH:MM:SS RepoMDError: Cannot access repository. Maybe repository GPG keys are not imported
이 문제를 해결하려면 유효한 모든 인증서를 단일 .pem
파일로 병합한 후 SUSE Manager에서 사용하도록 인증서를 다시 빌드하십시오.
-
Red Hat 클라이언트의 명령 프롬프트에서, 루트 권한으로 단일
rh-cert.pem
파일의/etc/pki/entitlement/
에서 모든 현재 인증서를 수집합니다.cat 866705146090697087.pem 3539668047766796506.pem redhat-entitlement- authority.pem > rh-cert.pem
-
단일
rh-key. pem
파일의/etc/pki/entitlement/
에서 모든 현재 키를 수집합니다.cat 866705146090697087-key.pem 3539668047766796506-key.pem > rh-key.pem
Red Hat Enterprise Linux 클라이언트를 CDN으로 등록의 지침에 따라 이제 새 인증서를 SUSE Manager 서버로 임포트할 수 있습니다.
12. Web UI에서 등록이 실패했으며, 오류가 표시되지 않습니다.
Web UI에서의 초기 등록을 위해 모든 Salt 클라이언트는 Salt SSH를 사용합니다.
기본적으로 Salt SSH 클라이언트는 서버에 오류를 다시 보고하지 않습니다.
그러나 Salt SSH 클라이언트는 오류를 검사할 수 있는 /var/log/salt-ssh.log
에 로그를 로컬로 저장합니다.
13. 이전 클라이언트 등록
CentOS 6, Oracle Linux 6, Red Hat Enterprise Linux 6, SUSE Linux Enterprise Server with Expanded Support 6 또는 SUSE Linux Enterprise Server 11 클라이언트를 등록하고 사용하려면 SUSE Manager 서버가 이전 형식의 SSL 암호화를 지원하도록 구성해야 합니다.
명령 프롬프트에서 등록하려 하면 다음과 같은 오류가 표시됩니다.
‘<Repository_Name>’ 리포지토리가 잘못되었습니다. [|] 지정된 URL에서 유효한 메타데이터를 찾을 수 없습니다. 이 리포지토리에 정의된 URI가 유효한 리포지토리를 가리키고 있는지 확인하시기 바랍니다. 위 오류로 인해 ‘<Repository_Name>’ 리포지토리를 건너뛰는 중입니다. ‘www.example.com’에 대한 다운로드 (curl) 오류: 오류 코드: 알 수 없는 오류 오류 메시지: error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version
Web UI에서 등록하려 하면 다음과 같은 오류가 표시됩니다.
SLS ‘base:bootstrap’ 렌더링에 실패함: Jinja 오류: >>> RHEL6 및 SLES11을 위한 TLS 1.2 이상 버전이 없습니다. Apache 구성을 확인하시기 바랍니다. ...
이 오류는 Apache에 TLS v1.2가 필요하지만 이전 운영 체제가 이 버전의 TLS 프로토콜을 지원하지 않기 때문에 발생합니다. 이 오류를 수정하려면 서버의 Apache가 넓은 범위의 프로토콜 버전을 수락하도록 강제해야 합니다. SUSE Manager 서버에서 루트 권한으로 /etc/apache2/ssl-global.conf
구성 파일을 열고, SSLProtocol
줄을 찾아 다음과 같이 업데이트합니다.
SSLProtocol all -SSLv2 -SSLv3
이러한 업데이트는 서버에서 수동으로 완료해야 하며, 해당되는 경우 프록시에서 Salt 상태로 수행해야 합니다. 변경한 후 각 시스템에서 apache
서비스를 다시 시작하십시오.
14. 작동 중지 및 DNS 설정으로 표시된 Salt 클라이언트
Salt 클라이언트가 실행 중인 경우에도 패키지 새로 고침 또는 적용 상태 등의 작업이 실패로 표시되며 다음 메시지가 표시됩니다.
Minion이 작동 중지되거나 연결할 수 없습니다.
이 경우 작업 일정을 변경해 보십시오. 일정을 변경할 수 있는 경우 잘못된 DNS 구성이 문제의 원인일 수 있습니다.
Salt 클라이언트가 다시 시작되거나 그레인이 새로 고쳐지는 경우, 클라이언트는 FQDN 그레인을 계산하고 그레인이 진행될 때까지 응답하지 않습니다. SUSE Manager 서버에서 예약된 작업이 실행될 때 SUSE Manager 서버는 클라이언트를 대상으로 test.ping
을 수행한 후 실제 작업을 수행하여 클라이언트가 실제로 실행되고 있고 작업이 트리거될 수 있는지 확인합니다.
기본적으로 SUSE Manager 서버는 test.ping
명령의 응답을 수신하기 위해 5초 동안 대기합니다. 5초 이내에 응답이 수신되지 않으면 클라이언트가 다운되었거나 연결할 수 없다는 메시지를 표시하고 작업이 실패하도록 설정됩니다.
이 문제를 해결하려면 클라이언트에서 DNS 확인을 수정하여 FQDN을 확인하는 동안 클라이언트가 5초 동안 멈추지 않도록 하십시오.
가능하지 않은 경우 SUSE Manager 서버의 /etc/rhn/rhn.conf
파일에 있는 java.salt_presence_ping_timeout
값을 4보다 큰 값으로 증가하십시오.
예는 다음과 같습니다.
java.salt_presence_ping_timeout = 6
그리고 다음을 사용하여 spacewalk-services
를 재시작합니다.
spacewalk-services restart
이 값을 증가시키면 SUSE Manager 서버가 미니언에 연결할 수 없거나 응답하지 않는지 여부를 확인하는 데 시간이 더 오래 걸릴 수 있으므로, SUSE Manager 서버가 전반적으로 느려지거나 응답하지 않습니다. |
15. Salt 3000에서 Salt Bundle로 마이그레이션
15.1. SUSE Linux Enterprise Server 12, Red Hat Enterprise Linux 7 또는 CentOS 7 미니언(Salt 3000 EOL)을 Salt Bundle로 전환
util.mgr_switch_to_venv_minion
상태를 venv-salt-minion
으로 전환-
우선 열을 지정하지 않고
util.mgr_switch_to_venv_minion
을 적용하십시오. 그러면etc
에서 구성 파일을 복사하는venv-salt-minion
으로 전환됩니다. 원래salt-minion
구성 및 해당 패키지는 정리되지 않습니다.salt <minion_id> state.apply util.mgr_switch_to_venv_minion
-
mgr_purge_non_venv_salt
가True
로 설정된util.mgr_switch_to_venv_minion
을 적용하여salt-minion
을 제거하고mgr_purge_non_venv_salt_files
을True
로 설정하여salt-minion
과 관련된 모든 파일을 제거하십시오. 이 두 번째 단계에서는 첫 번째 단계의 처리 여부를 확인한 후 이전 구성 파일과 현재 사용되지 않는salt-minion
패키지를 제거합니다.salt <minion_id> state.apply util.mgr_switch_to_venv_minion pillar='{"mgr_purge_non_venv_salt_files": True, "mgr_purge_non_venv_salt": True}'
15.2. SUSE Linux Enterprise Server 12, Red Hat Enterprise Linux 7 또는 CentOS 7 SSH 미니언(Salt 3000 EOL)을 Salt Bundle로 전환
-
/etc/rhn/rhn.conf
에서 다음과 같이 지정합니다.web.ssh_salt_pre_flight_script = /usr/share/susemanager/salt-ssh/preflight.sh web.ssh_use_salt_thin = false
-
ssh_run_pre_flight
set totrue
로 Salt Master/etc/salt/master.d/ssh-preflight.conf
에 대한 추가 드롭인 구성 파일을 생성합니다.ssh_run_pre_flight: true
-
spacewalk-service restart
를 사용하여 서비스를 다시 시작합니다.