这是一个用 Ansible 自动化配置 Mac 开发环境的项目。
- 安装和配置 Homebrew
- 安装 Oh My Zsh 并配置主题
- 配置 Git
- 安装和配置 Tmux
- 安装 Proto 工具管理器
- 通过 Proto 安装 AWS CLI
- macOS (支持 Intel 和 Apple Silicon)
- 需要管理员权限(用于安装软件包)
git clone https://github.com/weijiany/initial-mac.git
cd initial-mac
# 替换 YOUR_SUDO_PASSWORD 为你的管理员密码
./run.sh YOUR_SUDO_PASSWORD
或者,如果你不想在命令行中暴露密码:
# 设置环境变量
export SUDO_PASSWORD="your_password"
./run.sh "$SUDO_PASSWORD"
- 检查并安装 Homebrew - 如果未安装,会自动安装 Homebrew
- 安装 Ansible - 通过 Homebrew 直接安装 Ansible(无需 Python 环境管理)
- 运行 Ansible - 执行 Ansible playbook 来配置系统
可以手动安装 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
可以手动安装 Ansible:
brew install ansible
ansible --version
initial-mac/
├── run.sh # 主入口脚本
├── main.yml # Ansible 主 playbook
├── inventory/ # Ansible 主机清单
└── roles/ # Ansible 角色
├── homebrew/ # Homebrew 配置
├── oh_my_zsh/ # Oh My Zsh 配置
├── git/ # Git 配置
├── tmux/ # Tmux 配置
└── proto/ # Proto 工具管理器配置
该代码库使用 ansible homebrew 为一个全新的 mac 安装以及配置一个开发常用所需要的软件包和配置。
怎么运行:
./run.sh '{you sudo password}'
在安装 cask 的时候,有些软件需要 sudo 的密码。
暂时安装了:
软件 | 描述 | Homebrew 包名 |
---|---|---|
iTerm2 | 终端模拟器 | iterm2 |
LastPass | 密码管理器 | lastpass |
QQ 音乐 | 音乐播放器 | qqmusic |
Visual Studio Code | 代码编辑器 | visual-studio-code |
Zoom | 视频会议工具 | zoom |
IntelliJ IDEA | Java IDE | intellij-idea |
搜狗输入法 | 中文输入法 | sogouinput |
Postman | API 测试工具 | postman |
滴答清单 | 任务管理工具 | ticktick |
微信 | 即时通讯工具 | wechat |
企业微信 | 企业通讯工具 | wechatwork |
Slack | 团队协作工具 | slack |
Google Chrome | 网页浏览器 | google-chrome |
Raycast | 快速启动工具 | raycast |
NetNewsWire | RSS 阅读器 | netnewswire |
工具 | 描述 | Homebrew 包名 |
---|---|---|
autojump | 命令行强大的跳转工具 | autojump |
kubectl | Kubernetes 命令行工具 | kubectl |
zsh-autosuggestions | Oh My Zsh 自动提示插件 | zsh-autosuggestions |
zsh-syntax-highlighting | Oh My Zsh 语法高亮工具 | zsh-syntax-highlighting |
watch | 监控命令执行 | watch |
wget | 文件下载工具 | wget |
Graphviz | 图形可视化软件 | graphviz |
tmpwatch | 临时文件清理工具 | tmpwatch |
jq | JSON 处理工具 | jq |
yq | YAML 处理工具 | yq |
tmux | 终端复用器 | tmux |
Go | 编程语言 | go |
tree | 目录树显示工具 | tree |
expect | 自动化交互工具 | expect |
zsh | Shell 解释器 | zsh |
Docker | 容器化平台 | docker |
Docker Compose | 容器编排工具 | docker-compose |
GNU sed | 流编辑器 | gnu-sed |
Docker Credential Helper for ECR | AWS ECR 凭证助手 | docker-credential-helper-ecr |
安装完 docker-credential-helper-ecr 后,需要更新 ~/.docker/config.json
文件来启用它:
{
"credHelpers": {
"public.ecr.aws": "ecr-login",
"<your-account-id>.dkr.ecr.<region>.amazonaws.com": "ecr-login"
}
}
请将 <your-account-id>
和 <region>
替换为你的 AWS account 和 region。
工具 | 描述 | 版本 |
---|---|---|
AWS CLI | AWS 命令行工具 | 2.24.20 |
Go | Go 编程语言 | 1.24.1 |
Helm | Kubernetes 包管理器 | 3.17.1 |
Helmfile | Helm 声明式部署工具 | 1.0.0 |
jq | JSON 处理工具 | 1.7.1 |
kubectl | Kubernetes 命令行工具 | 1.32.2 |
Node.js | JavaScript 运行时 | 22.11.0 |
Proto | 工具管理器 | 0.49.5 |
Pulumi | 基础设施即代码工具 | 3.175.0 |
Python | Python 编程语言 | 3.10.11 |
SOPS | 密钥管理工具 | 3.10.2 |
Terraform | 基础设施即代码工具 | 1.12.1 |
Deno | JavaScript/TypeScript 运行时 | 2.3.6 |
Dive | Docker 镜像分析工具 | 0.13.1 |
如果上述软件不能满足需要,并且还想用 homebrew 安装,可以在下列两个数组中继续添加:
- cask: roles/homebrew/vars/main.yml > cask_list
- cli: roles/homebrew/vars/main.yml > cli_list
配置 git alias.l = "log --graph --date=format:'%Y-%m-%d' --pretty=format:'%C(cyan)%h%Creset %Creset%C(auto)%d %s %C(black bold)(%ad) %C(bold blue)<%an>'"