Создание файла подкачки 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