В своем повседневном рабочем процессе мы работаем с множеством удаленных систем Linux, большинство из которых основано на Debian. Иногда становится очень утомительно подключать SSH ко всем машинам, выполнять apt-get update, а затем проверять, есть ли какие-либо обновления, и установка их. Даже при использовании SSH-входа без пароля на это уходит огромное количество времени. Возникает вопрос, как пользователь может автоматизировать этот процесс. Ответ – Ansible.
В этой статье мы покажем вам, как использовать мощный инструмент автоматизации для обновления всех ваших удаленных систем с помощью apt. Будьте в курсе последних событий и установите все исправления для вашей системы, чтобы обеспечить безопасность вашей системы.
Что такое Ansible?
Ansible – это мощный инструмент автоматизации, который позволяет удаленно и автоматически настраивать системы и управлять ими. Он предоставляет невероятно мощные функции, такие как удаленная установка программного обеспечения, откат в случае ошибок, резервное копирование, удаленная загрузка и многое другое.
Ansible также очень прост в использовании. Он использует файлы YAML, которые легко записывать, хорошо читаются и имеют высокий уровень безопасности, поскольку он использует SSH для входа в систему и управления системами.
Возможность управлять более чем одной системой из одного инструмента более чем триумфальная, и любой системный администратор должен быть знаком, если еще не использует Ansible.
Установка Ansible
После похвалы Ansible давайте посмотрим, как установить Ansible на нашу локальную машину, чтобы управлять удаленными серверами.
В этой статье мы будем использовать Ubuntu 20.10 в качестве локальной машины. Чтобы узнать, как установить Ansible на другие системы, ознакомьтесь с документацией.
В Ubuntu используйте команды:
sudo apt update sudo apt install software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible sudo apt install ansible
Ansible Добавить хосты
Если вы не знакомы с Ansible, первым делом создайте инвентарь удаленных машин, которые вы хотите автоматизировать. Это делается путем редактирования файла /etc/ansible/hosts.
Чтобы добавить серверы Debian, введите записи как:
[debian] 192.168.0.13
Вы можете передать IP-адрес удаленного хоста или использовать имя хоста машины.
Когда у нас есть список хостов для управления в файле конфигурации, мы можем приступить к автоматизации обновлений.
Обновление с помощью модуля apt
Для удаленного обновления пакетов и управления ими на машинах на базе Debian мы используем модуль apt, предоставляемый ansible. Модуль apt позволяет нам управлять пакетами apt с другими конфигурациями.
Обновить кеш репозитория
Чтобы обновить кеш репозитория с помощью Ansible, мы можем использовать playbook, как показано ниже:
--- - hosts: debian become: yes become_method: sudo tasks: - name: "Update Repository cache" apt: update_cache: true cache_valid_time: 3600 force_apt_get: true
Сохраните файл и запустите, используя команду как:
ansible-playbook --user=debian apt.yaml
Это запустит playbook и выполнит указанные задачи.
В сценарии Ansible мы начинаем с указания хостов. В этом случае нам нужны только хосты debain.
Затем мы устанавливаем для параметра stat значение true, что позволяет нам повышать привилегии с помощью sudo, как указано в becom_method.
Наконец, мы ставим задачи по обновлению кеша репозитория. Мы также устанавливаем cache_valid_time равным 3600, который обновляет кеш, если он старше указанного времени.
Обновить все пакеты
Мы также можем обновить все пакеты в системе, которые соответствуют команде:
sudo apt-get dist-upgrade
Чтобы сделать это с помощью Ansible playbook, мы добавляем файл yaml как:
--- - hosts: all become: yes become_method: sudo tasks: - name: "Update cache & Full system update" apt: update_cache: true upgrade: dist cache_valid_time: 3600 force_apt_get: true
Точно так же запустите доступный сценарий выше, как показано в первой команде.
Заключение
В этой статье мы быстро рассмотрели, что такое Ansible, что он предлагает и как мы можем использовать его модули для обновления системы в системе на основе Debian.