RPM 패키지를 설치하도록 VM 구성

이 페이지에서는 Artifact Registry Yum 저장소에서 RPM 패키지를 설치하도록 VM을 구성하는 방법을 설명합니다. Artifact Registry Yum 저장소는 yumdnf 클라이언트를 지원합니다.

시작하기 전에

대상 Yum 저장소가 없으면 새 저장소를 만듭니다. 비공개 저장소 또는 인증이 필요 없는 공개 저장소를 만들 수 있습니다.

Yum 저장소에 액세스하도록 VM 준비

VM이 Yum 저장소에 액세스하도록 준비하려면 yum 또는 dnf 클라이언트 도구를 사용합니다.

비공개 저장소

  1. 액세스 권한을 부여하는 데 사용할 서비스 계정을 선택합니다.

    • Compute Engine VM의 경우 기본 서비스 계정일 수 있습니다. Artifact Registry는 서비스 계정을 사용하여 모든 VM의 Compute Engine VM 서비스 계정 사용자 인증 정보를 자동으로 가져옵니다.
    • 기타 VM의 경우 VM 대신 사용할 서비스 계정을 만들거나 선택합니다. VM을 구성하려면 서비스 계정 키 파일의 위치가 필요합니다. 서비스 계정 페이지에서 기존 계정의 키를 보고 만들 수 있습니다.
  2. 서비스 계정에 저장소 액세스 권한을 부여합니다.

  3. VM이 저장소에 액세스할 수 있도록 준비합니다.

    Compute Engine VM

    1. VM에 cloud-platform API 액세스 범위를 할당합니다. 액세스 범위 설정에 대한 자세한 내용은 인스턴스의 서비스 계정 및 액세스 범위 변경을 참조하세요.

    2. 다음 명령어를 사용하여 패키지 캐시를 업데이트합니다.

      sudo yum makecache
      
    3. 다음 명령어를 사용하여 VM에 Artifact Registry 플러그인을 설치합니다.

      sudo yum install FORMAT-plugin-artifact-registry
      

      다음을 바꿉니다.

      • FORMAT을 다음 중 하나로 바꿉니다.
        • yum(운영체제가 Enterprise Linux 7 이하인 경우)
        • dnf(운영체제가 Enterprise Linux 8 이상인 경우)

    기타 VM

    1. 다음 명령어를 사용하여 RPM 서명 키를 설치합니다.

      sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
    2. 다음 콘텐츠로 /etc/yum.repos.d/artifact-registry-plugin.repo라는 파일을 만듭니다.

      [ar-plugin]
      name=Artifact Registry Plugin
      baseurl=https://packages.cloud.google.com/yum/repos/FORMAT-plugin-artifact-registry-DISTRO-stable
      enabled=1
      gpgcheck=1
      

      다음을 바꿉니다.

      • FORMAT을 다음 중 하나로 바꿉니다.
        • yum(운영체제가 Enterprise Linux 7 이하인 경우)
        • dnf(운영체제가 Enterprise Linux 8 이상인 경우)
      • elX 형식의 Red Hat Enterprise Linux 주 출시 버전 DISTRO. 여기서 X은 출시 버전입니다. 유효한 DISTRO 값의 예시는 el7el8입니다.
    3. 다음 명령어를 사용하여 Yum을 업데이트합니다.

      sudo yum makecache
      
    4. 다음 명령어를 사용하여 VM에 Artifact Registry 플러그인을 설치합니다.

      yum install FORMAT-plugin-artifact-registry
      

      FORMAT을 다음 중 하나로 바꿉니다.

      • yum(운영체제가 Enterprise Linux 7 이하인 경우)
      • dnf(운영체제가 Enterprise Linux 8 이상인 경우)
    5. artifact-registry.conf 파일에서 #service_account_json = "/path/to/creds.json" 줄을 찾은 다음 이 줄의 주석 처리를 삭제하고 서비스 계정 키의 경로를 추가합니다.

      • Enterprise Linux 7 이하 운영체제의 경우 구성 파일 경로는 /etc/yum/pluginconf.d/artifact-registry.conf입니다.
      • Enterprise Linux 8 이상 운영체제의 경우 구성 파일 경로는 /etc/dnf/plugins/artifact-registry.conf입니다.

      구성 파일 항목:

      service_account_json = "PATH_TO_SERVICE_ACCOUNT_KEY"
      

      여기서 PATH_TO_SERVICE_ACCOUNT_KEY를 서비스 계정 키 JSON 파일 경로로 바꾸세요.

공개 저장소

  1. 저장소에 대한 공개 액세스를 구성합니다.

표준 Yum 저장소에 액세스하도록 VM 구성

