ansible игнорирует конфигурацию запуска один раз в задаче
Я использую Ansible, и я хочу запустить задачу только один раз. Я следую документации о том, как настроить и выполнить задачу только один раз
- name: apt update
shell: apt-get update
run_once: true
но когда я запускаю Ansible, он всегда запускает эту задачу. Как я могу выполнить свою задачу только один раз.
1 ответов
опция run_once будет запускаться каждый раз при запуске Playbook/tasks, но будет запускаться только один раз во время конкретного запуска. Поэтому каждый раз, когда вы запускаете игру, она будет работать, но только на первый узел в списке. Если вы ищете способ выполнить эту команду только один раз, точка, вам нужно будет использовать аргумент creates. Используя Ваш пример, это может быть достигнуто с помощью следующих -
- name: apt update
shell: apt-get update && touch /root/.aptupdated
args:
creates: /root/.aptupdated
в этом случае файл /root/.создан aptupdated это. Задача будет теперь проверьте, существует ли это, и если это так, он не будет работать.
в соответствующем примечании если задача, которую вы пытаетесь запустить, является обновлением apt-get, вы можете использовать собственный модуль apt. Затем вы можете сделать что-то вроде этого -
- name: apt update
apt: update_cache=yes cache_valid_time=86400
теперь это будет работать только если кэш старше одного дня.