HanXHX.debian_bootstrap
Ansible Debian/Devuan/Ubuntu/Raspbian ブートストラップ
この役割は、Debian/Devuan/Ubuntu/Raspbian ホストをブートストラップします:
- APT の設定(sources.list)
- 最小限のパッケージをインストール(vim, htop など)
- 必要に応じて Intel/AMD マイクロコードをインストール
- NTP デーモンのインストールと設定 (OpenNTPd または NTP)
- グループやユーザーを追加し、SSH キーと sudoers を設定
- root 用の bashrc と vimrc を展開
- 一部の代替設定を更新
- システムの設定:ホスト名、タイムゾーン、ロケール
- 必要に応じて systemd を削除、無効化
- sysctl のチューニング
サポートされるバージョン
OS | 動作 | 安定版(アクティブサポート) |
---|---|---|
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 コレクション / community.general
役割変数
APT 設定
これらの変数は、APT を設定するためのホスト名を定義します(通常のリポジトリとバックポート):
dbs_apt_default_host
: リポジトリホスト。これはこの役割でインストールされた最後のものを新しいもので置き換えることができます。dbs_apt_use_src
: "deb-src" リポジトリをインストールするかどうか(デフォルト:false)dbs_apt_components
: sources.list で使用するコンポーネント(デフォルト:"main contrib non-free non-free-firmware")
役割のセットアップ
dbs_set_hostname
: true の場合、ホスト名を変更します。dbs_clean_hosts
: true の場合、/etc/hosts
ファイルを管理します。dbs_set_locale
: true の場合、ロケールを設定します。dbs_set_timezone
: true の場合、タイムゾーンを設定します。dbs_set_ntp
: true の場合、OpenNTPd をインストールして設定します。dbs_set_apt
: true の場合、APT リポジトリを設定します。
システム設定
dbs_hostname
: システムホスト名dbs_hostname_use_strategy
: ホスト名を設定するための戦略 (hostname モジュールで "use" を確認してください)。ホスト名の設定に失敗した場合のみ、この変数を更新する必要があります(例:LXC)。dbs_default_locale
: デフォルトのシステムロケールdbs_locales
: インストールされたロケールのリストdbs_timezone
: システムのタイムゾーン。 "標準" のタイムゾーンが必要な場合、接頭辞 "Etc/" を使用する必要があります(例:"Etc/UTC")。dbs_sysctl_config
: カーネルパラメータのハッシュ、詳細は default/main.ymlを参照。dbs_use_systemd
: false に設定すると systemd を削除します(永続的)。dbs_use_dotfiles
: root の dotfiles(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
: (M) システム上のユーザー名system
: (O) はい/いいえ(デフォルト:いいえ)state
: (O) 存在する/存在しない(デフォルト:存在する)
(M) 必須 (O) オプション
ユーザー
dbs_users
: ユーザーのリスト
各行にはいくつかのキーがあります:
name
: (M) システム上のユーザー名password
: (O) ハッシュ形式のパスワード(ansible ドキュメント参照)clear_password
: (O) プレーン形式のパスワード(推奨されません)update_password
: (O) 常に / 作成時shell
: (O) デフォルトは /bin/bashcomment
: (O) デフォルトは空文字列sudo
: (O) ブール値(true = sudo 可能)group
: (O) メイングループ(デフォルトはname
でパスワードなし)groups
: (O) カンマ区切りのグループリストcreatehome
: (O) はい/いいえsystem
: (O) はい/いいえ(デフォルト:いいえ)ssh_keys
: (O) SSH 公開鍵のリストstate
: (O) 存在する/存在しない(デフォルト:存在する)
(M) 必須 (O) オプション
注意:
password
が指定された場合、clear_password
は使用されません!clear_password
はupdate_password
= 常に(デフォルト)とは非冪等です。
詳細については、ansible ユーザーモジュールのドキュメントを参照してください。
読み取り専用変数
dbs_packages
: インストールするパッケージのリストdbs_microcode_apt_distribution
: マイクロコードをインストールするパッケージの場所dbs_distro_packages
: インストールする特定のパッケージのリスト(OS バージョンに関連)dbs_is_docker
: ブール値。現在が Docker コンテナであれば true。
依存関係
なし。
例 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:
- ビットコイン:
1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
- イーサリアム:
0x63abe6b2648fd892816d87a31e3d9d4365a737b5
- ライトコイン:
LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
- モネロ:
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