SUSE Multi-Linux Manager Proxy Deployment

이 안내서에서는 SL Micro 6.2 또는 SUSE Linux Enterprise Server 15 SP7에서 SUSE Multi-Linux Manager 5.2 프록시 컨테이너의 배포 절차를 설명합니다. 이 안내서에서는 SUSE Multi-Linux Manager 5.2 서버가 이미 배포된 상태를 가정합니다.

If you want to deploy SUSE Multi-Linux Manager Proxy on Kubernetes, see SUSE Multi-Linux Manager Proxy Deployment on Kubernetes.

SL Micro is only supported as regular minion (default contact method) for the time being. We are working on managing it as Salt SSH client (salt-ssh contact method), too.

It is possible to convert existing client to proxy. For more information, see 클라이언트를 MLM 프록시로 변환.

To successfully deploy a new proxy, follow the procedure:

Procedure: Deploying proxy
  1. 하드웨어 요구사항을 검토합니다.

  2. 서버에서 SL Micro 6.2 또는 SUSE Linux Enterprise Server 15 SP7 상위 채널과 프록시 확장 하위 채널을 동기화합니다.

  3. 베어메탈 머신에 SL Micro 또는 SUSE Linux Enterprise Server를 설치합니다.

  4. Create a Salt activation key with Proxy Extension.

  5. Bootstrap the proxy as a client with the default connection method.

  6. 프록시 구성을 생성합니다.

  7. 프록시 구성을 서버에서 프록시로 전송합니다.

  8. 프록시에 패키지를 설치합니다.

  9. 프록시 구성을 사용하여 클라이언트를 SUSE Multi-Linux Manager의 프록시로 등록합니다.

프록시 컨테이너 호스트에 지원되는 운영 체제

컨테이너 호스트용으로 지원되는 운영 체제는 SL Micro 6.2 및 SUSE Linux Enterprise Server 15 SP7입니다.

컨테이너 호스트

컨테이너 호스트는 컨테이너를 관리하고 배포할 수 있는 컨테이너 엔진(예: Podman)이 탑재된 서버입니다. 이러한 컨테이너는 필수적인 부분(예: 애플리케이션과 라이브러리)을 보관하지만, 전체 운영 체제는 보관하지 않으므로 경량화됩니다. 이 설정은 애플리케이션이 다양한 환경에서 동일한 방식으로 실행되도록 보장합니다. 컨테이너 호스트는 이러한 컨테이너에 필요한 리소스(예: CPU, 메모리, 스토리지)를 제공합니다.

1. Hardware requirements for the proxy

SUSE Multi-Linux Manager 프록시 배포를 위한 하드웨어 요구 사항에 대한 자세한 내용은 installation-and-upgrade:hardware-requirements.adoc#proxy-hardware-requirements에서 확인할 수 있습니다.

2. Synchronize the parent and proxy extension child channels

This section presumes that you have already entered your organization credentials under the Admin  Setup Wizard  Organization Credentials in the server’s Web UI. Products are listed on the Admin  Setup Wizard  Products page. This channel must be fully synchronized on the server, with the child channel Proxy as an extension option selected.

Procedure: Synchronizing the parent channel and proxy extension
  1. SUSE Multi-Linux Manager Web UI에서 관리  제품으로 이동합니다.

  2. 제품 페이지에서 필터 필드에 SL Micro 또는 SUSE Linux Enterprise Server를 입력합니다.

  3. 다음으로 드롭다운을 사용하여 필요한 아키텍처를 선택합니다. 이 예제의 경우 x86-64입니다.

  4. In the Product Description field select the SL Micro 6.2 or SUSE Linux Enterprise Server 15 SP7 checkbox then use the drop-down to select the SUSE Multi-Linux Manager Proxy Extension 5.2 x86_64 extension.

  5. 제품 추가 버튼을 클릭합니다.

  6. 동기화가 완료될 때까지 기다립니다.

3. Prepare the SUSE Multi-Linux Manager proxy host

다음 하위 섹션에서는 SLE Micro 또는 SUSE Linux Enterprise Server로 프록시 호스트를 준비합니다.

