Ubuntu 클라이언트 등록

이 섹션에는 Ubuntu 운영 체제를 실행하는 클라이언트를 등록하는 방법에 대한 정보가 포함되어 있습니다.

  • 패키지 및 메타데이터는 SUSE가 아닌 Ubuntu에서 제공합니다.

  • 지원되는 제품에 대해서는 지원되는 Ubuntu 기능의 릴리스 노트 및 지원 테이블을 참조하십시오.

SUSE Multi-Linux Manager은 Ubuntu 22.04 LTS 및 24.04 LTS 클라이언트를 Salt를 사용하여 지원합니다.

부팅은 Ubuntu 클라이언트를 시작하고 리포지토리 설정 및 프로파일 업데이트와 같은 초기 상태 실행을 지원합니다. 그러나 Ubuntu의 루트는 기본적으로 비활성화되어 있으므로 부팅을 사용하려면 Python에 대한 sudo 권한이 있는 기존 사용자가 필요합니다.

Canonical은 SUSE Multi-Linux Manager를 지지하거나 지원하지 않습니다.

1. 소프트웨어 채널 추가

Ubuntu 클라이언트를 SUSE Multi-Linux Manager 서버에 등록하기 전에 필요한 소프트웨어 채널을 추가하고 이 채널을 동기화해야 합니다.

다음 섹션의 설명은 주로 x86_64 아키텍처를 기준으로 합니다. 적절한 경우 다른 아키텍처로 교체하십시오.

이 절차에 필요한 제품은 다음과 같습니다.

Table 1. Ubuntu 제품 - WebUI
OS 버전 제품 이름

Ubuntu 24.04

Ubuntu 24.04

Ubuntu 22.04

Ubuntu 22.04

절차 소프트웨어 채널 추가
  1. SUSE Multi-Linux Manager Web UI에서 관리자  설정 마법사  제품으로 이동합니다.

  2. 검색 창을 사용해 클라이언트 운영 체제 및 아키텍처에 적절한 제품을 찾아 적절한 제품의 확인란을 선택합니다. 이것은 모든 필수 채널을 자동으로 확인합니다. 또한 include recommended 토글이 켜져 있는 한 모든 추천 채널이 선택됩니다. 화살표를 클릭하여 관련 제품의 전체 목록을 보고 필요한 추가 제품이 체크되어 있는지 확인합니다.

  3. 제품 추가를 클릭하고 제품이 동기화를 마칠 때까지 기다립니다.

또는 명령 프롬프트에서 채널을 추가할 수 있습니다. 이 절차에 필요한 채널은 다음과 같습니다.

Table 2. Ubuntu 채널 - CLI
OS 버전 기본 채널

Ubuntu 24.04

ubuntu-2404-amd64-main-amd64

Ubuntu 22.04

ubuntu-2204-amd64-main-amd64

절차 명령 프롬프트에서 소프트웨어 채널 추가
  1. SUSE Multi-Linux Manager컨테이너 호스트의 명령 프롬프트에서 루트 사용자로 적절한 채널을 추가합니다:

    mgrctl exec -- mgr-sync add channel <channel_label_1>
    mgrctl exec -- mgr-sync add channel <channel_label_2>
    mgrctl exec -- mgr-sync add channel <channel_label_n>
  2. 동기화가 자동으로 시작됩니다. 채널을 수동으로 동기화하려면 다음을 사용하십시오:

    mgrctl exec -- mgr-sync sync --with-children <channel_name>
  3. 계속하기 전에 동기화가 완료되었는지 확인합니다.

2. Ubuntu ESM 패키지 미러링

Canonical은 확장 보안 유지 관리 (ESM) 패키지를 Ubuntu Pro 사용자 및 고객에게 제공합니다. 이 패키지는 여러 운영 체제 구성 요소 및 선택된 애플리케이션에 대해 더 긴 유지 관리 (10년에서 12년)을 제공합니다.

이러한 리포지토리는 SUSE Multi-Linux Manager Ubuntu Pro에 등록된 시스템에서 필요한 GPG 키 및 개인 Bearer 토큰을 추출하면 내에서 동기화할 수도 있습니다.

2.1. GPG 키 및 Bearer 토큰 추출

Ubuntu Pro에 Ubuntu 호스트를 등록합니다. 개인 등록 토큰은 Ubuntu Pro 대시보드에서 찾을 수 있습니다. 이를 위해서는 Ubuntu One 계정이 필요합니다.

