vulcanus

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 ```