3.1. SL Micro 6.2 호스트 준비

3.1.1. Download the installation media

절차: 설치 미디어 다운로드
  1. https://www.suse.com/download/sle-micro/에서 SL Micro 6.2 설치 미디어를 찾아 적절한 미디어 파일을 다운로드합니다.

  2. Prepare a DVD or USB flash drive with the downloaded .iso image for installation.

3.1.2. SL Micro 6.2 설치

절차: SL Micro 6.2 설치
  1. Insert the DVD or USB flash drive (USB disk or key) containing the installation image for SLE Micro 6.2.

  2. 시스템을 부팅하거나 재부팅합니다.

  3. Use the arrow keys to select Installation.

  4. Adjust Keyboard and language.

  5. Click the checkbox to accept the license agreement.

  6. Click Next to continue.

  7. Skip the registration. The SL Micro 6.2 entitlement is included within the SUSE Multi-Linux Manager entitlement.

  8. 다음을 클릭하여 계속합니다.

  9. On the NTP Configuration page click Next.

  10. On the Authentication for the System page enter a password for the root user. Click Next.

  11. On the Installation Settings page click Install.

This concludes installation of SL Micro 6.2 and SUSE Multi-Linux Manager 5.2 as an extension. For more information about preparing your machines (virtual or physical), see the SL Micro Deployment Guide.

3.1.3. 시스템 업데이트

절차: 시스템 업데이트
  1. root로 로그인합니다.

  2. transactional-update 실행:

    transactional-update
  3. 재부팅합니다.

SL Micro는 기본적으로 자동으로 업데이트되도록 설계되어 있으며, 업데이트를 적용한 이후에는 재부팅됩니다. 그러나 SUSE Multi-Linux Manager 환경에서 이는 올바른 동작이 아닙니다. SUSE Multi-Linux Manager은(는) 서버에서 자동 업데이트를 방지하기 위해 부트스트랩 프로세스 중에 트랜잭션 업데이트 타이머를 비활성화합니다.

SL Micro 기본 동작을 사용하려면 다음 명령을 실행하여 타이머를 활성화합니다.

systemctl enable --now transactional-update.timer

배포를 계속하려면 Configure custom persistent storage의 내용을 참조하십시오.

3.2. SUSE Linux Enterprise Server 15 SP7 호스트 준비

또는 SUSE Multi-Linux Manager을(를) SUSE Linux Enterprise Server 15 SP7에 배포할 수 있습니다.

다음 절차에서는 설치 과정의 주요 단계를 설명합니다.

3.2.1. SUSE Linux Enterprise Server에 SUSE Multi-Linux Manager 확장 설치

절차: SUSE Linux Enterprise Server에 SUSE Multi-Linux Manager 확장 설치
  1. Locate and download SUSE Linux Enterprise Server 15 SP7 .iso at https://www.suse.com/download/sles/.

  2. SUSE Linux Enterprise Server 15 SP7 설치를 시작합니다.

    1. On the Language, keyboard and product selection select the product to install.

    2. On the License agreement read the agreement and check I Agree to the License Terms.

  3. Skip the registration.

  4. Click Next to continue.

    Please note that for SUSE Linux Enterprise Server 15 SP7, you are required to have a valid SUSE Linux Enterprise Server subscription configured on the server.

  5. In the screen Extensions and Modules Selection check the following:

    • Basesystem Module

    • Containers Module

  6. 다음을 클릭하여 계속합니다.

  7. 설치를 완료합니다.

  8. When the installation completes, log in to the newly installed server as root.

  9. Update the System (optional, if the system was not set to download updates during install):

    zypper up
  10. 재부팅합니다.

배포를 계속하려면 Configure custom persistent storage의 내용을 참조하십시오.

4. Configure custom persistent storage

Configuring persistent storage is optional, but it is the only way to avoid serious trouble with container full disk conditions. If custom persistent storage is required for your infrastructure, use the mgr-storage-proxy tool.

For more information, see mgr-storage-proxy --help. This tool simplifies creating the container storage and Squid cache volumes.

