Ansible: Разница Между Модулем Apt И Командой: Apt-Get -Y Install X (Модуль)

  • Автор темы Игорь 123
  • Обновлено
  • 22, Oct 2024
  • #1

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

apt

Как новичок в Ansible, я узнаю здесь два разных модуля Ansible:

apt-get
and
apt
.

Почему ОП использовал оба

command: apt-get install -y
and
apt: update_cache=yes
вместо этого используя
command
module in both tasks?

Примечание: сам я больше не использую

apt
but
- name: Update the apt package-index cache i.e. apt-get update

apt: update_cache=yes

- name: Ensure aptitude is installed

command: apt-get install -y aptitude
даже в обычных сценариях Bash.

#ансибль

Игорь 123


Рег
27 Aug, 2016

Тем
72

Постов
200

Баллов
570
  • 25, Oct 2024
  • #2

Другими словами, почему бы и то, и другое не сделать с помощью apt-модуля?

Мы не можем сказать наверняка, но, скорее всего, это просто ошибка, вызванная незнанием. Последняя команда может быть полностью реализована с помощью модуля Ansible apt, и вы всегда должны предпочитать ее, а не

- name: Ensure some basics

apt:

name: aptitude
;
command: apt-get
существует как выход, когда нет модуля для того, что вы хотите сделать.

 

Originator1971


Рег
20 Jul, 2010

Тем
69

Постов
188

Баллов
553
  • 25, Oct 2024
  • #3

TL;DR: модули Ansible, такие как

apt
can be mostly implemented with
apt
модуль, но вы теряете проверку ошибок. Использование команды обычно является признаком отсутствия опыта работы с Ansible.

Чтобы ответить на этот вопрос, лучше всего посмотреть код, реализующий модуль apt в анзибле. Вы можете видеть, что большинство функций модуля реализованы путем создания соответствующего

command
command and executing it, then handling error conditions and presenting them in ansible data structures. Sometimes depending on options the command can be quite complex. In two exceptions for upgrade, in case it is полное обновление или безопасное обновление он будет использовать
apt-get
command instead of
apt-get
.

Конечно, реализация модуля может измениться в будущем, но вы можете быть уверены, что он будет делать то же самое. С другой стороны, если

aptitude
changes in some way or returns new unhandled type of errors, you will need to change your ansible code in case you use
apt-get
модуль напрямую. Хотя, если вы используете
command
module, it is likely the maintainer of the module will implement the new error checking for you.

Так что в целом лучше использовать

apt
to
command
если только модуль не будет делать то, что вам абсолютно необходимо, и другого способа обойти это нет.

Чтобы выполнить вторую задачу в ansible с использованием модуля apt, выполните:

command
 

Mild


Рег
26 Jan, 2014

Тем
73

Постов
216

Баллов
591
Похожие темы Дата
Похожие темы
Контейнеры — Максимально Самоуправляемые Хостинг-Платформы И Контейнеризаторы Для Ос И Выше (Например, Vagrant)
Ветка. Какую Стратегию Ветвления Лучше Всего Использовать При Создании Повторно Используемых Артефактов?
Как Настроить Конфигурацию Сборки Openshift, Чтобы Запускаемые Сборки Автоматически Удалялись После Завершения?
Как Подключить Балансировщик Нагрузки Gcp К Кластеру Kubernetes (Кластер С Одним Узлом)
Сеть. Как Запретить Диспетчеру Трафика Azure Маршрутизировать Соединения С Высокой Задержкой В ​​Сценарии Аварийного Переключения?
Дженкинс Запускает Второе Задание, Когда Первое Задание Завершается Сбоем
Могу Ли Я Создать Виртуальную Машину Azure Из Ansible С Сетевыми Адаптерами В Разных Группах Ресурсов?
Веб-Сервисы Amazon. Как Запустить Terraform С Помощью Aws Mfa?
Веб-Сервисы Amazon — Разница Между Упаковщиком И Спичечным Коробком
Nginx Для Чайников? Как Включить Jenkins Через Https
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно