Saltar apt mais rapidamente se já estiver instalado usando ansible

1

Estou usando ansible para implantar em um servidor.
O estágio apt (é o Ubuntu) leva muito tempo para ser executado, mesmo se a versão correta já estiver instalada (imagino que ele rode e veja que nada precisa ser instalado)

Exemplo de comando:

- name: set up apt packages
  action: apt pkg=nginx=1.4.6-1ubuntu3.3 state=present update_cache=yes

(Eu tenho alguns desses, então leva algum tempo)

Existe uma maneira que ansible pode "descobrir" pkg já está instalado e executar / pular este comando mais rápido?

    
por Boaz 13.11.2015 / 14:16

1 resposta

4

Se você definir update_cache=yes Ansible executará apt-get update a cada execução da peça.

Documentação responsável

Run the equivalent of apt-get update before the operation. Can be run as part of the package installation or as a separate step.

Ao remover update_cache=yes , a tarefa deve ser executada muito mais rapidamente, porque o Ansible não precisará esperar que apt atualize seus repositórios.

Outra opção seria registrar algum arquivo ou caminho criado pelo pacote usando o módulo stat . Algo parecido com isto:

- stat: path=/etc/nginx/nginx.conf
  register: st

- name: set up apt packages
  action: apt pkg=nginx=1.4.6-1ubuntu3.3 state=present update_cache=yes
  when: not st.stat.exists

Consulte Documentação responsável para mais exemplos . Mas eu recomendaria apenas remover o parâmetro update_cache=yes .

    
por 13.11.2015 / 14:19

Tags