Назад | Перейти на главную страницу

Пропустите apt быстрее, если он уже установлен с помощью ansible

Я использую ansible для развертывания на сервере.
Этап apt (это Ubuntu) занимает много времени, даже если правильная версия уже установлена ​​(я предполагаю, что он просто запускается и видит, что ничего не нужно устанавливать)

Пример команды:

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

(У меня их довольно много, так что это займет некоторое время)

Есть ли способ, которым ansible может «выяснить», что pkg уже установлен, и быстрее запустить / пропустить эту команду?

Если вы установите update_cache=yes Ansible запустится apt-get update при каждом запуске спектакля.

Ansible документация

Перед операцией запустите аналог apt-get update. Может запускаться как часть установки пакета или как отдельный шаг.

Удалив update_cache=yes задача должна выполняться намного быстрее, потому что Ansible не нужно ждать apt для обновления своих репозиториев.

Другой вариант - зарегистрировать какой-либо файл или путь, созданный пакетом, используя stat модуль. Что-то вроде этого:

- 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

Видеть Документация Ansible с дополнительными примерами. Но я бы рекомендовал просто удалить update_cache=yes параметр.