it-swarm.com.ru

Как запустить apt update и апгрейд через оболочку Ansible

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

Sudo apt-get update && Sudo apt-get upgrade -y

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

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"

39
nadermx

Я бы не рекомендовал использовать Shell для этого, так как Ansible имеет модуль apt, предназначенный именно для этой цели. Я подробно использовал 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 (запросить пароль для повышения привилегий). Используйте то, что работает для вас, это просто, чтобы показать вам наиболее распространенную форму.

89
Tom Manterfield