У меня есть подмножество серверов, на которых работает Ubuntu, и я пытаюсь создать сценарий, который будет применять только к ним обновления безопасности. Я знаю, что автоматические обновления сделают это за меня, но мне нужен больший контроль над тем, когда они запускаются и когда они применяются.
Я нашел этот вопрос SF, показывающий, как использовать apt-get для установки обновлений из определенного файла репо:
Как вы используете apt-get только для установки критических обновлений безопасности на ubuntu?
У меня есть свой учебник. создание этого файла, если он не существует, но я не могу заставить модуль apt распознавать sources.list в качестве опции и читать только этот файл, а не выполнять весь список обновлений. Вот что у меня есть на данный момент:
# apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list
- name: Ubuntu - Install the security updates
apt:
force_apt_get: yes
state: latest
upgrade: yes
dpkg_options: "Dir::Etc::SourceList=/etc/apt/security.sources.list"
register: apt_output
Когда я запускаю playbook для тестового образа виртуального бокса, он показывает, что обновит 144 пакета, когда aptitude показывает только 80 необходимых пакетов безопасности.
Есть идеи, как передать файл sources.list в качестве опции в модуль apt?
когда модуля ansible apt недостаточно -используйте модуль оболочки:
- name: Ubuntu - Install the security updates
shell: apt-get update && apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list