2016-10-07 4 views
2

내가 ansible와 함께 ECS 서비스를 삭제하려고와 ECS 서비스를 삭제 :노하우 ansible

- name: Delete the Service 
    ecs_service: 
    name: "{{ service_name }}" 
    cluster: "{{ cluster_name }}" 
    state: absent 

그것은 실패 :

An error occurred (InvalidParameterException) when calling the DeleteService operation: The service cannot be stopped while the primary deployment is scaled above 0. 

그래서 솔루션이 "desired_count"로 설정하는 것입니다 0을 삭제하십시오. 그런데 어떻게 그 일을 할 수 있니? 또는 실행중인 ecs 서비스를 안전하게 삭제하는 올바른 방법은 무엇입니까? ecs_service : 이름 : 테스트 샘플 앱 서비스 작업 :

+0

아마도 'ecs_service_facts'를 사용하여 서비스가 존재하는지, desired_count와 현재 카운트가 무엇인지를 결정한 다음 조건이 충족되지 않았 으면 0으로 설정합니다. 'ecs_service' 모듈이 자동으로 카운트 다운을 기다리지 않으면 카운트가 0이 될 때까지'until' 루프에서'ecs_service_facts'를 다시 사용하고'ecs_service'로 상태를 부재로 설정하십시오 – smiller171

+1

그렇습니다. 이것을 ecs_service 모듈에서 버그라고 부르면 자동으로 모든 작업을 수행 할 수있는 pull 요청의 이점이 있습니다. – smiller171

답변

2

내가 같은 문제에 직면하고 방지하는 방법을 알아 냈어 이 문제. 이미 알아 냈으므로 "원하는 개수"값을 '0'으로 설정해야합니다.

는 불행하게도 Ansible 당신은이 같은 2 단계-방법으로이 작업을 수행 할 수 있습니다

--- 

- hosts: localhost 
    connection: local 
    gather_facts: False` 

    tasks: 

#update the service as you would do in console or cli, 
# so that desired count is set to 0 
    - ecs_service: 
     name: jenkins-service 
     state: present 
     cluster: jenkins-cluster 
     desired_count: 0 
     task_definition: jenkins-task 

#now you're able to delete the service definition. 
    - ecs_service: 
     name: jenkins-service 
     state: absent 
     cluster: jenkins-cluster 

나는 나의 나쁜 인하 기술에 대 한 미안 해요. 그러나 나는 그것이 도움이되기를 바랍니다.

0

당신은 아래의 변경을 할 필요가 클러스터를 삭제 : 테스트 샘플 앱 클러스터

+0

좀 더 자세히 설명해 주시겠습니까? 이것은 낮은 품질에 대한 몇 가지 플래그를 가지고 있으며, 나는 당신이 단지 이것으로 많은 upvotes 얻을거야 의심. (신고 당신이 당신의 대답을 편집 할 때 "더 이상 필요"나의 의견.) 당신은 아래의 변경을 할 필요가 –

+0

: ecs_service : 이름 : 테스트 샘플 응용 프로그램 서비스 운영 : 클러스터를 삭제 : 테스트 샘플 -app-cluster –

+0

** 답안 ** 수정 - 댓글을 남기지 마십시오. 어떤 이유로 든 언제든지 주석을 삭제할 수 있습니다. –