Подтвердить что ты не робот

Как запустить apt обновление и обновление через Ansible shell

Я пытаюсь использовать Ansible для запуска следующих двух команд:

sudo apt-get update && sudo apt-get upgrade -y

Я знаю, что вы можете использовать:

ansible all -m shell -u user -K -a "uptime"

Будет ли выполняться следующая команда? Или мне нужно использовать какую-то команду raw

ansible all -m shell -u user -K -a "sudo apt-get update && sudo apt-get upgrade -y"

4b9b3361

Ответ 1

Я бы не рекомендовал использовать для этого оболочку, так как Ansible имеет модуль apt, предназначенный именно для этой цели. Я подробно рассказал об использовании ниже.

В playbook вы можете обновлять и обновлять следующим образом:

- name: Update and upgrade apt packages
  become: true
  apt:
    upgrade: yes
    update_cache: yes
    cache_valid_time: 86400 #One day

Значение cache_valid_time можно опустить. Его назначение из документов:

Обновите кэш apt, если он старше, чем cache_valid_time. Этот опция устанавливается в секундах.

Поэтому полезно включить, если вы не хотите обновлять кэш, если он был обновлен только недавно.

Чтобы сделать это как специальную команду, вы можете выполнить:

$ ansible all -m apt -a "upgrade=yes update_cache=yes cache_valid_time=86400" --become

специальные команды описаны подробно здесь

Обратите внимание, что я использую --become и become: true. Это пример типичного повышения привилегий через Ansible. Вы используете -u user и -K (запросите пароль для повышения привилегий). Используйте то, что работает для вас, это просто, чтобы показать вам наиболее распространенную форму.