다음 방법으로 명령 사용:

mgr-storage-proxy <storage-disk-device>

예:

mgr-storage-proxy /dev/nvme1n1

This command will create the persistent storage volumes at /var/lib/containers/storage/volumes.

자세한 내용은 다음을 참조하십시오.

5. 프록시용 활성화 키 생성

절차: 활성화 키 만들기
  1. Navigate to Systems  Activation Keys , and click Create key.

  2. Create an activation key for the proxy host with SL Micro 6.2 or SUSE Linux Enterprise Server 15 SP7 as the parent channel. This key should include all recommended channels and the proxy as an extension child channel.

  3. Proceed to boostrapping the proxy host as a default client.

Ensure the Proxy is assigned only to original vendor channels.

Assigning cloned channels is not supported at this moment.

6. 프록시 호스트를 클라이언트로 부트스트랩

Procedure: Bootstrapping the Proxy Host
  1. 시스템  부트스트랩을 선택합니다.

  2. 프록시 호스트의 필드를 입력합니다.

  3. 드롭다운에서 이전 단계에서 생성한 활성화 키를 선택합니다.

  4. 부트스트랩을 클릭합니다.

  5. 부트스트랩 프로세스가 완료될 때까지 기다립니다. Salt 메뉴를 선택한 후 Salt 키가 나열되고 수락되었는지 확인합니다.

  6. 운영 체제가 SL Micro인 경우 프록시 호스트를 재부팅합니다.

  7. 시스템 목록에서 호스트를 선택하고 모든 이벤트가 완료된 후 SL Micro의 경우 두 번째 재부팅을 트리거하여 온보딩을 완료합니다.

Procedure: Updating the Proxy Host
  1. 시스템 목록에서 호스트를 선택하고 모든 패치를 적용하여 업데이트합니다.

  2. 운영 체제가 SL Micro인 경우 프록시 호스트를 재부팅합니다.

7. 프록시 구성 생성

SUSE Multi-Linux Manager 프록시의 구성 아카이브는 SUSE Multi-Linux Manager 서버에서 생성됩니다. 각 추가 프록시에는 자체 구성 아카이브가 필요합니다.

컨테이너화된 SUSE Multi-Linux Manager 프록시의 경우 변경 사항을 적용하려면 새 프록시 구성 파일을 빌드한 다음 컨테이너를 다시 배포해야 합니다. 이는 SSL 인증서를 포함한 설정을 업데이트하는 프로세스입니다.

Podman 배포의 경우, 이 프록시 구성을 생성하기 전에 SUSE Multi-Linux Manager 프록시의 컨테이너 호스트가 SUSE Multi-Linux Manager 서버에 클라이언트로 등록되어 있어야 합니다.

If a proxy FQDN is used to generate a proxy container configuration that is not a registered client (as in the Kubernetes use case), a new system entry will appear in system list. This new entry will be shown under previously entered Proxy FQDN value and will be of Foreign system type.

Peripheral servers are always using third-party SSL certificates. If the hub server has generated the certificates for the peripheral server, it needs to generate the certificate of each proxy too.

On the hub server, run the following command.

mgrctl exec -ti -- rhn-ssl-tool --gen-server --dir="/root/ssl-build" --set-country="COUNTRY" \
  --set-state="STATE" --set-city="CITY" --set-org="ORGANIZATION" \
  --set-org-unit="ORGANIZATION UNIT" --set-email="name@example.com" \
  --set-hostname=PROXY --set-cname="proxy.example.com"

The files to use will be

  1. /root/ssl-build/RHN-ORG-TRUSTED-SSL-CERT as the root CA,

  2. /root/ssl-build/<hostname>/server.crt as the proxy certificate and

  3. /root/ssl-build/<hostname>/server.key as the proxy certificate’s key.

7.1. Web UI를 사용하여 프록시 구성 생성