VM이 Yum 저장소에 액세스하도록 구성하려면 yum 또는 dnf 클라이언트 도구를 사용합니다.

  1. gcloud beta artifacts print-settings yum 명령어를 실행하여 VM 구성 명령어를 생성합니다.

    gcloud beta artifacts print-settings yum \
        --repository=REPOSITORY \
        --location=LOCATION
    

    다음을 바꿉니다.

    • LOCATION은 리전 또는 멀티 리전 위치입니다.
    • REPOSITORY는 Artifact Registry 저장소의 이름입니다.

    출력은 다음과 비슷합니다.

    # To configure your package manager with this repository:
    
    # Update Yum:
    sudo yum makecache
    
    # Install the Yum credential helper:
    sudo yum install yum-plugin-artifact-registry
    
    # Configure your VM to access Artifact Registry packages using the following
    # command:
    
    sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL
    [REPOSITORY]
    name=REPOSITORY
    baseurl=https://LOCATION-yum.pkg.dev/projects/PROJECT/REPOSITORY
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOL
    
    # Update Yum:
    sudo yum makecache
    
  2. print-settings 명령어 출력에서 tee 명령어를 사용하여 저장소에서 패키지를 가져오도록 yum 클라이언트 도구를 구성합니다.

    예를 들어 my-project 프로젝트와 us-central1 위치에 있는 공개 my-repo의 패키지를 설치하려면 다음 명령어를 사용합니다.

    sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL
    [my-repo]
    name=My Repository
    baseurl=https://us-central1-yum.pkg.dev/projects/my-project/my-repo
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOL
    
  3. 다음 명령어로 저장소 소스를 업데이트합니다.

    sudo yum makecache
    

이제 Yum을 저장소에 연결할 수 있습니다.

추가 Yum 저장소를 만드는 경우 /etc/yum.repos.d/에서 각 저장소에 대해 .repo 파일을 만듭니다. sudo yum update를 다시 실행하여 저장소 소스를 업데이트합니다.

원격 Yum 저장소에 액세스하도록 VM 구성

표준 업스트림 Yum 저장소 대신 원격 Yum 저장소만 사용하도록 VM을 구성하려면 VM의 저장소 목록에 있는 표준 저장소를 원격 저장소로 바꿉니다.

표준 저장소가 별도의 저장소 파일(.repo) 대신 구성 파일에 정의된 경우 구성 파일에서 항목을 삭제하여 원격으로 대체하거나 /etc/yum.repos.d/ 디렉터리에 새 저장소 파일을 정의할 수 있습니다.

  1. VM 인스턴스 페이지로 이동합니다.

  2. VM이 있는 행에서 SSH를 클릭합니다. VM의 터미널 세션이 있는 새 창이 열립니다.

  3. VM의 /etc/yum.repos.d/ 폴더를 열고 표준 업스트림 저장소가 포함된 적절한 저장소 파일(.repo)을 찾습니다. 기본 저장소라고도 합니다. 기본 저장소는 [base] 또는 [baseos]를 포함하는 Yum 저장소 이름으로 식별할 수 있습니다.

  4. 기본 저장소를 완전히 바꾸려면 [base]에서 기본 설정을 삭제합니다.

  5. [base] 아래에 다음을 추가합니다.

    [base]
    name=YUM_REPOSITORY_NAME
    baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
    enabled=1
    gpgcheck=1
    

    다음을 바꿉니다.

  • YUM_REPOSITORY_NAME을 원격 Yum 저장소에 대한 한 단어로 된 고유 저장소 ID로 바꿉니다. 이 이름은 구성을 삭제한 경우 업스트림 저장소 이름과 일치하거나, 원격 저장소로 식별하기 위해 다른 이름과 일치할 수 있습니다.
  • REPOSITORY_NAME을 인간이 읽을 수 있는 저장소 이름으로 바꿉니다.
    • LOCATION을 원격 저장소의 리전 또는 멀티 리전 위치로 바꿉니다.
  • PROJECT_ID를 VM의 프로젝트 ID로 바꿉니다.
  • REMOTE_REPOSITORY_NAME을 원격 저장소에 지정한 이름으로 바꿉니다.

원격 Yum 저장소를 백업으로 사용

표준 업스트림을 첫 번째 옵션으로 유지하고 원격 저장소를 대체 옵션으로 추가하려면 저장소 파일에 표준 업스트림을 유지하고 /etc/yum.repos.d 폴더.에 새 저장소 파일을 만들 수 있습니다.

/etc/yum.repos.d 폴더에 새 저장소 파일을 만들려면 다음 명령어를 실행하세요.

sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[YUM_REPOSITORY_NAME]
name=REPOSITORY_NAME
baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
enabled=1
gpgcheck=1
EOF

다음을 바꿉니다.

  • YUM_REPOSITORY_NAME을 원격 Yum 저장소에 대한 한 단어로 된 고유 저장소 ID로 바꿉니다.
  • REPOSITORY_NAME을 인간이 읽을 수 있는 저장소 이름으로 바꿉니다.
    • LOCATION을 원격 저장소의 리전 또는 멀티 리전 위치로 바꿉니다.
  • PROJECT_ID를 VM의 프로젝트 ID로 바꿉니다.
  • REMOTE_REPOSITORY_NAME을 원격 저장소에 지정한 이름으로 바꿉니다.

예를 들어 다음 명령어는 Yum이 저장소 my-repo를 설치할 때 my-project 프로젝트 및 us-east1 위치에 my-repo 저장소를 가져오도록 VM을 구성합니다.

sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[my-repo]
name=My Repository
baseurl=https://us-east1-yum.pkg.dev/remote/my-project/my-repo
enabled=1
gpgcheck=1
EOF

다음 단계