3.7. 준비 과정에서 이미지 수정

이미지 준비 과정에서 이미지를 수정한 다음 수정된 이미지로 즉시 배포할 수 있습니다. 이미지 수정 시나리오는 다음과 같습니다.

  • 지속적인 통합 파이프라인의 일부로 배포 전에 테스트 중인 변경 사항으로 이미지가 수정됩니다.
  • 개발 워크플로우의 일부로 테스트 및 개발을 위해 로컬 변경 사항을 배포해야 합니다.
  • 변경 사항을 배포해야 하지만 이미지 빌드 파이프라인을 통해 사용할 수 없는 경우입니다. 예를 들어 독점 추가 기능 또는 긴급 수정 사항을 추가하는 경우입니다.

준비 과정에서 이미지를 수정하려면, 수정하려는 각 이미지에 대해 Ansible 역할을 호출합니다. 역할은 소스 이미지를 사용하고 요청된 변경을 수행한 다음 그 결과를 태그합니다. prepare 명령은 이미지를 대상 레지스트리로 푸시하고 수정된 이미지를 참조하도록 Heat 매개변수를 설정할 수 있습니다.

Ansible 역할 tripleo-modify-image는 요청된 역할 인터페이스를 준수하고 수정 사용 사례에 필요한 작업을 수행합니다. 수정은 ContainerImagePrepare 매개변수의 수정 관련 키를 사용하여 제어됩니다.

  • modify_role은 수정할 각 이미지에 대해 호출할 Ansible 역할을 지정합니다.
  • modify_append_tag는 소스 이미지 태그의 끝에 문자열을 추가합니다. 이렇게 하면 결과 이미지가 수정되었음을 알 수 있습니다. push_destination 레지스트리에 수정된 이미지가 이미 포함되어 있을 경우 이 매개 변수를 사용하여 수정을 생략할 수 있습니다. 이미지를 수정할 때마다 modify_append_tag를 변경하는 것이 좋습니다.
  • modify_vars는 역할에 전달할 Ansible 변수로 이루어진 사전입니다.

tripleo-modify-image 역할에서 처리할 사용 사례를 선택하려면 tasks_from 변수를 해당 역할에 필요한 파일에 설정합니다.

이미지를 수정하는 ContainerImagePrepare 항목을 개발하고 테스트하는 동안 추가 옵션 없이 image prepare 명령을 실행하여 이미지가 예상대로 수정되는지 확인하는 것이 좋습니다.

sudo openstack tripleo container image prepare \
  -e ~/containers-prepare-parameter.yaml