Tehnografi.com - Технологические новости, обзоры и советы
[adinserter block="67"]

7 ежедневных задач системного администратора, которые нужно автоматизировать с помощью Ansible

Примечание. Следующая статья поможет вам: 7 ежедневных задач системного администратора, которые нужно автоматизировать с помощью Ansible

Ansible, бесплатный проект Red Hat с открытым исходным кодом на основе Python, представляет собой популярную платформу управления конфигурацией и автоматизации ИТ.

Он мультиплатформенный и может работать с большинством современных операционных систем, включая Linux, Windows и Mac. Он поддерживает декларативный язык, написанный на YAML или YAML Ain’t Markup Language, для описания конфигурации системы.

Ansible, наряду с другими современными платформами управления конфигурацией, произвел революцию в автоматизации ИТ и отраслевых стандартах. Инструменты управления конфигурацией стали частью набора инструментов DevOps и являются неотъемлемой частью жизненного цикла любого современного ИТ-процесса. Это применимо для любой современной инфраструктурной среды, будь то локальная, гибридная или облачная среда. Не только для DevOps, Ansible также может помочь автоматизировать многие повседневные задачи, выполняемые системным администратором.

Одним из преимуществ использования Ansible является то, что он не требует агента и не требует многого для начала работы, кроме SSH-доступа к целевой машине и поддерживаемой версии Python, которая уже установлена ​​по умолчанию в большинстве современных операционных систем. Кроме того, поскольку это легкий инструмент, его можно развернуть и использовать как в традиционных, так и в инновационных системах.

Использование Ansible

Оркестровка

Ansible — это предпочтительный инструмент для организации различных задач системного администрирования и развертывания. Плейбуки позволяют использовать одни и те же рабочие процессы оркестрации в разных проектах, а данные конфигурации на основе YAML позволяют хранить и управлять версиями вашей инфраструктуры в репозитории Git или на любой поддерживаемой платформе контроля версий.

Развертывание приложения

Будь то простое приложение с кодом из нескольких строк или многоуровневое тяжеловесное развертывание, Ansible позволяет автоматизировать жизненный цикл сквозного развертывания приложения.

Безопасность и соответствие

Ansible также может помочь обеспечить безопасность ваших систем в соответствии с рекомендациями вашей организации и отраслевыми стандартами. Он может работать на тысячах серверов, генерировать аудит и устранять бреши в безопасности, предоставляя администратору полный контроль над средой.

Теперь давайте рассмотрим некоторые распространенные задачи системного администратора, которые можно автоматизировать с помощью Ansible.

Скопируйте файлы из локальной или удаленной системы

Системный администратор обычно копирует файлы из одного каталога в другой. Файлы конфигурации часто необходимо копировать на удаленные серверы, а иногда нам нужно перемещать файлы из одного удаленного места в другое.

Модуль копирования Ansible может помочь вам выполнить эти задачи в плейбуке.

Для системного администратора является обычной задачей узнать состояние управляемых серверов и выполнить предопределенные действия в соответствии с политиками организации. Одна из таких задач — узнать время безотказной работы сервера. С Ansible мы можем легко получить значения времени безотказной работы и распечатать их вместе. Пример копирования конфигурации ntp с локального сервера на удаленный с помощью модуля копирования показан ниже:

— – hosts: all collect_facts: no be: yes tasks: – name: Скопируйте новый файл конфигурации ntp и создайте резервную копию исходного, если он отличается copy: src: ./ntp.conf dest: /etc/ntp.conf владелец: корневая группа: корневой режим: «0644» резервная копия: да

Настройте дополнительные задания cron

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

cron — один из таких инструментов в Linux, который поддерживает планирование, и Ansible может помочь вам добавить или изменить эти задания. В качестве примера приведенный ниже плейбук демонстрирует, как вы можете легко установить задание rsync от имени пользователя root на некоторых или всех ваших серверах с помощью Ansible.

— – hosts: all collect_facts: no be: yes tasks: – name: Deploy cron job cron: name: “Set rsync job” пользователь: root минута: “5” час: “4” задание: “rsync -avz / путь/к/папке1 /путь/к/папке1 2>&1”

Управление дисками и файловыми системами

Ansible можно использовать для управления дисками, разметкой разделов, файловыми системами и монтированием, включая /etc/fstab на серверах Linux. Различные модули Ansible делают это возможным. Вот пример, который создает раздел на диске объемом 100 ГБ, форматирует его с помощью файловой системы ext4, создает новый каталог для монтирования раздела и, наконец, монтирует его в указанный каталог. Запись в /etc/fstab также создается посредством временного или постоянного монтирования в зависимости от параметров модуля.

