Como executar tarefas ansiosas muito longas?

3

Tenho as seguintes tarefas de função ansible: "Tarefa 1", "Tarefa 2", "Tarefa 2.1", "Tarefa 2.2", "Tarefa 3"

Eu preciso executá-los, mas todas essas tarefas precisam de muito tempo para serem concluídas (de 1 hora a 12 horas) e devem ser ordenadas em especial (quero dizer, que "Tarefa 2.1" deve iniciar somente depois de "Tarefa 2 "e assim por diante)

Como posso fazer isso?

    
por rakshazi 30.06.2016 / 09:22

1 resposta

3

Para uma tarefa de longa duração, use o modo Assíncrono da Ansible para fazer o plano de fundo da tarefa.

- name: 'YUM - fire and forget task'
  yum: name=docker-io state=installed
  async: 1000
  poll: 0
  register: yum_sleeper

Em seguida, siga com outra tarefa que verifica o status da tarefa em segundo plano.

- name: 'YUM - check on fire and forget task'
  async_status: jid={{ yum_sleeper.ansible_job_id }}
  register: job_result
  until: job_result.finished
  retries: 30

Exemplo retirado de documentos oficiais da Ansible: link

    
por 01.11.2016 / 20:13