WSL2开发环境自动化工具

用于自动化设置生产级WSL2 Ubuntu开发环境的工具,支持多语言开发、云服务和AI开发栈。

  • by pierreribeiro
  • Shell
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 pierreribeiro/claude-code-dev-box

使用说明

WSL2 Ubuntu 开发环境 - 优化后的 Claude 代码

版本1.0.3
状态第二阶段已完成 ✅ | 第三阶段已准备就绪 ⚡
目标WSL2 Ubuntu 24.04 LTS(长期支持版)

🎯 概述

为Claude Code智能体开发优化的生产级WSL2 Ubuntu开发环境自动化设置。

三层架构

Layer 3: AI Development Stack (Phases 10-13)
├── MCP Ecosystem (Universal integration protocol)
├── Task Master (Intelligent task orchestration)
├── SuperClaude Framework (Execution acceleration)
└── Claude Code CLI + Gemini CLI

Layer 2: Development Environment (Phases 3-9)
├── Languages: Python 3.12, Node.js LTS, Rust, Bun
├── Cloud: gcloud, aws, az, oci
├── IaC: Terraform, Ansible
├── Databases: PostgreSQL, Oracle Client, Supabase
├── Shell: Zsh + Oh My Zsh + Productivity tools
└── Productivity: bat, fzf, ripgrep, eza

Layer 1: System Foundation (Phases 0-2)
├── Package Manager: Homebrew (primary) ✅
├── System: build-essential, curl, git, libraries ✅
├── Python Manager: uv (fast pip alternative)
├── Node Manager: fnm (fast nvm alternative)
└── Rust Manager: cargo (via Homebrew)

🚀 快速入门

先决条件

  • 全新安装的WSL2 Ubuntu 24.04 LTS
  • 互联网连接
  • 用户拥有sudo权限

阶段0:引导启动(已完成 ✅)

# Clone repository
cd ~
git clone https://github.com/pierreribeiro/claude-code-dev-box.git
cd claude-code-dev-box

# Switch to develop branch
git checkout develop