— – hosts: all collect_facts: no be: yes tasks: – name: Create a partition parted: device: /dev/sdb number: 1 part_end: “100%” state: present – name: Format new partition filesystem: fstype : ext4 dev: /dev/sdb1 – имя: Создать файл каталога монтирования: путь: /data состояние: каталог – имя: монтирование раздела монтирование: путь: /data src: /dev/sdb1 fstype: ext4 состояние: смонтировано

Собирать логи сервера

Хранение журналов в удобном месте иногда необходимо для обеспечения безопасности, аудита и анализа. Ansible позволяет собирать журналы с разных серверов в вашей корпоративной среде и легко хранить их в указанном вами месте. Вот учебник для достижения этой цели:

— – хосты: все collect_facts: нет стать: да задачи: – имя: найти журналы найти: пути: /var/log/ шаблоны: ‘*.log’ рекурсия: да регистр: _logs – имя: выборка журналов выборка: src : “{{ item.path }}” местонахождение: /tmp/logs with_items: “{{ _logs.files }}”

Установка или удаление пакетов и программного обеспечения

Пакеты часто требуется устанавливать по запросам пользователей или как часть начальных сборок сервера. Нам также может понадобиться удалить определенные пакеты, которые больше не нужны или содержат некоторые критические ошибки и т. д. Ansible позволяет легко устанавливать или удалять пакеты без хлопот, связанных с переходом на каждый сервер и выполнением ручных команд. Вот пример, демонстрирующий установку и удаление одного пакета для серверов Linux на базе Ubuntu и RHEL/CentOS.

— – hosts: ubuntu collect_facts: нет задач: – имя: Установить утилиту lsof apt: pkg: состояние lsof: последний sudo: yes – имя: Удалить утилиту сканирования ARP apt: pkg: состояние arp-scan: отсутствует sudo: yes – — – hosts: centos collect_facts: нет задач: – имя: Установить утилиту lsof yum: pkg: состояние lsof: последний sudo: да – имя: Удалить утилиту сканирования ARP yum: pkg: состояние arp-scan: отсутствует sudo: да

Управление пользователями

Пользователи и группы образуют базовую структуру, вокруг которой системы на основе Unix/Linux управляют доступом и разрешениями. В большой организации управление пользователями и группами может быть сложной задачей, несмотря на автоматизацию для поддержки среды.

С Ansible у системного администратора есть отличный инструмент для создания, изменения и удаления пользователей и групп со всеми различными возможностями, поддерживаемыми в ОС.

Вот простой пример, показывающий создание и удаление пользователей и групп с помощью Ansible. После запуска этой пьесы на целевых серверах будут созданы группа A и группа B с заданными GID, а user1 будет удален, если он присутствует. Новый пользователь без оболочки будет создан как user2 с заданным UID, назначенными группами и заблокированным паролем.

— – хосты: все collect_facts: нет стать: да задачи: – группа: gid: 12310 имя: groupA состояние: присутствует – группа: gid: 12311 имя: groupB состояние: присутствует – пользователь: имя: user1 состояние: отсутствует – пользователь : name: user2 uid: 12427 shell: /bin/false password_lock: yes группы: groupA, groupB

Управление услугами

Службы — это демоны процессов, которые работают в фоновом режиме и обслуживают некоторые службы, такие как sshd, обеспечивающие подключение SSH и т. д. Используя Ansible, вы можете управлять системными и пользовательскими службами, например запускать, останавливать и перезапускать их. Вот пример пьесы, чтобы продемонстрировать это:

— – хосты: все collect_facts: нет стать: да задачи: – имя: перезапустить службу демона ssh: имя: состояние ssh: перезапущено – имя: перезапустить службу демона sssd: имя: состояние sssd: остановлено – имя: перезапустить службу демона httpd : имя: httpd состояние: запущено

В приведенном выше примере служба SSH будет перезапущена, а затем будет остановлена ​​служба SSSD. Демон httpd запускается ближе к концу. Поскольку Ansible является идемпотентным, любая служба, которая уже запущена или остановлена, не будет изменена, а перезапуск всегда изменяет состояние службы. Не забудьте проверить имя службы, так как разные дистрибутивы Linux используют другие имена даже для одной и той же службы, например ssh и sshd.

Резюме 👨‍💻

Ansible упрощает жизнь системного администратора, позволяя выполнять повторяющиеся и трудоемкие задачи в автоматическом режиме и сокращая количество человеческих ошибок и усилий. Кроме того, это позволит хранить данные конфигурации в центральном репозитории кода, таком как Git, что позволит нескольким пользователям сотрудничать и просматривать каждое действие.

Чтобы узнать больше об Ansible и его обширном наборе модулей, обратитесь к его документации.