システム管理

1. 環境変数の設定

必要な環境変数：
envCopyAWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_REGION=us-west-2
S3_BUCKET_NAME=sumasenrogaining
LOCATION=美濃加茂
PRINTER_NAME=Brother_HL_L3240CDW_series


2.プリンター設定

3.1 CUPSの設定

# CUPSの状態確認
systemctl status cups

# CUPSが動いていない場合は起動
sudo systemctl start cups
sudo systemctl enable cups

# プリンター一覧の確認
lpstat -p -d

3.2 プリンターの権限設定

# プリンターデバイスの確認
ls -l /dev/usb/lp*

# プリンターデバイスの権限設定
sudo chmod 666 /dev/usb/lp0

3.3 ネットワークプリンターの場合

config.yamlのprinterセクションを以下のように設定：
yamlCopyprinter:
  name: ipp://192.168.1.100:631/ipp/port1

4. Dockerイメージのビルドと起動
4.1 イメージのビルド
bashCopy# イメージのビルド
docker-compose build
4.2 コンテナの起動
bashCopy# コンテナの起動（バックグラウンド）
docker-compose up -d

# ログの確認
docker-compose logs -f
5. 動作確認
5.1 ログの確認
bashCopy# アプリケーションログの確認
tail -f logs/app.log

# エラーログの確認
tail -f logs/error.log

5.2 テスト印刷
bashCopy# テスト用PDFファイルをS3にアップロード
aws s3 cp test.pdf s3://sumasenrogaining/美濃加茂/scoreboard/test.pdf

5.3 プロセスの確認
bashCopy# コンテナの状態確認
docker-compose ps

# コンテナ内のプロセス確認
docker-compose exec printer ps aux

6. トラブルシューティング
6.1 印刷できない場合

CUPSの状態確認

bashCopydocker-compose exec printer lpstat -t

プリンターの権限確認

bashCopydocker-compose exec printer ls -l /dev/usb/lp0

プリンター接続の確認

bashCopydocker-compose exec printer lpinfo -v
6.2 S3接続エラーの場合

認証情報の確認

bashCopydocker-compose exec printer env | grep AWS

S3バケットへのアクセス確認

bashCopydocker-compose exec printer python3 -c "
import boto3
s3 = boto3.client('s3')
response = s3.list_objects_v2(Bucket='sumasenrogaining')
print(response)
"
6.3 ログの確認方法
bashCopy# 直近のエラーログ
docker-compose exec printer tail -f /logs/error.log

# アプリケーションログ
docker-compose exec printer tail -f /logs/app.log
7. 運用とメンテナンス
7.1 定期的なメンテナンス
bashCopy# ログローテーション確認
ls -l logs/

# ディスク使用量確認
du -sh data/ logs/

# 古いPDFファイルの削除
find data/files -name "*.pdf" -mtime +30 -delete
7.2 バックアップ
bashCopy# 設定ファイルのバックアップ
tar czf config-backup-$(date +%Y%m%d).tar.gz .env config.yaml

# 処理済みファイルログのバックアップ
cp data/${LOCATION}.filelog data/${LOCATION}.filelog.bak
7.3 アップデート手順
bashCopy# コンテナの停止
docker-compose down

# 新しいイメージのビルド
docker-compose build --no-cache

# コンテナの再起動
docker-compose up -d
8. セキュリティ考慮事項
8.1 認証情報の管理

.envファイルのパーミッションを600に設定
AWSアクセスキーは定期的にローテーション
本番環境では.envファイルをgitにコミットしない

8.2 ネットワークセキュリティ

コンテナネットワークは必要最小限の公開
プリンターアクセスは内部ネットワークに制限
AWS S3へのアクセスは特定のIPに制限

8.3 モニタリング

CloudWatchなどでS3アクセスログを監視
印刷ジョブの異常を検知して通知
エラーログの定期チェック