# Make scripts executable
chmod +x scripts/*.sh

# Run Phase 0 bootstrap
./scripts/phase-0-bootstrap.sh

预期结果Git仓库已初始化,Ansible已安装,目录结构已创建。

第一阶段:系统准备(已完成 ✅)

# After Phase 0 completes, update repository
cd ~/claude-code-dev-box
git pull origin develop

# Execute Phase 1 (installs build-essential, libraries, utilities)
ansible-playbook playbooks/main.yml --tags phase1 --ask-become-pass

# Verify installation
dpkg -l | grep build-essential
gcc --version

预期结果已安装构建工具、开发库和实用程序。

第二阶段:自制软件安装(已完成 ✅)

# After Phase 1 completes
ansible-playbook playbooks/main.yml --tags phase2 --ask-become-pass

# Verify Homebrew
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
brew --version

预期结果在Shell中安装并配置了Homebrew。

第三阶段:核心工具(接下来 ⚡)

# After Phase 2 completes
ansible-playbook playbooks/main.yml --tags phase3 --ask-become-pass

📊 安装进度

  • [x] 阶段0Bootstrap 和 Git 仓库 ✅ 完成 (v0.1.1 - 修复错误:PEP 668)
  • [x] 第一阶段系统准备(apt 包)✅ 完成 (v1.0.1 - Sudo + 回调)
  • [x] 第二阶段Homebrew 安装 ✅ 完成 (v1.0.0 - 变量作用域修复)
  • [ ] 第三阶段核心工具(git、gh、jq、yq、tree)⏳ 下一个
  • [ ] 第四阶段语言运行时(Python、Node.js、Rust、Bun)
  • [ ] 第五阶段云服务提供商的命令行界面(CLIs)
  • [ ] 第六阶段基础设施即代码(IaC)工具(Terraform,Ansible Navigator)
  • [ ] 第七阶段数据库客户端
  • [ ] 第八阶段Shell 配置(Zsh,Oh My Zsh)
  • [ ] 第九阶段生产力工具
  • [ ] 第十阶段MCP生态系统
  • [ ] 第11阶段任务大师
  • [ ] 第12阶段超级克劳德框架
  • [ ] 第13阶段克劳德命令行界面 (CLI) 与 Gemini 命令行界面 (CLI)

📝 最新更新

2025-10-21:第二阶段完成 - 家酿软件安装

  • 已修复的问题:
    1. 在版本显示中清空 stdout_lines 数组
    2. 拒绝写入 /root/.bashrc
    3. 在上下文中变为可变分辨率
  • 根本原因在比赛层面捕获的变量,使用 become: yes 在根上下文中解析
  • 解决方案硬编码 dev_user: "pierrecr" 并且 dev_home: "/home/pierrecr"
  • 标签: phase-2-complete
  • 提交(代码/更改):
    • 56b4337 - 最终修复(硬编码变量)
    • c717be2 - 第二次尝试(路径模式)
    • 7df77b2 - 首次修复(安全版本显示)

2025-10-20:第一阶段错误修复 - Ansible 配置

  • 问题1: sudo: a password is required 在执行剧本(或操作手册)时出错
  • 解决方案1已更改 become_ask_pass = True 在 ansible.cfg 文件中
  • 第2期已弃用 community.general.yaml 回调警告
  • 解决方案2更新至 ansible.builtin.default 和;与;带着 result_format = yaml
  • 版本版本 1.0.1(修复了 ansible.cfg)
  • 提交(或:提交记录):

2025-10-15:阶段0错误修复 - Ubuntu 24.04符合PEP 668标准

  • 问题: externally-managed-environment 通过 pip 安装 pipx 时出现错误
  • 解决方案将 pipx 安装方式更改为基于 apt 的(sudo apt install pipx)
  • 标签: v0.1.1-bugfix-pep668
  • 测试在Ubuntu 24.04 LTS上17/17项测试通过
  • 提交(或:提交记录):

📁 仓库结构

claude-code-dev-box/
├── ansible.cfg                   # Ansible configuration ✅
├── README.md                     # This file
├── .gitignore                    # Git ignore rules
│
├── playbooks/                    # Ansible playbooks
│   └── main.yml                 # Master playbook (Phases 1-2) ✅
│
├── roles/                        # Ansible roles
│   ├── system_preparation/      # Phase 1 role ✅
│   ├── homebrew/                # Phase 2 role ✅
│   └── [Future roles]           # Created incrementally
│
├── inventory/                    # Environment inventories
│   ├── hosts.yml                # Localhost inventory ✅
│   └── group_vars/              # Variables ✅
│       └── all.yml
│
├── scripts/                      # Utility scripts
│   ├── phase-0-bootstrap.sh     # Phase 0 bootstrap ✅
│   ├── generate-phase-control.sh # Control artifact generator ✅
│   └── functional-tests.sh      # Validation tests (Phase 14)
│
├── docs/                         # Documentation
│   ├── PRD_WSL2_ClaudeCode_DevBox_Unified_v1.0.0.md
│   ├── control/                 # Phase control artifacts
│   │   ├── phase-0-control.md  ✅
│   │   ├── phase-1-control.md  ✅
│   │   └── phase-2-control.md  ✅
│   └── migration/               # Context migration artifacts
│
├── files/                        # Static files for deployment
├── templates/                    # Jinja2 templates
├── vars/                         # Variable files
└── tests/                        # Test infrastructure

📖 文档

⚡ 第三阶段执行指南

执行第三阶段的命令

cd ~/claude-code-dev-box
git pull origin develop
ansible-playbook playbooks/main.yml --tags phase3 --ask-become-pass

预期结果

# After successful execution:
$ brew --version
Homebrew 4.x.x

$ gh --version
gh version 2.x.x

$ jq --version
jq-1.x

$ yq --version
yq version 4.x.x

$ tree --version
tree v2.x.x

安装内容(约50-100 MB)

  • **GitHub 命令行界面 (CLI)**gh(认证、仓库操作)
  • JSON处理器jq(解析JSON数据)
  • YAML 处理器yq(解析YAML数据)
  • 目录树树(可视化)
  • Git 配置全局设置(user.name,user.email)

⏱️ 预计时间线

阶段组 阶段 持续时间 依赖项
基金会 0-2 2-3小时 无
发展 3-9 8-10点 基础(或“地基”)
AI Stack(人工智能技术栈) 10-13 6-8小时 开发阶段
验证 14 2小时 全部
总计 0-14 约20-24小时 渐进式

🎯 成功指标

指标 目标 验证
安装时间 <90 分钟 在新虚拟机上计时
可重复性 100% 3台测试虚拟机
恒等性 100% 连续运行3次
Ansible 代码规范检查得分 >95% ansible-lint
人工智能功能采用率 80% 使用周期4周

🛠️ 开发理念

  • 分阶段开发基于会话的增量式实现
  • 上下文迁移每个阶段都会产生控制+迁移相关的内容(或“产物”)
  • 幂等性所有剧本都可以安全地多次运行
  • 可回滚Git标签支持按阶段回滚
  • 生产就绪错误处理、验证、文档内置

已知问题及修复方案

第二阶段 - 带有“成为”功能的可变范围(已确定 ✅)

  • 问题在比赛层面捕获的变量 become: yes 在根上下文中解析
  • 修复硬编码 dev_user 和 dev_home 在变量文件中
  • 状态在提交 56b4337 中已解决
  • 学习避免在……时使用动态变量 become 上下文影响解决方案

第一阶段 - Ansible 配置(已修复 ✅)

  • 问题需要sudo密码的错误
  • 修复使用 --ask-become-pass 标志(在 ansible.cfg 中更新)
  • 状态在提交142eaf1中已解决

阶段0 - 符合PEP 668标准(已修复 ✅)

  • 问题在 Ubuntu 24.04 上,通过 pip 安装 pipx 遇阻
  • 修复通过apt包管理器安装pipx
  • 状态在v0.1.1-bugfix-pep668版本中已解决

🤝 贡献(或:参与贡献)

这是一个个人开发环境的设置。如有关于问题或建议:

  1. 打开一个议题来描述问题/增强功能
  2. 如适用,请指明特定阶段
  3. 包含系统信息(Ubuntu版本、现有工具)

📜 许可证

MIT 许可证 - 详情请参阅 LICENSE 文件

👤 作者

皮埃尔·里贝罗 - 高级数据工程师
针对Claude Code代理开发工作流程进行优化


当前状态:

  • ✅ 第0阶段完成(v0.1.1 - 修复PEP 668)
  • ✅ 第一阶段完成(v1.0.1 - Ansible 配置已修复)
  • ✅ 第二阶段完成(v1.0.0 - 变量作用域修复)

下一步行动执行第三阶段 → ansible-playbook playbooks/main.yml --tags phase3 --ask-become-pass

Git 仓库https://github.com/pierreribeiro/claude-code-dev-box 翻译为中文是:“https://github.com/pierreribeiro/claude代码开发工具箱”
分支发展
进步3/14阶段已完成(21%)