Создание файла подкачки swap через Ansible плейбук
Этот Ansible плейбук предназначен для создания и настройки файла подкачки (swap file) на удаленном сервере. Файл подкачки используется для временного хранения данных, когда оперативной памяти недостаточно, тем самым улучшая работу системы при высокой нагрузке.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
- hosts: server become: true vars: swap_vars: size: 2G swappiness: 60 tasks: - name: Check whether "/swapfile" exists register: idCheckSwap stat: path: /swapfile - name: Fail it if "/swapfile" exists fail: msg: Swap file exists when: idCheckSwap.stat.exists == true - name: Allocate the swap file shell: fallocate -l {{ swap_vars.size }} /swapfile - name: Change permission of the swap file file: path: /swapfile mode: 600 - name: Create a swap area on the swap file shell: mkswap /swapfile - name: Activate the swap file as a swap memory shell: swapon /swapfile - name: Append configuration in /etc/fstab shell: echo "\n/swapfile swap swap defaults 0 0\n" >> /etc/fstab - name: Set swappiness level shell: sysctl vm.swappiness={{ swap_vars.swappiness }} - name: Append configuration in /etc/sysctl.conf shell: echo "\nvm.swappiness={{ swap_vars.swappiness }}\n" >> /etc/sysctl.conf |
Давайте разберем плейбук по шагам:
Основные переменные:
swap_vars.size: Определяет размер файла подкачки, в данном случае — 2G (2 гигабайта).swap_vars.swappiness: Устанавливает уровень «жадности» подкачки, который определяет, как часто система будет использовать файл подкачки. Значение 60 — это умеренное значение, указывающее системе использовать файл подкачки чаще, чем при более низких значениях.
Шаги выполнения:
- Проверка наличия файла подкачки (
/swapfile):
Проверяется, существует ли файл12345- name: Check whether "/swapfile" existsregister: idCheckSwapstat:path: /swapfile/swapfileна удаленном сервере. Результат сохраняется в переменнойidCheckSwap. - Ошибка при наличии файла подкачки:
Если файл12345- name: Fail it if "/swapfile" existsfail:msg: Swap file existswhen: idCheckSwap.stat.exists == true/swapfileуже существует, плейбук завершится с ошибкой и выведет сообщение «Swap file exists». Это предотвращает создание и настройку файла подкачки, если он уже существует. - Создание файла подкачки:
Создается файл123- name: Allocate the swap fileshell: fallocate -l {{ swap_vars.size }} /swapfile/swapfileс размером, указанным вswap_vars.size(2G) с помощью командыfallocate. - Изменение прав доступа к файлу подкачки:
Устанавливаются права доступа12345- name: Change permission of the swap filefile:path: /swapfilemode: 600600для файла/swapfile, что позволяет чтение и запись только владельцу (root). - Создание области подкачки на файле:
Команда123- name: Create a swap area on the swap fileshell: mkswap /swapfilemkswapинициализирует файл/swapfileкак область подкачки, готовую к использованию. - Активация файла подкачки:
Команда123- name: Activate the swap file as a swap memoryshell: swapon /swapfileswaponактивирует файл подкачки, делая его доступным для системы. - Добавление записи о файле подкачки в
/etc/fstab:
Добавляется запись в123- name: Append configuration in /etc/fstabshell: echo "\n/swapfile swap swap defaults 0 0\n" >> /etc/fstab/etc/fstab, чтобы файл подкачки автоматически активировался при загрузке системы. - Установка уровня swappiness:
Устанавливается значение123- name: Set swappiness levelshell: sysctl vm.swappiness={{ swap_vars.swappiness }}vm.swappinessдля текущей сессии, что определяет, как часто система будет использовать файл подкачки. - Добавление уровня swappiness в
/etc/sysctl.conf:
Добавляется значение123- name: Append configuration in /etc/sysctl.confshell: echo "\nvm.swappiness={{ swap_vars.swappiness }}\n" >> /etc/sysctl.confvm.swappinessв конфигурационный файл/etc/sysctl.conf, чтобы уровень swappiness применялся при каждой загрузке системы.
Основные моменты:
- Плейбук создает и активирует файл подкачки, а также настраивает систему так, чтобы эти изменения применялись при перезагрузке.
- Важные настройки, такие как размер файла и уровень swappiness, управляются через переменные, что позволяет легко их менять без изменения основного кода.
- Плейбук включает проверки и инструкции на случай наличия уже существующего файла подкачки, чтобы избежать нежелательных ошибок.
Таким образом, плейбук обеспечивает автоматизированное управление файлами подкачки с помощью Ansible, что полезно для администрирования серверов в крупных и сложных инфраструктурах.
Recommended Posts
Плейбук Ansible по развертыванию haproxy
15.02.2024
Отказоустойчивый кластер Redis + Sentinel
03.02.2024