Procedure: Generating a Proxy Container Configuration Using Web UI
  1. Web UI에서 Systems  프록시 구성으로 이동하여 필요한 데이터를 입력합니다.

  2. In the Proxy FQDN field type fully qualified domain name for the proxy.

  3. In the Parent FQDN field type fully qualified domain name for the SUSE Multi-Linux Manager Server or another SUSE Multi-Linux Manager Proxy.

  4. In the Proxy SSH port field type SSH port on which SSH service is listening on SUSE Multi-Linux Manager Proxy. Recommended is to keep default 8022.

  5. In the Max Squid cache size [MB] field type maximal allowed size for Squid cache. Recommended is to use at most 80% of available storage for the containers.

    2GB는 기본 프록시 squid 캐시 크기입니다. 사용자의 환경에 적합하도록 조정해야 합니다.

    In the SSL certificate selection list choose if a new server certificate should be generated for SUSE Multi-Linux Manager Proxy, an existing one should be used, or the SSL part should be skipped entirely. You can consider generated certificates as SUSE Multi-Linux Manager builtin (self signed) certificates. If SUSE Multi-Linux Manager server runs on Kubernetes, the generated certificate option is not possible and replaced with no SSL certificate as they are managed outside the containers.

    Depending on the choice then provide either path to signing CA certificate to generate a new certificate or path to an existing certificate and its key to be used as proxy certificate. If the SSL part is skipped, the resulting configuration archive does not carry server_crt, server_key or ca_crt; the deployment is then responsible for providing the proxy certificate and root CA out-of-band (for Kubernetes deployments this means creating proxy-cert and uyuni-ca manually — see the TLS setup section of the Kubernetes proxy deployment page).

    The CA certificates generated by the server are stored in the /var/lib/containers/storage/volumes/root/_data/ssl-build directory.

    기존 또는 사용자 정의 인증서와 기업 및 중간 인증서의 개념에 대한 자세한 내용은 SSL 인증서 임포트에서 확인할 수 있습니다.

  6. Click Generate to register a new proxy FQDN in the SUSE Multi-Linux Manager Server and generate a configuration archive (config.tar.gz) containing details for the container host.

  7. 잠시 후 다운로드할 파일이 표시됩니다. 이 파일을 로컬에 저장합니다.

7.2. Generate Proxy Configuration With spacecmd and Self-Signed Certificate

You can generate a Proxy configuration using spacecmd. This is only possible if SUSE Multi-Linux Manager server runs on podman and has a self-signed root CA certificate.

절차: spacecmd 및 자체 서명 인증서를 사용하여 프록시 구성 생성
  1. 컨테이너 호스트에 SSH로 연결합니다.

  2. 서버 및 프록시 FQDN을 바꾸는 다음 명령을 실행합니다.

    mgrctl exec -ti 'spacecmd proxy_container_config_generate_cert -- dev-pxy.example.com dev-srv.example.com 2048 email@example.com -o /tmp/config.tar.gz'
  3. 서버 컨테이너에서 생성된 구성을 복사합니다.

    mgrctl cp server:/tmp/config.tar.gz .

7.3. Generate Proxy Configuration With spacecmd and Custom Certificate

You can generate a Proxy configuration using spacecmd for custom certificates rather than the default self-signed certificates.

절차: spacecmd 및 사용자 정의 인증서를 사용하여 프록시 구성 생성
  1. 서버 컨테이너 호스트에 SSH로 연결합니다.

  2. Execute the following commands, replacing the Server and Proxy FQDN:

    for f in ca.crt proxy.crt proxy.key; do
      mgrctl cp $f server:/tmp/$f
    done
    mgrctl exec -ti 'spacecmd proxy_container_config -- -p 8022 pxy.example.com srv.example.com 2048 email@example.com /tmp/ca.crt /tmp/proxy.crt /tmp/proxy.key -o /tmp/config.tar.gz'
  3. 설정에서 중간 CA를 사용하는 경우, 이를 복사하여 -i 옵션과 함께 명령에 포함시킵니다(필요한 경우 여러 번 제공 가능).

    mgrctl cp intermediateCA.pem server:/tmp/intermediateCA.pem
    mgrctl exec -ti 'spacecmd proxy_container_config -- -p 8022 -i /tmp/intermediateCA.pem pxy.example.com srv.example.com 2048 email@example.com /tmp/ca.crt /tmp/proxy.crt /tmp/proxy.key -o /tmp/config.tar.gz'
  4. 서버 컨테이너에서 생성된 구성을 복사합니다.

    mgrctl cp server:/tmp/config.tar.gz .