sudo apt-get install ubuntu-advantage-tools
sudo pro attach <perosnal_token>

등록 후, 파일 `/etc/apt/auth.conf.d/90ubuntu-advantage`에서 Bearer 토큰을 찾을 수 있습니다:

machine esm.ubuntu.com/apps/ubuntu/ login bearer password <token>  # ubuntu-pro-client
machine esm.ubuntu.com/infra/ubuntu/ login bearer password <token>  # ubuntu-pro-client

리포지토리당 1개의 전용 bearer 토큰이 사용됩니다.

SUSE Multi-Linux Manager 내에 다음 리포지토리를 구성합니다:

2.2. Ubuntu ESM 리포지토리 구성

리포지토리를 만들려면 다음 URL을 사용합니다.

Table 3. Ubuntu ESM 리포지토리
URL 설명

https://bearer:<token>@esm.ubuntu.com/infra/ubuntu/dists/<release>-infra-updates/main/binary-<arch>/

운영 체제 기능 업데이트

https://bearer:<token>@esm.ubuntu.com/infra/ubuntu/dists/<release>-infra-security/main/binary-<arch>/

운영 체제 보안 업데이트

https://bearer:<token>@esm.ubuntu.com/apps/ubuntu/dists/<release>-apps-updates/main/binary-<arch>/

애플리케이션 기능 업데이트

https://bearer:<token>@esm.ubuntu.com/apps/ubuntu/dists/<release>-apps-security/main/binary-<arch>/

애플리케이션 보안 업데이트

`<token>`을(를) 개인 Bearer Token으로 교체하십시오. 또한, `arch`와 `release`은 다음 값 중 하나로 교체해야 합니다:

Table 4. Ubuntu ESM 아키텍처 및 릴리스
아키텍처 릴리스

amd64, arm64, armel, armhf, i386, powerpc, ppc64el, s390x

bionic, focal, jammy, noble, trusty, xenial

SUSE Multi-Linux Manager이(가) 리포지토리를 동기화하려면, 해당 GPG 키(ubuntu-advantage-esm-infra-trusty.gpg, ubuntu-advantage-esm-apps.gpg)를 가져와야 합니다. 이들은 /etc/apt/trusted.gpg.d 아래 Ubuntu Pro에 등록된 시스템에 위치해 있습니다. 이 파일들을 SUSE Multi-Linux Manager 시스템으로 복사하고 다음과 같이 가져옵니다:

mgradm gpg add /path/to/gpg.key

이미 동기화된 Ubuntu 부모 채널 아래에 적절한 자식 채널을 만듭니다. 그 후, 리포지토리를 동기화할 수 있습니다.

여기에서 보여지는 절차는 구독 제한을 우회하는 데 사용할 수 있지만, 이는 서비스 약관 위반에 해당하며 법적 결과를 초래할 수 있습니다. 사용되는 시스템 수에 대해 항상 충분한 구독이 있어야 합니다.

3. 동기화 상태 확인

절차 Web UI에서 동기화 진행 상태 확인
  1. SUSE Multi-Linux Manager Web UI에서 관리자  설정 마법사로 이동하여 Products 탭을 선택합니다. 이 대화 상자는 동기화되는 중에 각 제품에 대한 진행률 막대를 표시합니다.

  2. 또는 소프트웨어  관리  채널로 이동한 다음, 리포지토리에 연결된 채널을 클릭할 수 있습니다. Repositories 탭으로 이동한 다음 `Sync`을(를) 클릭하고 `Sync Status`을(를) 확인하십시오.

절차 명령 프롬프트에서 동기화 진행 상태 확인
  1. 테일링 하기 전 사용 가능한 로그를 나열하려면 컨테이너 호스트에서 다음 명령을 실행합니다.

    mgrctl exec ls /var/log/rhn/reposync/
  2. 컨테이너 호스트의 명령 프롬프트에서 SUSE Multi-Linux Manager 루트 사용자로 채널 로그 파일의 동기화를 확인합니다.

    mgrctl exec -ti -- tail -f /var/log/rhn/reposync/<channel-label>.log
  3. 각 하위 채널은 동기화가 진행되는 동안 자체 로그를 생성합니다. 동기화가 완료되었는지 알아보려면 모든 기본 및 하위 채널 로그 파일을 확인해야 합니다.

Ubuntu 채널은 매우 클 수 있습니다. 동기화는 때때로 몇 시간이 걸릴 수 있습니다.

4. GPG 키 관리

