Введение

В этом лабораторном задании вы изучите модуль 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. С этими знаниями вы можете эффективно управлять установкой и обновлением программного обеспечения.