스크립트 관리 - AWS의 Cloud Migration Factory

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

스크립트 관리

Cloud Migration Factory on AWS 솔루션을 사용하면 사용자가 사용자 인터페이스 내에서 자동화 스크립트 또는 패키지 라이브러리를 완전히 관리할 수 있습니다. 스크립트 관리 인터페이스를 사용하여 새 사용자 지정 스크립트와 새 버전의 스크립트를 업로드할 수 있습니다. 여러 버전을 사용할 수 있는 경우 관리자는 이러한 버전 간에 전환하여 업데이트를 기본값으로 설정하기 전에 테스트를 수행할 수 있습니다. 또한 관리자는 스크립트 관리 인터페이스를 통해 스크립트 패키지를 다운로드하여 콘텐츠를 업데이트하거나 검토할 수 있습니다.

지원되는 스크립트 패키지는 루트에 다음과 같은 필수 파일이 들어 있는 압축된 zip 아카이브입니다.

  • Package-structure.yml - 스크립트의 인수 및 기타 메타데이터(예: 설명 및 기본 이름)를 정의하는 데 사용됩니다. 자세한 내용은 새 스크립트 패키지 작성을 참조하세요.

  • [custom python script].py – 작업이 제출될 때 실행되는 초기 스크립트입니다. 이 스크립트는 다른 스크립트와 모듈을 호출할 수 있으며, 호출할 경우 이러한 스크립트와 모듈을 아카이브에 포함해야 합니다. 이 스크립트의 이름은 Package-Structure.ymlMasterFileName 키에 지정된 값과 일치해야 합니다.

새 스크립트 패키지 업로드

참고

스크립트 패키지는 지원되는 형식을 준수해야 합니다. 자세한 내용은 새 스크립트 패키지 작성을 참조하세요.

  1. 자동화 스크립트 테이블에서 추가를 선택합니다.

  2. 업로드하려는 패키지 아카이브 파일을 선택합니다.

  3. 스크립트의 고유한 이름을 입력합니다. 사용자는 이 이름으로 스크립트를 참조하여 작업을 시작합니다.

스크립트 패키지 다운로드

콘솔에서 스크립트 패키지를 다운로드하여 업데이트 및 콘텐츠 검증을 활성화할 수 있습니다.

  1. 자동화를 선택한 다음 스크립트를 선택합니다.

  2. 테이블에서 다운로드할 스크립트를 선택한 다음 동작을 선택하고 기본 버전 다운로드 또는 최신 버전 다운로드를 선택합니다.

스크립트의 특정 버전을 다운로드할 수 있습니다. 이렇게 하려면 스크립트를 선택한 다음 동작을 선택하고 기본 버전 변경을 선택합니다. 스크립트 기본 버전 목록에서 선택한 버전 다운로드를 선택합니다.

새 버전의 스크립트 패키지 추가

AWS Cloud Migration Factory 스크립트 패키지에 대한 업데이트는 다음 단계에 따라 자동화 > 스크립트 섹션에서 업로드할 수 있습니다.

  1. 자동화를 선택한 다음 스크립트를 선택합니다.

  2. 기존 스크립트를 선택하여 새 버전을 추가한 다음 동작을 선택하고 새 버전 추가를 선택합니다.

  3. 업로드하려는 업데이트된 패키지 아카이브 파일을 선택하고 다음을 선택합니다. 새 스크립트 버전은 기본적으로 기존 이름을 유지합니다. 스크립트의 고유한 이름을 입력합니다. 모든 이름 변경은 이 버전의 스크립트에만 적용됩니다.

  4. 기본 버전으로 지정을 선택하여 스크립트의 새 버전을 기본 버전으로 설정할 수 있습니다.

  5. 업로드를 선택합니다.

스크립트 패키지 및 버전 삭제하기

감사 목적으로는 스크립트나 스크립트 버전을 삭제할 수 없습니다. 이렇게 하면 특정 시점에 시스템에 대해 실행된 정확한 스크립트를 검토할 수 있습니다. 모든 스크립트 버전은 업로드 시 고유한 서명과 ID를 가지며, 이 서명과 ID는 스크립트 및 버전이 사용된 작업 기록과 비교하여 기록됩니다.

새 스크립트 패키지 작성하기

