Ollama + Qwen3 セットアップ(Ubuntu上)

1. Ollamaの説明

Ollamaは、LLM(大規模言語モデル)をローカルで実行するためのオープンソースツールである。ユーザーはクラウドに依存せず、Qwen、Llama、Mistralなどの様々なAIモデルを実行できる。

主な特徴

実行方法

APIの活用

Ollamaは11434ポートでAPIサーバーを実行する。そして、APIを提供する。

curl http://localhost:11434/api/chat -d '{
  "model": "qwen3:14b",
  "messages": [{"role": "user", "content": "こんにちは"}]
}'

2. 概要

ここで説明するスクリプトは、Ubuntu上にOllamaをインストールし、systemdによる起動管理のもと、大規模言語モデル(Qwen3:14Bなど)をNVIDIA GPU対応で稼働させるための環境を構築する。

3. 前提条件

ハードウェア:

OS・環境:

ネットワーク:

4. 実行方法

スクリプトの準備:

末尾のスクリプトをsetup_ollama.shに保存
chmod +x setup_ollama.sh

スクリプトの実行:

./setup_ollama.sh

実行完了後の確認事項:

5. カスタマイズ可能なパラメータ

スクリプト先頭で定義されている以下の変数を必要に応じて編集することで構成を変更できる:

6. トラブルシューティング

7. セキュリティ上の注意

8. アンインストール手順(オプション)

以下のコマンドによりOllama関連の設定をすべて削除できます:

sudo systemctl stop ollama.service
sudo systemctl disable ollama.service
sudo rm /etc/systemd/system/ollama.service
sudo systemctl daemon-reload
sudo deluser --system ollama
sudo rm /usr/local/bin/ollama

9. Ollama + Qwen3 セットアップを行うスクリプト(Ubuntu上)

#!/bin/bash

###############################################################################
# Ollama 自動セットアップスクリプト(Ubuntu用)
#
# このスクリプトは以下を一括で行います:
#   1. OllamaバイナリのGitHubからの安全なインストール
#   2. ollama専用ユーザの作成(セキュリティ向上)
#   3. systemdサービスユニットの構成と有効化
#   4. GPUドライバのインストール確認
#   5. モデル(qwen3:14b)のダウンロード
#   6. UFWによるファイアウォール設定
#
# 🔧 必須条件:
#   - Ubuntu 20.04 または 22.04
#   - NVIDIA GPU(CUDA対応)
#   - sudo 権限
#
# 注意事項:
#   - 公開ポート11434は必要に応じてIP制限を追加してください
#   - ollamaユーザはログイン不可に設定しています
#   - モデルのダウンロードにはインターネット接続が必要です
#
# 実行方法:
#   chmod +x setup_ollama.sh
#   ./setup_ollama.sh
#
###############################################################################

set -e

### 設定
OLLAMA_VERSION="v0.1.29"
OLLAMA_PORT="11434"
OLLAMA_USER="ollama"
MODEL_NAME="qwen3:14b"

echo "=== 1. Ollama バイナリのインストール ==="
wget -q https://github.com/ollama/ollama/releases/download/${OLLAMA_VERSION}/ollama-linux-amd64 -O ollama
chmod +x ollama
sudo mv ollama /usr/local/bin/ollama
echo "→ インストール完了: $(ollama --version)"

echo "=== 2. ユーザ作成(存在しない場合のみ) ==="
if ! id "$OLLAMA_USER" &>/dev/null; then
    sudo useradd --system --no-create-home --shell /usr/sbin/nologin "$OLLAMA_USER"
    echo "→ ユーザ $OLLAMA_USER 作成済"
else
    echo "→ ユーザ $OLLAMA_USER は既に存在"
fi

echo "=== 3. systemd ユニット作成 ==="
sudo mkdir -p /var/lib/ollama
sudo chown ollama:ollama /var/lib/ollama
sudo tee /etc/systemd/system/ollama.service > /dev/null <<EOF
[Unit]
Description=Ollama AI Server
After=network.target

[Service]
User=${OLLAMA_USER}
Group=${OLLAMA_USER}
ExecStart=/usr/local/bin/ollama serve
Environment="OLLAMA_HOST=0.0.0.0:${OLLAMA_PORT}"
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
WorkingDirectory=/var/lib/ollama

[Install]
WantedBy=multi-user.target
EOF

echo "→ systemd ユニット作成完了"

echo "=== 4. systemd 起動と有効化 ==="
sudo systemctl daemon-reload
sudo systemctl enable ollama.service
sudo systemctl start ollama.service
sleep 2
sudo systemctl status ollama.service --no-pager

echo "=== 5. GPU ドライバインストール ==="
sudo ubuntu-drivers install -y || echo "→ ドライバ既にインストール済?"
nvidia-smi || echo "NVIDIA GPU"

echo "=== 6. モデルダウンロード(${MODEL_NAME})==="
ollama pull ${MODEL_NAME}
# モデルキャッシュを $HOME/.ollama に保持します。

echo "=== 7. UFW ファイアウォール設定 ==="
sudo apt update
sudo apt install ufw -y

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow ${OLLAMA_PORT}/tcp
# 必要なら制限付きアクセス(例:ローカルネットのみ)
# sudo ufw allow from 192.168.1.0/24 to any port ${OLLAMA_PORT} proto tcp
sudo ufw --force enable
sudo ufw status numbered

echo "完了! Ollama はポート ${OLLAMA_PORT} で稼働中です"