Linux系统深度部署Ollama指南:从安装到生产环境实践

前置环境准备

在开始安装Ollama之前,请确保您的Linux系统满足以下要求:

  • 64位操作系统(推荐Ubuntu 22.04 LTS或CentOS 9)
  • 至少8GB内存(运行7B模型的最低要求)
  • 20GB可用磁盘空间
  • 已安装curl、wget等基础工具
  • 支持CUDA的NVIDIA显卡(可选,用于GPU加速)

验证系统架构:

uname -m  # 应显示x86_64或aarch64

安装方法一:官方脚本自动安装

curl -fsSL https://ollama.ai/install.sh | sh

安装过程解析:

  1. 自动检测系统架构
  2. 创建专用用户ollama
  3. 设置systemd服务
  4. 下载最新版本二进制文件(当前版本v0.1.32)
  5. 配置环境变量

安装后验证:

systemctl status ollama
ollama --version

手动编译安装(适合定制需求)

  1. 安装Go语言环境:
wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
  1. 克隆仓库:
git clone https://github.com/jmorganca/ollama.git
cd ollama
  1. 编译构建:
make  # 生成dist目录下的可执行文件
  1. 安装服务:
sudo cp dist/ollama /usr/local/bin/
sudo cp scripts/ollama.service /etc/systemd/system/
sudo systemctl daemon-reload

Docker容器化部署

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

数据持久化配置:

docker volume create ollama
docker run -d \
  --gpus=all \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  ollama/ollama

模型管理实战

  1. 下载Llama2模型:
ollama pull llama2:13b  # 指定版本标签
  1. 运行对话:
ollama run llama2 "用golang实现快速排序"
  1. 模型列表管理:
ollama list  # 查看已下载模型
ollama cp llama2:13b my-llama2  # 创建模型副本
ollama rm mistral:7b  # 删除模型

高级配置技巧

  1. 修改默认存储路径:
sudo mkdir /opt/ollama
sudo chown ollama:ollama /opt/ollama
sudo systemctl edit ollama

添加配置:

[Service]
Environment="OLLAMA_MODELS=/opt/ollama"
  1. GPU加速配置(NVIDIA):
curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart ollama
  1. 自定义模型配置: 创建Modelfile:
FROM llama2:13b

PARAMETER num_ctx 4096
PARAMETER temperature 0.7

SYSTEM """
你是一个资深Linux系统管理员,回答要专业准确
"""

构建自定义模型:

ollama create myadmin -f ./Modelfile

API集成示例

Python调用示例:

import requests

response = requests.post(
    "http://localhost:11434/api/generate",
    json={
        "model": "llama2:13b",
        "prompt": "解释Kubernetes的pod概念",
        "stream": False
    }
)
print(response.json()['response'])

性能优化指南

  1. 内存优化配置:
sudo systemctl edit ollama

添加内存限制:

[Service]
Environment="OLLAMA_NUM_PARALLEL=2"
Environment="OLLAMA_MAX_LOADED_MODELS=3"
  1. 使用vLLM加速:
pip install vllm
ollama serve --vllm --tensor-parallel-size 2
  1. 监控工具集成:
# Prometheus配置
ollama metrics --format prometheus

故障排查手册

常见错误及解决方案:

  1. CUDA内存不足:
OLLAMA_GPUMEMORY=80 ollama run llama2:70b
  1. 下载中断恢复:
ollama pull --insecure registry.ollama.ai/library/llama2:13b
  1. 端口冲突处理:
sudo systemctl edit ollama

修改:

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11435"
  1. 日志分析方法:
journalctl -u ollama -f -n 100

安全加固方案

  1. 启用HTTPS:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
sudo systemctl edit ollama

添加:

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_CERTIFICATE=/path/to/cert.pem"
Environment="OLLAMA_PRIVATE_KEY=/path/to/key.pem"
  1. 访问控制:
sudo ufw allow from 192.168.1.0/24 to any port 11434
  1. 用户权限隔离:
sudo useradd -m -s /bin/bash ollama-user
sudo setfacl -m u:ollama-user:rx /usr/local/bin/ollama

扩展应用场景

  1. 构建知识库系统:
ollama run llama2 "基于以下文档:[...] 回答关于网络配置的问题"
  1. 代码审查助手:
from ollama import Client

client = Client(host='http://localhost:11434')
response = client.generate(
    model='codellama:34b',
    prompt='审查这段Python代码的安全性:\n\nimport os\nos.system("rm -rf /")'
)
  1. 自动化运维脚本:
#!/bin/bash
SERVER_STATUS=$(ollama run llama2 "分析以下服务器指标:CPU ${CPU}%, 内存 ${MEM}%")
echo "$SERVER_STATUS" >> /var/log/server_monitor.log
正文到此结束
评论插件初始化中...
Loading...