7.4. Generate Proxy Configuration With spacecmd and no Certificate

You can generate a Proxy configuration using spacecmd with no TLS certificates. This is needed for SUSE Multi-Linux Manager running on Kubernetes as the certificates are handled outside of the containers.

Procedure: Generating Proxy Configuration with spacecmd and no Certificate
  1. 서버 컨테이너 호스트에 SSH로 연결합니다.

  2. Execute the following commands, replacing the Server and Proxy FQDN:

    for f in ca.crt proxy.crt proxy.key; do
      mgrctl cp $f server:/tmp/$f
    done
    mgrctl exec -ti 'spacecmd proxy_container_config_nossl -- -p 8022 pxy.example.com srv.example.com 2048 email@example.com -o /tmp/config.tar.gz'
  3. 서버 컨테이너에서 생성된 구성을 복사합니다.

    mgrctl cp server:/tmp/config.tar.gz .

8. 프록시 구성 전송

Web UI는 구성 아카이브를 생성합니다. 이 아카이브는 프록시 컨테이너 호스트에서 사용할 수 있도록 설정해야 합니다.

절차: 프록시 구성 복사
  1. If not already done, copy the configuration archive (config.tar.gz) generated in the previous step from the server container to the server host:

    mgrctl cp server:/root/config.tar.gz .
  2. If not already done, copy the files from the server host to the proxy host:

    scp config.tar.gz <proxy-FQDN>:/root

9. Install packages and enable podman

Before using proxy, some packages need to be present on host and podman needs to be running.

Procedure: Preparing the prerequisites
  1. On the proxy host, ensure that the following packages are installed:

    • podman

    • mgrpxy-bash-completion

    • suse-multi-linux-manager-<version>-<arch>-proxy-httpd-image

    • suse-multi-linux-manager-<version>-<arch>-proxy-salt-broker-image

    • suse-multi-linux-manager-<version>-<arch>-proxy-squid-image

    • suse-multi-linux-manager-<version>-<arch>-proxy-ssh-image

    • suse-multi-linux-manager-<version>-<arch>-proxy-tftpd-image

      For example, for version 5.2 and architecture of x86_64, the package name would be suse-multi-linux-manager-5.1-x86_64-proxy-httpd-image.

  2. Start the Podman service on the proxy host by rebooting the system, or running a command:

    systemctl enable --now podman.service
  3. On the proxy host, install the Proxy with:

    mgrpxy install podman config.tar.gz

10. Start the SUSE Multi-Linux Manager proxy

Container can now be started with the mgrpxy command:

Procedure: Starting and checking proxy status
  1. 다음을 호출하여 프록시 시작:

    mgrpxy start
  2. 다음을 호출하여 컨테이너 상태 확인:

    mgrpxy status

    Five SUSE Multi-Linux Manager Proxy containers should be present and should be part of the proxy-pod container pod:

    • proxy-salt-broker

    • proxy-httpd

    • proxy-tftpd

    • proxy-squid

    • proxy-ssh

11. Use a custom container image for a service

By default, the SUSE Multi-Linux Manager Proxy suite is configured to use the same image version and registry path for each of its services. However, it is possible to override the default values for a specific service using the install parameters ending with -tag and -image.

예:

mgrpxy install podman --httpd-tag 0.1.0 --httpd-image registry.opensuse.org/uyuni/proxy-httpd /path/to/config.tar.gz

It adjusts the configuration file for the httpd service, where registry.opensuse.org/uyuni/proxy-httpds is the image to use and 0.1.0 is the version tag, before restarting it.

값을 기본값으로 재설정하려면 해당 파라미터 없이 설치 명령을 다시 실행합니다.

mgrpxy install podman /path/to/config.tar.gz

이 명령은 먼저 모든 서비스의 구성을 전역 기본값으로 재설정한 다음 다시 로드합니다.