2017-11-30 11 views
0

아니요를 사용하여 AWS ECS 리포지토리를 삭제하고 싶습니다. 내 가능성있는 버전은 2.4.1.0이며 여기에서 조회 할 수 있도록이 기능을 지원해야합니다 : http://docs.ansible.com/ansible/latest/ecs_ecr_module이미지를 포함하는 AWS ECS 리포지토리를 삭제하는 방법

그러나 제 저장소에는 여전히 고정 표시기 이미지가 포함되어있어 의도 한대로 작동하지 않습니다.

는 여기에 코드입니다 :

- name: destroy-ecr-repos 
    ecs_ecr: name=jenkins-app state=absent 

결과 오류 메시지는 다음과 같습니다

... 
The error was: RepositoryNotEmptyException: An error occurred (RepositoryNotEmptyException) when calling the DeleteRepository operation: The repository with name 'jenkins-app' in registry with id 'xyz' cannot be deleted because it still contains images 
... 

를 AWS 콘솔에서는 완벽하게 잘 작동합니다. 저장소에 아직 이미지가 남아 있음을 상기시키는 경고 텍스트가 있습니다. 그러나 당신은 여전히 ​​삭제를 강제 할 수 있습니다.

내 질문에 :
이미지를 포함하여 리포지토리를 강제로 삭제할 수 있습니까?
... 또는 ...
저장소를 삭제하기 전에 다른 도구로 개별적으로 삭제할 수 있습니까?

아마 거기에는 구현이 없기 때문에 대신 '셸'모듈을 사용해야합니다 (기능 요청을 열어 볼 수도 있습니다).

나는 어떤 조언을 해주셔서 너무 감사드립니다.

답변

1

좋아, 이제는 ecs에서 저장소를 삭제할 때 이미지를 암시 적으로 삭제할 수있는 기능이 없음을 알았습니다.

BUT
저의 추함에도 불구하고 해결 방법을 구현했습니다. 실제로 ecs repo를 제거하기 전에 aws cli를 사용하여 쉘 모듈 당 이미지를 삭제하면됩니다.

- name: Delete remaining images in our repositories 
    shell: | 
    aws ecr list-images --repository-name jenkins-app --query 'imageIds[*]' --output text | while read imageId; do aws ecr batch-delete-image --repository-name jenkins-app --image-ids imageDigest=$imageId; done 

- name: destroy-ecr-repo jenkins-app 
    ecs_ecr: name=jenkins-app state=absent 

희망 ansible 전에이 문제를 직면 누군가가 내장에서 모듈을 통해 이미지를 삭제 할 수있는 가능성을 구현하는 데 도움이 :

여기에 그렇게 할 수있는 코드 조각입니다.