AWS 스크립트 패키지의 Cloud Migration Factory는 Python을 기본 스크립팅 언어로 지원합니다. Python 기본 프로그램 또는 래퍼 내에서 필요에 따라 다른 셸 스크립팅 언어를 시작할 수 있습니다. 새 스크립트 패키지를 빠르게 만들려면 미리 패키지된 스크립트 중 하나의 사본을 다운로드하고 필요한 작업을 수행하도록 업데이트하는 것이 좋습니다. 먼저 스크립트의 핵심 기능을 수행할 마스터 Python 스크립트를 만들어야 합니다. 그런 다음 Package-Structure.yml 파일을 만들어 스크립트에 필요한 인수 및 기타 메타데이터를 정의합니다. 자세한 내용은 Package-Structure.yml 옵션을 참조하세요.

기본 Python 스크립트

작업이 시작될 때 실행되는 초기 기본 스크립트입니다. 스크립트 실행이 완료되면 작업이 완료되고 최종 반환 코드가 작업의 상태를 결정합니다. 이 스크립트의 모든 출력은 원격으로 실행될 때 캡처되어 참조를 위해 작업의 출력 감사 로그로 전달됩니다. 이 로그는 Amazon 에도 저장됩니다 CloudWatch.

AWS 데이터 및 스크립트APIs에서 Cloud Migration Factory에 액세스

및 데이터에서 Cloud Migration Factory에 AWS APIs 대한 액세스를 제공하려면 포함된 python 도우미 모듈을 사용할 수 있습니다. 이 모듈은 아래 주요 함수를 제공하며 시작하기 위한 몇 가지 주요 함수입니다.

factory_login

에서 Cloud Migration Factory를 호출하는 데 사용할 수 있는 액세스 토큰을 반환합니다 AWS APIs. 이 함수는 자격 증명에 대한 여러 시도를 CMF 사용하여 에 로그인을 시도합니다.

  1. 서비스 계정 사용자 ID 및 비밀번호가 있으며 액세스가 허용된 경우 이를 포함하는 기본 암호에 액세스를 시도합니다. 이 보안 암호 이름 MFServiceAccount-[userpool id]가 확인됩니다.

  2. 1단계가 실패하고 사용자가 명령줄에서 스크립트를 실행하고 있는 경우 사용자에게 AWS Cloud Migration 공장 사용자 ID와 암호를 제공하라는 메시지가 표시됩니다. 원격 자동화 작업에서 실행하면 작업에 실패합니다.

get_server_credentials

Credentials Manager의 AWS Cloud Migration Factory에 저장되거나 사용자 입력을 통해 서버의 로그인 보안 인증 정보를 반환합니다. 이 함수는 여러 소스를 확인하여 특정 서버의 보안 인증을 결정합니다. 소스 순서는 다음과 같습니다.

  1. local_username 및 local_password가 설정되어 있고 유효하면 이를 반환합니다.

  2. secret_overide가 설정된 경우 AWS Secret Manager에서 지정된 보안 암호를 검색하는 데 사용됩니다. 그렇지 않으면 서버 레코드에 key secret_name이 포함되어 있고 비어 있지 않은지 확인한 다음 이 보안 암호 이름을 사용합니다.

  3. 지정된 암호를 찾거나 액세스하는 데 실패한 경우 함수는 no_user_promptsFalse로 설정된 경우에만 사용자에게 보안 인증을 요청합니다. 그렇지 않으면 오류가 반환됩니다.

Parameters

local_username - 전달되면 반환됩니다.

local_password - 전달되면 반환됩니다.

server - AWS Cloud Migration Factory의 get_factory_servers에서 반환한 CMF 서버 명령입니다.

secret_overide - 전달되면 이 서버의 Secrets Manager에서 검색할 암호 이름을 설정합니다.

No_user_prompts - 사용자 ID와 암호를 저장하지 않은 경우 사용자에게 사용자 ID와 암호를 입력하라는 메시지를 표시하지 않도록 함수에 지시합니다. 모든 원격 자동화 스크립트에서는 이 값이 True여야 합니다.

get_credentials

Secrets Manager의 AWS Cloud Migration Factory Credentials Manager를 사용하여 저장된 보안 인증 정보를 가져옵니다.

Parameters

secret_name - 검색할 암호의 이름입니다.

get_factory_servers

제공된 웨이브를 기반으로 AWS Cloud Migration Factory 데이터 스토어에서 서버 배열을 반환합니다.

