README.md (2111B)
1 # Vulcanus 2 3 インフラ環境における複数OS(Debian, Ubuntu, Gentoo Linux)の一元的なパッケージアップデートを自動化するための Ansible プレイブック。 4 5 ## 特徴 6 7 - **異種OS混在環境への対応**: `apt` を使用する Debian/Ubuntu 系と、`emerge` (Portage) を使用する Gentoo Linux のアップデートを単一のコマンドで並行実行。 8 - **柔軟な権限昇格**: 一般ユーザーからの `sudo` による昇格に加え、ミニマル環境(`devcontainer` 等)における `doas` を用いた権限昇格にホスト単位で対応。 9 10 ## ディレクトリ構成 11 12 ```text 13 ansible/ 14 ├── inventory.ini # ホスト定義および接続・権限昇格設定 15 ├── site.yml # 全体制御プレイブック 16 └── roles/ 17 ├── debian_base/ # Debian/Ubuntu 向けパッケージ更新タスク 18 │ └── tasks/ 19 │ └── main.yml 20 └── gentoo_base/ # Gentoo 向け Portage 同期・@world 更新タスク 21 └── tasks/ 22 └── main.yml 23 24 ``` 25 26 ## 事前準備 27 28 ### 1. SSH公開鍵の配置 29 30 コントロールノードの公開鍵を、対象ホストの各接続ユーザー(`root` または `tetsu`)の `~/.ssh/authorized_keys` に事前に登録すること。 31 ```bash 32 ssh-copy-id -o StrictHostKeyChecking=no username@host.ip 33 ``` 34 35 ### 2. インベントリの設定 36 37 `inventory.ini` を環境に合わせて変更する。接続ユーザーや、`doas` を使用するホスト固有の設定はインベントリ内で定義する。 38 39 ## 運用・実行手順 40 41 ### 疎通確認 (Ping) 42 43 すべての対象ホストに対してSSH経由で正常に介入できるかを確認する。 44 45 ```bash 46 ANSIBLE_HOST_KEY_CHECKING=False ansible all -m ping -i inventory.ini 47 ``` 48 49 ### アップデートの実行 50 51 権限昇格(`sudo` / `doas`)のパスワード対話入力を有効にしてプレイブックを実行する。 52 53 ```bash 54 ansible-playbook -i inventory.ini site.yml -K -k 55 ```