centos_pxe
Неавтоматизированная установка и настройка ОС через PXE для CentOS 7/8 и Fedora
Эта роль настраивает базовую инфраструктуру для локальной среды загрузки PXE, позволяя проводить неавтоматизированную установку CentOS 7, CentOS 8, Fedora 31 и других (с индивидуальной конфигурацией).
Она устанавливает и настраивает следующее:
ISO-образы установки и локальный RPM-репозиторий
- если ISO-образы установки отсутствуют локально, они будут скачаны и смонтированы. После монтажа их содержимое будет использовано для создания локального RPM-репозитория, который будет использован в процессе установки. Репозиторий также можно будет использовать позже для установки дополнительных RPM-пакетов.
TFTP-сервер и PXE
- нам это нужно, чтобы клиентские устройства могли загружаться через PXE.
Эта роль предварительно настраивает службу PXE с следующими параметрами:
- Загрузка с локального диска. Ничего не устанавливать
- Установить Fedora 31 вручную с графическим интерфейсом
- Установить CentOS 7 вручную с графическим интерфейсом
- Установить CentOS 8 вручную с графическим интерфейсом
- Базовая неавтоматизированная установка Fedora 31 в текстовом режиме с использованием Kickstart
- Базовая неавтоматизированная установка CentOS 7 в текстовом режиме с использованием Kickstart
- Базовая неавтоматизированная установка CentOS 8 в текстовом режиме с использованием Kickstart
Также устанавливаются все необходимые образы ядра, необходимые для правильной загрузки удаленных PXE-клиентов.
Веб-сервер Apache
- с минимальной предварительной настройкой будет использован для создания локально доступных списков каталогов всех RPM-пакетов.
Локальный репозиторий будет имитировать ту же структуру каталогов, что и публичные зеркала.
Доступ к ним будет локально по следующим адресам: (замените hostname.localdomain на ваш адрес)
- http://hostname.localdomain/fedora31
- http://hostname.localdomain/centos7
- http://hostname.localdomain/centos8
Файлы Kickstart
- эта роль развертывает файлы для неавтоматизированной установки CentOS7/8 и Fedora 31 из шаблонов. Они располагаются в каталоге kickstart в корне веб-сервера и доступны для всех клиентов.
Дополнительные заметки
При создании новой виртуальной машины в VirtualBox или KVM выделите не менее 2 ГБ оперативной памяти для гостевой ОС. Процесс установки CentOS, скорее всего, завершится неудачей, если выделить меньше. Объем оперативной памяти можно уменьшить после успешной установки.
Конечным пользователям рекомендуется просмотреть и настроить шаблоны конфигурации Kickstart. В их текущем виде они очень простые. Все они предполагают следующее:
- автоматическое разбиение с использованием LVM
- отключенный SELinux
- отключенный фаервол
- минимальный выбор программного обеспечения
- разрешенный вход под root
- один не-root администратор
- конфигурация сети с DHCP-клиентом
Идея минимизировать использование Anaconda и Kickstart для установки заключается в полагании на настройку после установки.
Требования
Apache
Требуется стандартная установка веб-сервера Apache, чтобы процесс Kickstart мог получить доступ к пакетам установки локально.
Простую роль Apache можно установить из Galaxy:
ansible-galaxy install mariuszczyz.centos_apache
DHCPd
Работающий локальный DHCP-сервер.
В качестве альтернативы можно настроить выделенный DHCP на сервере PXE, используя эту роль: Установка и настройка DHCP-сервера для CentOS и Fedora с помощью Ansible.
ISO-образы установки операционной системы
Эта роль предполагает, что ISO-образы установки операционной системы находятся в /isos/
. Оставьте так или измените в defaults/main.yml
. Однако ISO-образы должны быть скачаны перед запуском этой роли. В противном случае у нее не будет доступа ко всем файлам, необходимым для правильной настройки предварительной загрузочной среды. Задача загрузки ISO была намеренно исключена из этой роли.
Файлы Kickstart
Минимальные изменения, необходимые для работы файлов установки Kickstart:
rootpw --iscrypted PASSWORD_HASH
- хеш пароля root
Инструкции по созданию хеша пароля root для Kickstart
Запустите эту команду в командной строке: openssl passwd -6
Доступные алгоритмы:
-6 Алгоритм пароля на основе SHA512
-5 Алгоритм пароля на основе SHA256
-apr1 Алгоритм пароля на основе MD5, вариант Apache
-1 Алгоритм пароля на основе MD5
-aixmd5 Алгоритм пароля на основе MD5 для AIX
-crypt Стандартный алгоритм пароля Unix (по умолчанию)
Будет предложено ввести пароль, затем выведется хеш:
Примечание: ниже не реальный пароль
Пароль:
Проверка - Пароль:
$6$gdGbs42fZoKUVwQH$eY2nId.oONxK9MneuM58Vg2NPEuftngWmwfK09YW4DQLs3Hcq5F5HEohDEcM.Ci3p8gQrVuygTfScim7MY6QI1
Остальные настройки могут быть дополнительно настроены в зависимости от ваших нужд, таких как разбиение на разделы, часовой пояс, дополнительные пакеты и т. д.
Переменные роли
Переменная | Комментарий | Пример |
---|---|---|
ISOS_PATH | Директория, где будут храниться ISO-образы установки | /isos |
NAME | Название операционной системы | fedora31 |
ISO_LOCATION | Полный путь к ISO-образу | /isos/CentOS-7-x86_64-Everything-1908.iso |
MOUNT_POINT | Полный путь, где ISO-образ должен монтироваться в локальной файловой системе | /var/www/centos7 |
KICKSTART_HASHED_ROOT_PASSWORD | Хешированный пароль root для Kickstart. Используйте "pwkickstart" или "openssl passwd -6" для генерации | bEzYf1S49$yu |
NON_ROOT_USER_NAME | Учетная запись не-root администратора для создания в новой системе | mariusz |
NON_ROOT_USER_PASSWORD | Хешированный пароль пользователя для Kickstart. Используйте "pwkickstart" или "openssl passwd -6" для генерации | bEzYf1S49$yu |
TIMEZONE | Местный часовой пояс | America/Chicago |
NTP_SERVERS | Сетевые серверы времени. Локальные или публичные. | ntp.localdomain |
FEDORA_HOSTNAME | Имя по умолчанию для нового сервера Fedora | fedora31.localdomain |
FEDORA_NETWORK_INSTALLATION_URL | Здесь Anaconda будет загружать пакеты Fedora | http://mirror.steadfastnet.com/fedora/releases/31/Everything/x86_64/os/ |
CENTOS7_HOSTNAME | Имя по умолчанию для нового сервера CentOS | centos7.localdomain |
CENTOS7_NETWORK_INSTALLATION_URL | Здесь Anaconda будет загружать пакеты CentOS | http://192.168.1.109/centos7 |
CENTOS8_HOSTNAME | Имя по умолчанию для нового сервера CentOS | centos8.localdomain |
CENTOS8_BASE_OS_URL | URL-адрес репозитория пакетов CentOS 8 BaseOS | http://mirror.steadfastnet.com/centos/8/BaseOS/x86_64/os/ |
CENTOS8_APPSTREAM_REPO_URL | URL-адрес репозитория пакетов CentOS 8 AppStream | http://mirror.steadfastnet.com/centos/8/AppStream/x86_64/kickstart/ |
Зависимости
mariuszczyz.centos_apache
mariuszczyz.centos_dhcpd
Установите зависимости из Ansible Galaxy с помощью requirements.yml
# Установка из Ansible Galaxy
- src: mariuszczyz.centos_apache
- src: mariuszczyz.centos_dhcpd
Пример плейбука
Вручную
Загрузите эту роль из Ansible Galaxy вручную:
ansible-galaxy install mariuszczyz.centos_pxe
Не вручную
Galaxy
Или подключите эту роль из Ansible Galaxy через requirements.yml
# requirements.yml
# Установка из Ansible Galaxy
- src: mariuszczyz.centos_pxe
Вариант GitHub
# requirements.yml
# Установка из репозитория GitHub
- src: https://www.github.com/mariuszczyz/centos_pxe
Затем выполните команду для установки всех зависимостей из Ansible Galaxy:
ansible-galaxy install -r requirements.yml
Запуск
Если вы хотите запустить эту роль отдельно, создайте новый файл: playbook.yml
(назовите как угодно) с следующим содержимым:
- hosts: servers
user: ВАШ ПОЛЬЗОВАТЕЛЬ
become: True
roles:
- { role: mariuszczyz.centos_pxe, tags: ['centos_pxe'] }
Запустите:
ansible-playbook -i hosts playbook.yml
Лицензия
BSD
Информация об авторе
Автор: Мариуш Чиж
Дата: 12/2019
mariuszczyz.com
CentOS 7/8 and Fedora PXE Boot Server Role
ansible-galaxy install mariuszczyz/centos-pxe