debian_bootstrap

Ansible Bootstrap для Debian/Devuan/Ubuntu/Raspbian

Ansible Galaxy GitHub Workflow Status (with branch)

Эта роль настраивает хосты 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) Экспериментальная Нет

Требования

Переменные роли

Настройка 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: если истина, установить и настроить OpenNTPd
  • dbs_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.yml
  • dbs_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/bash
  • comment: (О) по умолчанию - пустая строка
  • 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:

Информация об авторе

О проекте

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