Parameters

waveid - 반환할 서버의 Wave 레코드 ID입니다.

토큰 - Lambda 함수에서 얻은 인증 토큰입니다 FactoryLogin.

app_ids - 포함할 웨이브 내 애플리케이션 ID의 선택적 목록입니다.

server_ids - 포함할 웨이브 및 애플리케이션 내 서버 ID의 선택적 목록입니다.

os_split – 로 설정하면 Linux용 목록 true2개와 Windows 서버 1개가 반환되고, False인 경우 결합된 단일 목록이 반환됩니다.

rtype – 서버의 특정 마이그레이션 전략에 대해서만 필터링하는 선택적 문자열입니다. 즉, 'Rehost' 값을 전달하면 Rehost가 있는 서버만 반환됩니다.

최종 메시지 요약

스크립트 결과의 요약 메시지를 화면 또는 sysout에 최종 출력으로 제공하는 것이 좋습니다. 이 내용은 콘솔의 마지막 메시지 속성에 표시되므로 사용자가 전체 출력 로그를 읽을 필요 없이 스크립트 결과의 상태를 빠르게 확인할 수 있습니다.

반환 코드

스크립트 기능이 완전히 성공하지 못한 경우 기본 Python 스크립트는 종료 시 0이 아닌 반환 코드를 반환해야 합니다. 0이 아닌 반환 코드를 받으면 작업 로그에 작업 상태가 실패로 표시되므로 사용자는 출력 로그에서 실패에 대한 자세한 내용을 검토해야 합니다.

YAML Package-Structure.yml 옵션

예시 YAML 파일

Name: "0-Check MGN Prerequisites" Description: "This script will verify the source servers meet the basic requirements for AWS MGN agent installation." MasterFileName: "0-Prerequisites-checks.py" UpdateUrl: "" Arguments: - name: "ReplicationServerIP" description: "Replication Server IP." long_desc: "IP Address of an AWS MGN Replication EC2 Instance." type: "standard" required: true - name: "SecretWindows" long_desc: "Windows Secret to use for credentials." description: "Windows Secret" type: "relationship" rel_display_attribute: "Name" rel_entity: "secret" rel_key: "Name" - name: "SecretLinux" long_desc: "Linux Secret to use for credentials." description: "Linux Secret" type: "relationship" rel_display_attribute: "Name" rel_entity: "secret" rel_key: "Name" - name: "Waveid" description: "Wave Name" type: "relationship" rel_display_attribute: "wave_name" rel_entity: "wave" rel_key: "wave_id" validation_regex: "^(?!\\s*$).+" validation_regex_msg: "Wave must be provided." required: true SchemaExtensions: - schema: "server" name: "server_pre_reqs_output" description: "Pre-Req Output" type: "string"

YAML 키 설명

필수

Name - 가져오기에서 스크립트가 사용할 기본 이름입니다.

Description - 스크립트 사용에 대한 설명입니다.

MasterFileName - 스크립트가 실행되는 시작점이며 스크립트 패키지 아카이브에 포함된 python 파일 이름이어야 합니다.

인수 - MasterFileName Python 스크립트가 수락하는 인수 목록입니다. 지정된 각 인수 요구 사항은 AWS Cloud Migration Factory 속성 정의 형식입니다. 각 인수의 필수 속성은 이름유형이며 다른 모든 속성은 선택 사항입니다.

선택 사항

UpdateUrl - 스크립트 패키지의 소스를 업데이트 제공에 사용할 수 URL 있는 를 제공합니다. 현재는 참조용으로만 제공됩니다.

SchemaExtensions - 출력을 저장하거나 추가 데이터를 검색하기 위해 Python 스크립트가 스키마에 있어야 하는 속성 목록입니다. 각 속성은 AWS CMF 속성 정의 형식으로 지정해야 합니다. 각 속성의 필수 속성은 스키마, 이름, 설명유형입니다. 다른 모든 속성은 선택 사항입니다. 스크립트가 처음 로드되면 새 속성이 스키마에 자동으로 추가되고 로 변경 SchemaExtensions 해도 스크립트의 새 버전에 대해서는 처리되지 않습니다. 새 스크립트를 추가하는 데 이 작업이 필요한 경우 스키마를 수동으로 업데이트해야 합니다.