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/hosts
dbs_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_editor
dbs_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/ansible-debian-bootstrap
Лицензия
gpl-2.0
Загрузки
6460
Владелец
CEO/CTO/SRE triplestack.fr / daemonit.com