Введение
В этом лабораторном задании вы изучите модуль Ansible Apt, который позволяет управлять пакетами на системах на базе Debian с использованием менеджера пакетов Apt. Модуль Apt предоставляет широкий спектр параметров для установки, обновления и удаления пакетов, а также управления репозиториями.
Установить пакет
На этом шаге вы будете использовать модуль Ansible Apt для установки пакета на целевой системе.
Сначала создайте новый файл плейбука Ansible с именем /home/labex/project/apt-module-playbook.yaml (можно также использовать расширение .yml) и откройте его в текстовом редакторе.
Добавьте следующее содержимое в файл плейбука:
- hosts: localhost
tasks:
- name: Install a package
become: yes
apt:
name: docker-compose
state: present
Это плейбук Ansible для установки пакета с именем docker-compose на локальном хосте. Использование привилегированного доступа для выполнения задачи указано через become: yes. В модуле apt, name указывает, что устанавливаемый пакет называется docker-compose, а state: present гарантирует, что пакет находится в установленном состоянии.
Затем выполните плейбук, используя следующую команду:
ansible-playbook apt-module-playbook.yaml
Пример вывода:
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Install a package] *******************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Наконец, проверьте, был ли docker-compose успешно установлен, и посмотрите версию docker-compose.
docker-compose --version
Пример вывода:
docker-compose version 1.29.2, build unknown
Успешная установка пакета на целевой системе с использованием модуля Apt.
Обновить пакет
В этом шаге вы будете использовать модуль Ansible Apt для обновления пакета на целевой системе.
Сначала измените существующий файл playbook, удалив все содержимое и добавив следующее содержимое в файл playbook:
- hosts: localhost
tasks:
- name: Update a package
become: yes
apt:
name: docker-compose
state: latest
Это playbook Ansible для обновления пакета с именем docker-compose на локальном хосте. Использование привилегированного доступа для выполнения задачи указывается с помощью become: yes. В модуле apt параметр name задает, что обновляемый пакет имеет имя docker-compose, а параметр state: latest указывает, что пакет должен быть обновлен до последней версии.
Затем запустите playbook с помощью следующей команды:
ansible-playbook apt-module-playbook.yaml
Пример вывода:
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Update a package] ********************************************************
ok: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Наконец, проверьте, был ли пакет docker-compose успешно обновлен, и просмотрите версию docker-compose.
docker-compose --version
Пример вывода:
docker-compose version 1.29.2, build unknown
Успешно обновите пакет на целевой системе с использованием модуля Apt.
Удалить пакет
В этом шаге вы будете использовать модуль Ansible Apt для удаления пакета с целевой системы.
Сначала измените существующий файл playbook, удалив все содержимое и добавив следующее содержимое в файл playbook:
- hosts: localhost
tasks:
- name: Remove a package
become: yes
apt:
name: docker-compose
state: absent
Это playbook Ansible для удаления пакета с именем docker-compose на локальном хосте. Параметр become: yes указывает, что для выполнения задачи используется привилегированный доступ. В модуле apt параметр name задает, что удаляемый пакет имеет имя docker-compose, а параметр state: absent обеспечивает удаление пакета в состоянии "не установлен".
Затем запустите playbook с помощью следующей команды:
ansible-playbook apt-module-playbook.yaml
Пример вывода:
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Remove a package] ********************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Наконец, проверьте, был ли пакет docker-compose успешно удален.
docker-compose --version
Пример вывода:
zsh: command not found: docker-compose
Успешно удалите пакет с целевой системы с использованием модуля Apt.
Резюме
Поздравляем! Вы успешно завершили лабораторную работу по модулю Ansible Apt. Вы узнали, как устанавливать, обновлять и удалять пакеты.
Модуль Apt - это мощный инструмент, который позволяет автоматизировать задачи управления пакетами на системах на базе Debian. С этими знаниями вы можете эффективно управлять установкой и обновлением программного обеспечения.


