12.4. MTV 마이그레이션 계획에 후크 추가
MCP(Migration Toolkit for Virtualization) 마이그레이션 계획에 후크를 추가하여 마이그레이션 전이나 후에 VM에서 자동화된 작업을 수행할 수 있습니다.
12.4.1. MTV 마이그레이션 계획의 후크 정보 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift 웹 콘솔에 있는 MTV CLI 또는 MTV 사용자 인터페이스를 사용하여 MTC(Migration Toolkit for Virtualization) 마이그레이션 계획에 후크를 추가할 수 있습니다.
- 마이그레이션 전 후크는 공급자에 있는 VM에서 작업을 수행하는 후크입니다. 그러면 마이그레이션을 위한 VM이 준비됩니다.
- 마이그레이션 후 후크는 OpenShift Virtualization으로 마이그레이션된 VM에서 작업을 수행하는 후크입니다.
12.4.1.1. 기본 후크 이미지 링크 복사링크가 클립보드에 복사되었습니다!
MTV 후크의 기본 후크 이미지는 quay.io/kubev2v/hook-runner 입니다. 이미지는 Ansible Kubernetes 리소스 및 최근 oc 바이너리를 제공하기 위해 python-openshift 가 추가된 Ansible Runner 이미지를 기반으로 합니다.
12.4.1.2. 후크 실행 링크 복사링크가 클립보드에 복사되었습니다!
마이그레이션 후크의 일부로 제공되는 Ansible 플레이북은 후크 컨테이너에 ConfigMap 으로 마운트됩니다. 후크 컨테이너는 선택한 ServiceAccount 를 사용하여 openshift-mtv 네임스페이스의 원하는 클러스터에서 작업으로 실행됩니다.
후크를 추가할 때 후크 CR이 있는 네임스페이스, 후크 이름, 후크가 사전 마이그레이션 후크인지 또는 마이그레이션 후 후크인지를 지정해야 합니다.
후크를 VM에서 실행하려면 VM을 시작하고 SSH를 사용하여 사용할 수 있어야 합니다.
다음 그림에서는 마이그레이션 후크를 사용하는 일반적인 프로세스를 보여줍니다. 특정 절차는 Red Hat OpenShift 웹 콘솔을 사용하여 마이그레이션 계획에 마이그레이션 후크 추가 및 CLI를 사용하여 마이그레이션 계획에 마이그레이션 후크 추가를 참조하십시오.
그림 12.1. 마이그레이션 계획에 후크 추가
프로세스:
Ansible 후크 및 인증 정보를 입력합니다.
UI 또는 CLI를 사용하여 Ansible 후크 이미지를 MTV 컨트롤러에 입력합니다.
-
UI에서
ansible-runner를 지정하고 후크를 포함하는playbook.yml을 입력합니다. - CLI에서 후크를 실행하는 플레이북을 지정하는 후크 이미지를 입력합니다.
-
UI에서
SSH 데이터와 같이 Pod 내에서 플레이북을 실행하기 위해 추가 데이터가 필요한 경우 VM의 인증 정보가 포함된 보안을 생성합니다. 시크릿은 포드에 마운트되지 않지만 플레이북에서 호출됩니다.
참고이 보안은 소스 공급자의 인증 정보가 포함된
SecretCR과 동일하지 않습니다.
MTV 컨트롤러는 다음을 포함하는
ConfigMap을 생성합니다.-
workload.yml: VM에 대한 정보를 포함합니다. -
playbook.yml- 실행할 원시 문자열 플레이북입니다. plan.yml:PlanCR입니다.ConfigMap에는 VM 이름이 포함되어 있으며 플레이북에 수행할 작업을 지시합니다.
-
MTV 컨트롤러는 사용자가 지정한 이미지를 시작하는 작업을 생성합니다.
컨테이너에
ConfigMap을 마운트합니다.Ansible 후크는 사용자가 이전에 입력한 보안을 가져옵니다.
이 작업은 다음과 같이 마이그레이션 전 후크 또는 마이그레이션 후 후크를 실행합니다.
- 마이그레이션 전 후크의 경우 작업은 SSH를 사용하여 소스 공급자의 VM에 로그하고 후크를 실행합니다.
- 마이그레이션 후 후크의 경우 작업은 SSH를 사용하여 OpenShift Virtualization의 VM에 로그하고 후크를 실행합니다.
12.4.2. Red Hat OpenShift 웹 콘솔을 사용하여 마이그레이션 계획에 마이그레이션 후크 추가 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift 웹 콘솔을 사용하여 기존 마이그레이션 계획에 마이그레이션 후크를 추가할 수 있습니다. MCP(Migration Toolkit for Virtualization) CLI에서 하나의 명령을 실행해야 합니다.
예를 들어 후크를 생성하여 VM에 cloud-init 서비스를 설치하고 마이그레이션 전에 파일을 작성할 수 있습니다.
마이그레이션 전 후크 한 개, 마이그레이션 후 후크 한 개 또는 마이그레이션 계획당 하나씩 실행할 수 있습니다.
사전 요구 사항
- 마이그레이션 계획
- 복사한 콘텐츠를 복사하여 웹 콘솔에 붙여넣는 마이그레이션 후크 파일
-
소스 공급자의
시크릿이 포함된 파일 - 후크에서 호출하고 작업 중인 네임스페이스에 대한 쓰기 액세스 권한이 있는 Red Hat OpenShift 서비스 계정
- VM에 설치된 공개 키를 사용하여 마이그레이션하려는 VM용 SSH 액세스
- Microsoft Server에서만 실행되는 VM: 원격 실행이 활성화됨
추가 리소스
서비스 계정 생성에 대한 지침은 서비스 계정 이해 및 생성을 참조하십시오.
프로세스
- Red Hat OpenShift 웹 콘솔에서 마이그레이션 > ; 가상화 계획을 클릭한 다음 후크를 추가할 마이그레이션 계획을 클릭합니다.
- 후크 를 클릭합니다.
사전 마이그레이션 후크의 경우 다음 단계를 수행합니다.
- 사전 마이그레이션 후크 섹션에서 후크 활성화 스위치를 전환하여 사전 마이그레이션 후크를 활성화합니다.
-
후크 실행기 이미지를 입력합니다.
spec.playbook을 지정하는 경우ansible-runner가 있는 이미지를 사용해야 합니다. - 후크를 Ansible 플레이북 텍스트 상자에 YAML 파일로 붙여넣습니다.
마이그레이션 후 후크의 경우 다음 단계를 수행합니다.
- Post migration hook 에서 Enable hook switch Enable post migration hook 를 전환합니다.
-
후크 실행기 이미지를 입력합니다.
spec.playbook을 지정하는 경우ansible-runner가 있는 이미지를 사용해야 합니다. - 후크를 Ansible 플레이북 텍스트 상자에 YAML 파일로 붙여넣습니다.
- 탭 상단에서 업데이트 후크 를 클릭합니다.
터미널에서 다음 명령을 입력하여 각 후크를 Red Hat OpenShift 서비스 계정과 연결합니다.
oc -n openshift-mtv patch hook <name_of_hook> \ -p '{"spec":{"serviceAccount":"<service_account>"}}' --type merge$ oc -n openshift-mtv patch hook <name_of_hook> \ -p '{"spec":{"serviceAccount":"<service_account>"}}' --type mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 예제 마이그레이션 후크는 SSH를 사용하여 VM에 액세스할 수 있도록 하며 SSH 키를 생성하며 2개의 작업을 실행합니다. 즉, database를 중지하고 텍스트 파일을 생성합니다.
마이그레이션 후크의 예
12.4.3. CLI를 사용하여 마이그레이션 계획에 마이그레이션 후크 추가 링크 복사링크가 클립보드에 복사되었습니다!
후크 CR을 사용하여 MTV(Migration Toolkit for Virtualization) CLI를 사용하여 사전 마이그레이션 후크 또는 마이그레이션 후 후크를 기존 마이그레이션 계획에 추가할 수 있습니다.
예를 들어 Hook CR을 생성하여 VM에 cloud-init 서비스를 설치하고 마이그레이션 전에 파일을 작성할 수 있습니다.
마이그레이션 전 후크 한 개, 마이그레이션 후 후크 한 개 또는 마이그레이션 계획당 하나씩 실행할 수 있습니다. 각 후크에는 자체 후크 CR이 필요하지만 Plan CR에는 사용하는 모든 후크에 대한 데이터가 포함되어 있습니다.
k8s 모듈을 사용하여 시크릿 또는 ConfigMap 에 저장된 추가 정보를 검색할 수 있습니다.
사전 요구 사항
- 마이그레이션 계획
- 마이그레이션 후크 이미지 또는 후크 이미지가 포함된 플레이북
- 소스 공급자의 시크릿이 포함된 파일
- 후크에서 호출하고 작업 중인 네임스페이스에 대한 쓰기 액세스 권한이 있는 Red Hat OpenShift 서비스 계정
- VM에 설치된 공개 키를 사용하여 마이그레이션하려는 VM용 SSH 액세스
- Microsoft Server에서만 실행되는 VM: 원격 실행이 활성화됨
추가 리소스
서비스 계정 생성에 대한 지침은 서비스 계정 이해 및 생성을 참조하십시오.
프로세스
필요한 경우 VM의 SSH 개인 키를 사용하여 보안을 생성합니다.
- 기존 키를 선택하거나 키 쌍을 생성합니다.
- VM에 공개 키를 설치합니다.
시크릿의 개인 키를 base64로 인코딩합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
파일을 연결하고 Base64 인코딩을 위해 파이핑하여 플레이북을 인코딩합니다. 예를 들면 다음과 같습니다.
cat playbook.yml | base64 -w0
$ cat playbook.yml | base64 -w0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 후크 CR을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고기본
hook-runner이미지를 사용하거나 사용자 정의 이미지를 지정할 수 있습니다. 사용자 지정 이미지를 지정하는 경우 플레이북을 지정할 필요가 없습니다.참고연결된 플레이북을 디코딩하려면 사용자 지정 출력으로 리소스를 검색하고 base64로 파이프합니다. 예를 들면 다음과 같습니다.
oc get -n konveyor-forklift hook playbook -o \ go-template='{{ .spec.playbook }}' | base64 -d$ oc get -n konveyor-forklift hook playbook -o \ go-template='{{ .spec.playbook }}' | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 마이그레이션의
PlanCR에서 각 VM에 대해 CR 끝에 다음 섹션을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 옵션은 마이그레이션 전에 후크를 실행하는
사전후크이며후크후 마이그레이션 후 후크를 실행합니다.
사전 후크를 VM에서 실행하려면 VM을 시작하고 SSH를 통해 사용할 수 있어야 합니다.
다음 예제 마이그레이션 후크는 SSH를 사용하여 VM에 액세스할 수 있도록 하며 SSH 키를 생성하며 2개의 작업을 실행합니다. 즉, database를 중지하고 텍스트 파일을 생성합니다.
마이그레이션 후크의 예