클라이언트는 소프트웨어 패키지가 설치되기 전에 GPG 키를 사용하여 패키지의 진위를 확인합니다. 신뢰할 수 있는 소프트웨어만 클라이언트에 설치할 수 있습니다.

GPG 키를 신뢰하는 것은 클라이언트의 보안을 위해 중요합니다. 어떤 키가 필요하고 신뢰할 수 있는지를 결정하는 것은 관리자의 임무입니다. GPG 키가 신뢰되지 않을 때 소프트웨어 채널을 사용할 수 없기 때문에, 클라이언트에 채널을 할당하는 결정은 키를 신뢰하는 결정에 달려 있습니다.

GPG 키에 대한 자세한 정보는 GPG 키을 참조하십시오.

5. 루트 액세스

Ubuntu의 루트 사용자는 SSH 액세스에 대해 기본적으로 비활성화되어 있습니다.

일반 사용자로 온보딩하려면 sudoers 파일을 편집해야 합니다.

이 문제는 Ubuntu의 자가 설치된 버전에서 발생합니다. 기본 사용자가 설치 시 관리 권한을 부여받았다면, sudo`를 사용하여 권한 상승을 수행하려면 비밀번호가 필요합니다. 클라우드 인스턴스에서는 `cloud-init`이(가) 자동으로 `/etc/sudoers.d 아래에 파일을 생성하고 비밀번호 없이 `sudo`을(를) 통해 권한 상승을 부여하기 때문에 이러한 일이 발생하지 않습니다.

5.1. 루트 사용자 액세스 권한 부여

절차 루트 액세스 부여
  1. 클라이언트에서 sudoers 파일을 편집하십시오:

    sudo visudo

    이 줄을 sudoers 파일의 끝에 추가하여 사용자에게 sudo 접근 권한을 부여합니다. `<user>`을(를) Web UI에서 클라이언트를 부팅하는 사용자의 이름으로 교체하십시오:

    <user>  ALL=NOPASSWD: /usr/bin/python, /usr/bin/python2, /usr/bin/python3, /var/tmp/venv-salt-minion/bin/python

이 절차는 클라이언트를 등록하는 데 필요한 비밀번호 없이 루트 액세스를 부여합니다. 클라이언트가 성공적으로 설치되면 루트 권한으로 실행되므로 더 이상 액세스가 필요하지 않습니다. 클라이언트가 성공적으로 설치된 후 sudoers 파일에서 이 줄을 제거하는 것이 좋습니다.

5.2. SSH를 통해 설치 생성된 사용자로 부트스트랩

SSH를 통해 Ubuntu 클라이언트를 부팅하려면 설치 시 생성된 사용자를 sudo 그룹에 추가해야 합니다. 그런 다음 클라이언트에서 부팅 스크립트를 실행합니다.

절차 설치 시 생성된 사용자를 sudo 그룹에 추가하고 SSH를 통한 부팅
  1. 클라이언트에서 루트 권한으로 명령줄에서 실행합니다(`<username>`을(를) 설치 시 생성된 사용자의 이름으로 바꾸기):

    sudo usermod -aG sudo <username>
  2. 명령줄에서 클라이언트 시스템을 부팅합니다(`<SERVER_FQDN>`을(를) SUSE Multi-Linux Manager 서버의 정규화된 도메인 이름으로 바꾸기):

    sudo su -
    curl -Sks https://<SERVER_FQDN>/pub/bootstrap/bootstrap-script.sh | /bin/bash

Ubuntu은(는) 위와 같이 `sudo su -`을(를) 실행한 후 클라이언트 시스템의 명령줄에서 해당 Ubuntu 부팅 스크립트를 사용해야만 부팅할 수 있습니다. 루트가 기본적으로 SUSE Multi-Linux Manager Web UI에서 비활성화되어 있고, Web UI이 Ubuntu 설치 시 생성된 사용자의 권한 상승을 허용하지 않기 때문에 Ubuntu를 통해 부팅할 수 없습니다.

6. 클라이언트 등록

클라이언트를 등록하려면 부팅 리포지토리가 필요합니다. 기본적으로 부팅 리포지토리는 자동으로 생성되며, 모든 동기화된 제품에 대해 매일 재생성됩니다. 컨테이너 호스트의 명령 프롬프트에서 부팅 리포지토리를 수동으로 생성할 수 있습니다:

mgrctl exec -ti mgr-create-bootstrap-repo

클라이언트를 등록하는 방법에 대한 자세한 내용은 클라이언트 등록을(를) 참조하십시오.