HanXHX.debian_bootstrap
Ansible Bootstrap для Debian/Devuan/Ubuntu/Raspbian
Эта роль настраивает хосты Debian/Devuan/Ubuntu/Raspbian:
- Настройка APT (sources.list)
- Установка минимальных пакетов (vim, htop и др.)
- Установка микрокода Intel/AMD, если необходимо
- Установка и настройка NTP-демона (OpenNTPd или NTP)
- Добавление групп, пользователей с SSH-ключами, sudo-привилегий
- Развертывание bashrc, vimrc для root
- Обновление некоторых альтернатив
- Настройка системы: имя хоста, часовой пояс и локализация
- Удаление системd, если это нужно
- Настройка параметров sysctl
Поддерживаемые версии
| ОС | Работает | Стабильная (активная поддержка) |
|---|---|---|
| Debian Stretch (9) | Да | Нет |
| Debian Buster (10) | Да | Да |
| Debian Bullseye (11) | Да | Да |
| Debian Bookworm (12) | Да | Да |
| Devuan Ascii (2) | Да | Нет |
| Raspbian Stretch (9) | Экспериментальная | Нет |
| Raspbian Buster (10) | Экспериментальная | Нет |
| Raspbian Bullseye (11) | Экспериментальная | Нет |
| Ubuntu Bionic (18.04) | Да | Нет |
| Ubuntu Focal (20.04) | Экспериментальная | Нет |
| Ubuntu Jammy (22.04) | Экспериментальная | Нет |
Требования
- Ansible >= 2.11
- Коллекции: ansible.posix collection / community.general
Переменные роли
Настройка APT
Эти переменные определяют имя хоста для настройки APT (нормальный репозиторий и бэкетпы):
dbs_apt_default_host: хост репозитория. Может заменить последний (установленный с этой ролью) на новыйdbs_apt_use_src: установка репозиториев "deb-src" (по умолчанию: ложь)dbs_apt_components: компоненты, используемые в sources.list (по умолчанию: "main contrib non-free non-free-firmware")
Настройка роли
dbs_set_hostname: если истина, изменить имя хостаdbs_clean_hosts: если истина, управляет файлом/etc/hostsdbs_set_locale: если истина, настраивает локализациюdbs_set_timezone: если истина, установить часовой поясdbs_set_ntp: если истина, установить и настроить OpenNTPddbs_set_apt: если истина, настроить репозиторий APT
Настройка системы
dbs_hostname: имя хоста системыdbs_hostname_use_strategy: стратегия, используемая для установки имени хоста, проверьте "use" в hostname module. Вы должны обновить эту переменную только если установка имени хоста не удалась (например, в LXC).dbs_default_locale: локализация системы по умолчаниюdbs_locales: список установленных локализацийdbs_timezone: часовой пояс системы. Если вам нужен "стандартный" часовой пояс, такой как UTC, используйте префикс "Etc/" (например: "Etc/UTC")dbs_sysctl_config: хэш параметров ядра, смотрите: default/main.ymldbs_use_systemd: удалить systemd, если установить в ложь (постоянно)dbs_use_dotfiles: перезаписать dotfiles root (bashrc, screenrc, vimrc)dbs_uninstall_packages: список пакетов для удаления
Альтернативы
dbs_alternative_editordbs_alternative_awk
NTPd
dbs_ntp_hosts: список имен хостов NTP серверовdbs_ntp_pkg: пакет, используемый для предоставления NTP: "openntpd" или "ntp"
Группа
dbs_groups: список групп
Каждая строка имеет несколько ключей:
name: (М) имя пользователя в системеsystem: (О) да/нет (по умолчанию: нет)state: (О) присутствует/отсутствует (по умолчанию: присутствует)
(М) Обязательно (О) По желанию
Пользователь
dbs_users: список пользователей
Каждая строка имеет несколько ключей:
name: (М) имя пользователя в системеpassword: (О) пароль в формате хеша (см. документацию ansible)clear_password: (О) пароль в открытом формате (не рекомендуется)update_password: (О) всегда / при_созданииshell: (О) по умолчанию /bin/bashcomment: (О) по умолчанию - пустая строкаsudo: (О) булевый (true = может использовать sudo)group: (О) основная группа (по умолчанию -nameбез пароля)groups: (О) список групп, разделенный запятойcreatehome: (О) да/нетsystem: (О) да/нет (по умолчанию: нет)ssh_keys: (О) список публичных SSH-ключейstate: (О) присутствует/отсутствует (по умолчанию: присутствует)
(М) Обязательно (О) По желанию
Примечания:
- если
passwordуказан,clear_passwordне используется! clear_passwordне является идемпотентным сupdate_password= всегда (по умолчанию)
Для получения дополнительной информации смотрите документацию mодуля пользователя ansible.
Переменные только для чтения
dbs_packages: список пакетов для установкиdbs_microcode_apt_distribution: местоположение пакета для установки микрокодаdbs_distro_packages: список специфичных пакетов для установки (связанных с версией ОС)dbs_is_docker: булевый. Истина, если текущий контейнер - это контейнер Docker
Зависимости
Нет.
Пример Playbook
- hosts: servers
roles:
- { role: HanXHX.debian_bootstrap }
О Docker
Из-за ограничений Docker, эти функции отключены:
- Удаление systemd
- Установка имени хоста
- Настройка sysctl
Как разрабатывать и тестировать эту роль
Способ с Vagrant
Установите vagrant + virtualbox или docker
vagrant up debian-bullseye # с virtualbox
vagrant up docker-debian-bullseye # с docker
Способ с Molecule
Установите:
pip install molecule molecule[docker]
Запустите:
molecule -vv -c molecule/_shared/base.yml converge -s ubuntu-22.04
Лицензия
GPLv2
Пожертвования
Если этот код вам помог или вы использовали его для своих проектов, не стесняйтесь угостить меня немного пивом! :beers:
- Bitcoin:
1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn - Ethereum:
0x63abe6b2648fd892816d87a31e3d9d4365a737b5 - Litecoin:
LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD - Monero:
45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ
Нет криптовалюты? :star: проект - это тоже способ сказать спасибо! :sunglasses:
Информация об авторе
- Twitter: @hanxhx_
О проекте
Normalize and prepare a Debian/Devuan/Ubuntu Linux server
Установить
ansible-galaxy install HanXHX.debian_bootstrapЛицензия
gpl-2.0
Загрузки
6.5k
Владелец
CEO/CTO/SRE triplestack.fr / daemonit.com
