11장. RHEL 이미지 빌더를 사용하여 클라우드 이미지 준비 및 업로드
RHEL 이미지 빌더는 다양한 클라우드 플랫폼에서 사용할 준비가 된 사용자 정의 시스템 이미지를 생성할 수 있습니다. 클라우드에서 사용자 지정 RHEL 시스템 이미지를 사용하려면 선택한 출력 유형을 사용하여 RHEL 이미지 빌더로 시스템 이미지를 생성하고, 이미지를 업로드하도록 시스템을 구성하고, 이미지를 클라우드 계정에 업로드합니다. RHEL 웹 콘솔의 이미지 빌더 애플리케이션을 통해 사용자 지정 이미지 클라우드를 푸시할 수 있으며, AWS 및 Microsoft Azure 클라우드와 같이 당사가 지원하는 서비스 공급자 서브 세트에 사용할 수 있습니다. AWS Cloud AMI에 직접 이미지 생성 및 자동 업로드 및 Microsoft Azure 클라우드에 직접 VHD 이미지 생성 및 자동 업로드를 참조하십시오.
11.1. AWS에 AMI 이미지 준비 및 업로드 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 이미지를 생성하여 RHEL 이미지 빌더를 사용하여 수동으로 또는 자동으로 AWS 클라우드로 업데이트할 수 있습니다.
11.1.1. AWS AMI 이미지 수동 업로드 준비 링크 복사링크가 클립보드에 복사되었습니다!
AWS AMI 이미지를 업로드하기 전에 이미지를 업로드하는 시스템을 구성해야 합니다.
사전 요구 사항
- AWS IAM 계정 관리자에 대한 액세스 키 ID가 구성되어 있어야 합니다.
- 쓰기 가능한 S3 버킷이 준비되어 있어야 합니다. S3 버킷 생성 을 참조하십시오.
프로세스
Python 3 및
pip툴을 설치합니다.# dnf install python3 python3-pippip:을 사용하여 AWS 명령줄 툴 을 설치합니다.# pip3 install awscli프로필을 설정합니다. 터미널에 인증 정보, 지역 및 출력 형식을 제공하라는 메시지가 표시됩니다.
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:버킷 이름을 정의하고 버킷을 생성합니다.
$ BUCKET=bucketname $ aws s3 mb s3://$BUCKET버킷 이름을실제 버킷 이름으로 교체합니다. 전역적으로 고유한 이름이어야 합니다. 결과적으로 버킷이 생성됩니다.S3 버킷에 액세스할 수 있는 권한을 부여하려면 이전에는 AWS Identity and Access Management(IAM)에서
vmimportS3 역할을 생성합니다.신뢰 정책 구성을 사용하여 JSON 형식으로
trust-policy.json파일을 생성합니다. 예를 들면 다음과 같습니다.{ "Version": "2022-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:Externalid": "vmimport" } } }] }역할 정책 구성을 사용하여 JSON 형식으로
role-policy.json파일을 생성합니다. 예를 들면 다음과 같습니다.{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket"], "Resource": ["arn:aws:s3:::%s", "arn:aws:s3:::%s/"] }, { "Effect": "Allow", "Action": ["ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe"], "Resource": "*" }] } $BUCKET $BUCKETtrust-policy.json파일을 사용하여 Amazon Web Services 계정에 대한 역할을 생성합니다.$ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.jsonrole-policy.json파일을 사용하여 인라인 정책 문서를 삽입합니다.$ aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
11.1.2. CLI를 사용하여 AWS에 AMI 이미지를 수동으로 업로드 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 이미지 빌더를 사용하여 CLI를 사용하여 ami 이미지를 빌드하고 수동으로 Amazon AWS Cloud 서비스 공급자에 직접 업로드할 수 있습니다.
사전 요구 사항
프로세스
텍스트 편집기를 사용하여 다음 내용으로 구성 파일을 생성합니다.
provider = "aws" [settings] accessKeyID = "AWS_ACCESS_KEY_ID" secretAccessKey = "AWS_SECRET_ACCESS_KEY" bucket = "AWS_BUCKET" region = "AWS_REGION" key = "IMAGE_KEY"필드의 값을
accessKeyID,secretAccessKey,버킷에 대한 인증 정보로바꿉니다.IMAGE_KEY값은 EC2에 업로드할 VM 이미지의 이름입니다.- 파일을 CONFIGURATION-FILE.toml로 저장하고 텍스트 편집기를 종료합니다.
작성을 시작하여 AWS에 업로드합니다.
# composer-cli compose start blueprint-name image-type image-key configuration-file.toml교체:
- 생성한 블루프린트의 이름이 있는 블루프린트- 이름
-
ami이미지 유형이 있는 이미지 유형. - EC2에 업로드할 VM 이미지의 이름이 있는 이미지 키 입니다.
클라우드 공급자의 구성 파일 이름이 있는 configuration-file.toml.
참고사용자 지정 이미지를 보낼 버킷에 대한 올바른 AWS IAM(Identity and Access Management) 설정이 있어야 합니다. 이미지를 업로드하려면 먼저 버킷에 정책을 설정해야 합니다.
이미지 빌드 상태를 확인합니다.
# composer-cli compose status이미지 업로드 프로세스가 완료되면 "FINISHED" 상태가 표시됩니다.
검증
이미지 업로드에 성공했는지 확인하려면 다음을 수행하십시오.
-
메뉴에서 EC2 에 액세스하고 AWS 콘솔에서 올바른 리전을 선택합니다. 이미지가 성공적으로 업로드되었음을 나타내기 위해
사용 가능한상태가 있어야 합니다. - 대시보드에서 이미지를 선택하고 클릭합니다.
11.1.3. AWS Cloud AMI에 이미지 생성 및 자동 업로드 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 이미지 빌더를 사용하여 (.raw) 이미지를 생성하고 AWS에 업로드 확인란을 선택하여 Amazon AWS Cloud AMI 서비스 공급자에 직접 생성하는 출력 이미지를 자동으로 푸시할 수 있습니다.
사전 요구 사항
-
시스템에 대한
root또는wheel그룹 사용자 액세스 권한이 있어야 합니다. - 브라우저에서 RHEL 웹 콘솔의 RHEL 이미지 빌더 인터페이스를 열었습니다.
- 블루프린트를 생성했습니다. 웹 콘솔 인터페이스에서 블루프린트 생성을 참조하십시오.
- AWS IAM 계정 관리자에 Access Key ID가 구성되어 있어야 합니다.
- 쓰기 가능한 S3 버킷 이 준비되어 있어야 합니다.
프로세스
- RHEL 이미지 빌더 대시보드에서 이전에 생성한 블루프린트 이름을 클릭합니다.
- 탭을 선택합니다.
를 클릭하여 사용자 지정 이미지를 생성합니다.
이미지 생성 창이 열립니다.
-
유형 드롭다운 메뉴 목록에서
Amazon Machine Image Disk (.raw)를 선택합니다. - Upload to AWS (AWS에 업로드) 확인란을 선택하여 이미지를 AWS Cloud에 업로드하고 를 클릭합니다.
AWS에 대한 액세스를 인증하려면 해당 필드에
AWS 액세스 키 ID및AWS 시크릿 액세스 키를입력합니다. 을 클릭합니다.참고새 액세스 키 ID를 생성하는 경우에만 AWS 시크릿 액세스 키를 볼 수 있습니다. 시크릿 키를 모르는 경우 새 액세스 키 ID를 생성합니다.
-
이미지 이름 필드에
이미지 이름을입력하고 AmazonS3 버킷 이름 필드에 Amazon 버킷 이름을입력하고 사용자 지정 이미지를 추가할 버킷의AWS 리전필드를 입력합니다. 을 클릭합니다. 정보를 검토하고 을 클릭합니다.
필요한 경우 를 클릭하여 잘못된 세부 정보를 수정합니다.
참고사용자 정의 이미지를 보낼 버킷에 대해 올바른 IAM 설정이 있어야 합니다. 이 절차에서는 IAM 가져오기 및 내보내기를 사용하므로 이미지를 업로드하기 전에 버킷에 정책을 설정해야 합니다. 자세한 내용은 IAM 사용자에 대한 필수 권한을 참조하십시오.
-
유형 드롭다운 메뉴 목록에서
오른쪽 상단에 있는 팝업에 저장 진행 상황을 알려줍니다. 또한 이미지 생성이 시작되었으며 이 이미지 생성 진행률 및 AWS Cloud에 대한 후속 업로드가 시작되었음을 알립니다.
프로세스가 완료되면 이미지 빌드 완료 상태를 확인할 수 있습니다.
브라우저에서 Service CryostatEC2 에 액세스합니다.
-
AWS 콘솔 대시보드 메뉴에서 올바른 리전 을 선택합니다. 이미지가 업로드되었음을 나타내기 위해
Available상태가 있어야 합니다. - AWS 대시보드에서 이미지를 선택하고 클릭합니다.
-
AWS 콘솔 대시보드 메뉴에서 올바른 리전 을 선택합니다. 이미지가 업로드되었음을 나타내기 위해
- 새 창이 열립니다. 이미지를 시작하는 데 필요한 리소스에 따라 인스턴스 유형을 선택합니다. 클릭합니다.
- 인스턴스 시작 세부 정보를 검토합니다. 변경해야 하는 경우 각 섹션을 편집할 수 있습니다. 시작을 클릭합니다
인스턴스를 시작하기 전에 액세스할 공개 키를 선택합니다.
이미 보유한 키 쌍을 사용하거나 새 키 쌍을 만들 수 있습니다.
다음 단계에 따라 EC2에 새 키 쌍을 생성하고 새 인스턴스에 연결합니다.
- 드롭다운 메뉴 목록에서 새 키 쌍 만들기를 선택합니다.
- 새 키 쌍의 이름을 입력합니다. 새 키 쌍을 생성합니다.
- Download Key pair 를 클릭하여 로컬 시스템에 새 키 쌍을 저장합니다.
그런 다음 인스턴스를 시작할 수 있습니다.
Initializing 으로 표시되는 인스턴스의 상태를 확인할 수 있습니다.
- 인스턴스 상태가 실행 중 이면 버튼을 사용할 수 있게 됩니다.
을 클릭합니다. SSH를 사용하여 연결하는 방법에 대한 지침과 함께 창이 표시됩니다.
- 에 대한 기본 연결 방법으로 독립 실행형 SSH 클라이언트를 선택하고 터미널을 엽니다.
개인 키를 저장하는 위치에서 SSH가 작동하도록 키를 공개적으로 볼 수 있는지 확인합니다. 이 작업을 수행하려면 다음 명령을 실행합니다.
$ chmod 400 <_your-instance-name.pem_>공용 DNS를 사용하여 인스턴스에 연결합니다.
$ ssh -i <_your-instance-name.pem_> ec2-user@<_your-instance-IP-address_>yes를 입력하여 연결을 계속할지 확인합니다.결과적으로 SSH를 통해 인스턴스에 연결됩니다.
검증
- SSH를 사용하여 인스턴스에 연결하는 동안 작업을 수행할 수 있는지 확인합니다.