自宅サーバのProxmoxインフラ構築計画
Proxmoxインフラ構築計画
現状確認(完了)
サーバー情報
- ホスト名: minase
- OS: Proxmox VE (Debian 12 Bookworm base)
- スペック:
- CPU: 4コア
- メモリ: 16GB(使用中: 1.7GB、空き: 13GB)
- ディスク: 94GB(使用中: 19GB、空き: 71GB)
- Swap: 8GB
構築計画
全体構成
┌─────────────────────────────────────┐
│ Proxmox ホスト (minase) │
│ CPU: 4コア / RAM: 16GB / Disk: 94GB │
└─────────────────────────────────────┘
│
┌─────────┼─────────┐
│ │ │
┌───▼───┐ ┌──▼────┐ ┌──▼─────┐
│ rivi │ │GitLab │ │Redmine │
│ (既存) │ │統合管理│ │ (予定) │
└───────┘ └───────┘ └────────┘
1. GitLab統合管理LXC
目的
- Git リポジトリ管理
- CI/CD パイプライン実行
- Terraform / Ansible の実行環境
スペック
- タイプ: LXCコンテナ(統合型)
- OS: Debian 12 / Ubuntu 22.04
- メモリ: 4-6GB
- ディスク: 20GB
- CPU: 2コア
インストールするツール
- GitLab CE (Community Edition)
- GitLab Runner
- Terraform
- Ansible
- Git
機能
- リポジトリ管理: プライベートGitホスティング
- CI/CDパイプライン: 自動テスト・デプロイ
- インフラ自動化: Terraform + Ansibleの実行
- Issue管理: プロジェクト管理(簡易版)
2. Redmine LXC
目的
- 個人用プロジェクト管理
- タスク管理・課題追跡
スペック
- タイプ: LXCコンテナ
- OS: Debian 12 / Ubuntu 22.04
- メモリ: 1-2GB
- ディスク: 8-10GB
- CPU: 1-2コア
インストール方法
- 直接インストール(Ruby + Rails + Redmine)
- Ansible Playbookで自動化
アクセス
- ローカル環境のみ(外部公開なし)
ワークフロー
開発フロー
┌──────────────┐
│ ローカルPC │
│ - コード編集 │
│ - Git操作 │
└──────┬───────┘
│ git push
↓
┌──────────────────────┐
│ GitLab統合管理LXC │
│ - リポジトリ受信 │
│ - CI/CDトリガー │
└──────┬───────────────┘
│ Webhook / Pipeline
↓
┌──────────────────────┐
│ GitLab Runner実行 │
│ - Terraform apply │
│ - Ansible playbook │
└──────┬───────────────┘
↓ 自動構築
┌──────────────────────┐
│ Redmine / 他サービス │
└──────────────────────┘
GitHub公開フロー
GitLab (プライベート開発)
├─ すべてのプロジェクト
├─ 実験的なコード
└─ CI/CD実行
↓ ミラーリング(公開プロジェクトのみ)
GitHub (パブリック)
└─ 公開用リポジトリ
実現方法:
- GitLabの Mirror Repository 機能
- または Git の複数リモート設定
- または GitLab CI/CD での自動push
リソース配分(想定)
| サービス | メモリ | CPU | ディスク | 用途 |
|---|---|---|---|---|
| Proxmox ホスト | 1.7GB | - | 19GB | 基盤 |
| rivi (既存) | ~100MB | 少 | 少 | Flask Web |
| GitLab統合管理 | 4-6GB | 2 | 20GB | Git + CI/CD + IaC |
| Redmine | 1-2GB | 1 | 10GB | プロジェクト管理 |
| 空き | 5-7GB | - | 45GB | 余裕 |
インフラ as Code 方針
管理ツール
- Terraform: LXCコンテナの作成・管理
- Ansible: ソフトウェアのインストール・設定
- GitLab CI/CD: 自動実行パイプライン
コード管理
- すべてのインフラコードをGitLab管理
- ローカルPCで開発・編集
- GitLabで実行
再現性
- コードベースでインフラを管理
- 環境の再構築が容易
- ドキュメント代わりになる
今後の拡張性
将来追加予定のサービス例
- 各種Webサービス
- データベースサーバー
- 監視・ログ管理ツール
拡張時の対応
- すべてTerraform + Ansibleで自動構築
- GitLab CI/CDから実行
- コードはGitで管理
次のステップ
Phase 1: GitLab統合管理LXC構築
- LXCコンテナ作成
- GitLab CEインストール
- Terraform / Ansibleセットアップ
- ローカルPCとの接続設定
Phase 2: Redmine構築
- Ansible Playbook作成
- TerraformでLXC作成
- Ansibleで自動インストール
- 動作確認
Phase 3: CI/CD パイプライン構築
- GitLab CI設定
- 自動デプロイパイプライン
- GitHub ミラーリング設定
備考
New Relic活用
- アラート設定(CPU 80%超、ディスク 90%超)
- 週次レポート有効化
- サービス監視設定
セキュリティ
- すべてローカル環境内で完結
- 外部公開はGitHubミラーリングのみ
- SSH鍵認証の徹底
バックアップ
- LXCスナップショット定期取得
- 重要なコードはGit管理
- Proxmox標準バックアップ機能活用