Skip to content

DaieCooper/Raif_Ansible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Задача

  1. Написать Ansible role для обновления операционной системы.

  2. Создать inventory файл, в котором создать группу servers и внести в неё свой localhost либо иной управляемый вами сервер

  3. Сделать playbook для запуска написанной вами role

Дополнительные требования:

  1. Выполнить перезагрузку сервера, если произошло обновление пакетов.

  2. Выберите самостоятельно любой пакет и реализуйте исключение обновления этого пакета. Необходимо, чтобы кокнретный, указанный вами пакет не обновлялся.

  3. После обновления операционной системы, оставьте только 2 последних версии ядра.

Решение

1)Инициируем роль командой ansible-galaxy init updating_ubuntu

2)В каталоге tasks в файле main.yml прописываем таски

В первой задаче происходит обновление пакетов системы: upgrade: dist - означает, что будут обновлены все пакеты в системе до последней доступной версии. Параметр dist означает, что обновление будет выполняться до новой версии дистрибутива (если таковая доступна). autoremove: yes - означает, что будут удалены неиспользуемые пакеты, которые установлены как зависимости для других пакетов, которые были удалены ранее. Это может освободить дополнительное место на диске и улучшить производительность системы. autoclean: yes - означает, что будут удалены старые файлы пакетов, которые уже не нужны в системе. Это также может освободить место на диске и улучшить производительность системы. register: apt_update - означает, что результат выполнения модуля apt будет сохранен в переменной apt_update. Эта переменная может быть использована в дальнейшем для выполнения других задач в playbook.

Во второй таске добавили проверку when, которая проверяет, что apt_update определен и содержит ключ reboot_required, который может быть приведен к True. Мы также использовали default(false) для того, чтобы если reboot_required не определен, то оно будет равно false.

В третьей задаче происходит удаление старых пакетов ядра операционной системы Ubuntu. мы используем ansible_facts['kernel'], чтобы получить список всех установленных ядер в системе.

Затем мы используем модуль apt с параметром state: absent, чтобы удалить пакеты ядра из списка with_items. Условие when: ansible_facts['kernel'] | length > 2 проверяет, что количество ядер в системе больше 2, прежде чем выполнять задачу удаления старых ядер. Если в системе меньше 2 ядер, то задача не будет выполнена.

3)В каталоге defaults в файле main.yml прописыаем пакет, исключенный для обновления. linux-image-generic - это пакет ядра Linux для дистрибутивов Ubuntu, который обеспечивает универсальную установку ядра, позволяющую использовать большинство оборудования без необходимости установки специализированных ядер. Если на компьютере установлен linux-image-generic, то при обновлении операционной системы, ядро Linux автоматически обновляется до последней версии. При этом, если установлены старые версии ядра, то они остаются на компьютере, их можно удалить вручную, либо использовать инструменты для автоматического удаления старых версий ядра.

4)Далее запускаем плейбук playbook.yml командой ansible-playbook -i inventory.ini playbook.yml

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published