У меня есть множество загружаемых плейбуков, которые я использую для выполнения определенных действий на виртуальных машинах Debian и CentOS. До сих пор, когда мне нужно было обрабатывать пакеты, я использовал бы доступные модули apt и yum. Следовательно, я должен был проверить, какая ОС была установлена, а затем использовать правильный модуль.Безопасно ли использовать модуль пакета ansible для обновления всех пакетов?
Однако, я недавно узнал, что есть модуль под названием package, который каким-то образом унифицирует управление пакетами, уменьшая сложность воспроизведения, поэтому теперь я пытаюсь использовать только этот модуль.
Одна из операций, которые я хочу выполнить, - это обновление всех пакетов. Проблема в том, что ansible's documentation не говорит, как это сделать, используя пакет. Это не означает, однако, как это сделать с меткими и ня: первый использует и операции обновления, а вторые предлагает писать что-то вроде:
yum: name=* state=latest
По этой причине я думал, что я мог бы использовать пакет сделать следующее:
package: name=* state=latest
Когда я запустил этот сборник пьес я не попадались какие-либо ошибки, но это нигде не документированы и склонны и yum не работают точно так же. Поэтому мой вопрос: является ли команда выше безопасной, так же как и на самом деле делает то, что я хочу?
Заранее благодарен!
EDIT:
Я обнаружил, что использование package: name=* state=latest
будет пытаться установить или обновить все доступные пакеты, а не просто обновление установленных из них. Поэтому это не подходит для меня. В качестве альтернативы, я могу продолжать использовать yum и apt для этого конкретного действия, но я действительно удивляюсь, почему это невозможно сделать, используя пакет, или если у меня что-то не хватает.
Я думаю, что этот комментарий, связанный с apt, не обязательно означает, что использование только подстановочного знака будет обновлять все пакеты, особенно потому, что для этого модуля существует специальный флаг обновления. Поэтому я задаюсь вопросом, будет ли только использование шаблона устанавливать или обновлять * все * пакеты вместо того, чтобы просто обновлять те, которые уже установлены. –
Причина, по которой я считаю, что подходящий шаблон для всех пакетов является [fnmatch] (https://docs.python.org/2/library/fnmatch.html), который упоминается в документах, и поддерживает этот тип подстановочных знаков, поскольку вы может видеть в своих документах. – zochamx
Я только что протестировал его, и он не работает так, как я хочу. Если я использую 'package: name = * state = latest' на машине Debian, он попытается установить * все * пакеты, доступные в репозиториях. Я хочу обновить те пакеты, которые уже установлены. Я думаю, что лучше всего использовать ** apt ** и ** yum ** модули на этом этапе. –