第二章:环境准备与工具安装
最后更新: 2024-01-01
作者: DevOps Team
页面目录
第二章:环境准备与工具安装
本章将帮助你搭建一个完整的 DevOps 工作环境,涵盖开发工具、容器平台、编排工具以及 CI/CD 系统的安装和配置。
2.1 开发环境准备
2.1.1 基础软件安装
Linux (Ubuntu/Debian) 环境:
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y \
curl \
wget \
vim \
git \
unzip \
tar \
gzip \
ca-certificates \
gnupg \
lsb-release
macOS 环境:
# 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装基础工具
brew install git docker kubectl helm terraform ansible
Windows 环境:
推荐使用 WSL2 (Windows Subsystem for Linux):
# 在 PowerShell 中以管理员身份运行
wsl --install -d Ubuntu-22.04
# 安装 Windows 终端
winget install Microsoft.WindowsTerminal
2.1.2 Git 安装与配置
# 安装 Git
# Ubuntu/Debian
sudo apt install git
# macOS
brew install git
# 配置用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 配置默认分支名
git config --global init.defaultBranch main
# 启用颜色输出
git config --global color.ui auto
# 设置默认编辑器
git config --global core.editor vim
# 配置 SSH 密钥
ssh-keygen -t ed25519 -C "your.email@example.com"
cat ~/.ssh/id_ed25519.pub
2.2 Docker 安装与配置
2.2.1 Docker Engine 安装
Ubuntu/Debian 系统:
# 移除旧版本
sudo apt remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
# 添加 Docker GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加 Docker 仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
newgrp docker
# 验证安装
docker --version
docker run hello-world
Docker 配置优化:
// /etc/docker/daemon.json
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn"
],
"dns": ["8.8.8.8", "8.8.4.4"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"storage-driver": "overlay2",
"live-restore": true
}
# 重启 Docker 服务
sudo systemctl restart docker
sudo systemctl enable docker
2.2.2 Docker Compose 安装
# 下载 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装
docker-compose --version
2.3 Kubernetes 环境搭建
2.3.1 Minikube 单节点集群
Minikube 安装:
# 下载 Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 安装 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# 启动 Minikube
minikube start --driver=docker --image-mirror-country=cn --registry-mirrors=https://docker.mirrors.ustc.edu.cn
常用 Minikube 命令:
# 查看集群状态
minikube status
# 访问 Kubernetes Dashboard
minikube dashboard
# 停止集群
minikube stop
# 删除集群
minikube delete
# 切换 kubectl 上下文
kubectl config use-context minikube
2.3.2 Kind (Kubernetes in Docker)
# 安装 Kind
curl -Lo kind https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-$(uname)-amd64
chmod +x kind
sudo mv kind /usr/local/bin/
# 创建集群
kind create cluster --name devops-cluster
# 验证
kubectl cluster-info
kubectl get nodes
2.4 CI/CD 工具安装
2.4.1 Jenkins 安装
Docker 方式安装 Jenkins:
# 创建数据目录
mkdir -p ~/jenkins_home
# 运行 Jenkins
docker run -d \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v ~/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:lts
# 获取初始管理员密码
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
传统方式安装 Jenkins:
# 添加 Jenkins 仓库
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# 安装 Jenkins
sudo apt update
sudo apt install -y jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
2.4.2 GitLab Runner 安装
# 添加 GitLab 仓库
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
# 安装 GitLab Runner
sudo apt-get install gitlab-runner
# 注册 Runner
sudo gitlab-runner register \
--url "https://gitlab.com/" \
--registration-token "YOUR_TOKEN" \
--executor "docker" \
--docker-image "docker:24.0.5" \
--description "docker-runner" \
--locked="false"
2.4.3 ArgoCD 安装
# 创建命名空间
kubectl create namespace argocd
# 安装 ArgoCD
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/notifications.yaml
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/application.yaml
# 访问 ArgoCD UI
kubectl patch svc argocd-server -n argocd -p '{"spec":{"type":"LoadBalancer"}}'
# 获取初始密码
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
2.5 基础设施即代码工具
2.5.1 Terraform 安装
# 下载 Terraform
TERRAFORM_VERSION="1.6.6"
wget https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip
unzip terraform_${TERRAFORM_VERSION}_linux_amd64.zip
sudo mv terraform /usr/local/bin/
# 验证安装
terraform version
# 配置插件缓存
mkdir -p ~/.terraform.d/plugin-cache
cat > ~/.terraform.rc << 'EOF'
plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"
EOF
2.5.2 Ansible 安装
# Ubuntu/Debian
sudo apt update
sudo apt install -y ansible
# macOS
brew install ansible
# 验证安装
ansible --version
# 配置 Ansible
mkdir -p ~/.ansible
cat > ~/.ansible.cfg << 'EOF'
[defaults]
inventory = ~/ansible_inventory
host_key_checking = False
retry_files_enabled = False
gathering = smart
fact_caching = jsonfile
fact_caching_connection = /tmp/ansible_facts
fact_caching_timeout = 3600
[inventory]
enable_plugins = yaml, ini, host_list
EOF
2.6 监控工具安装
2.6.1 Prometheus 安装
# 下载 Prometheus
PROMETHEUS_VERSION="2.47.0"
wget https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz
tar xvf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz
cd prometheus-${PROMETHEUS_VERSION}.linux-amd64
# 移动二进制文件
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
# 创建配置目录
sudo mkdir -p /etc/prometheus
sudo mv prometheus.yml /etc/prometheus/
# 创建数据目录
sudo mkdir -p /var/lib/prometheus
# 创建 systemd 服务
sudo cat > /etc/systemd/system/prometheus.service << 'EOF'
[Unit]
Description=Prometheus
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus \
--web.console.libraries=/usr/share/prometheus/console_libraries \
--web.console.templates=/usr/share/prometheus/consoles
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# 启动 Prometheus
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
2.6.2 Grafana 安装
# 添加 Grafana 仓库
sudo apt install -y apt-transport-https software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
# 安装 Grafana
sudo apt update
sudo apt install -y grafana
# 启动服务
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
2.7 集成开发环境配置
2.7.1 VS Code 推荐插件
// settings.json
{
"extensions": {
"recommendations": [
"ms-azuretools.vscode-docker",
"ms-kubernetes-tools.vscode-kubernetes-tools",
"redhat.vscode-commons",
"ms-vscode.powershell",
"golang.go",
"ms-python.python",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"eamodio.gitlens",
"GitHub.copilot"
]
}
}
2.7.2 IDE 快捷键配置
# Git 常用快捷键
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline --graph --all'
alias gb='git branch'
alias gco='git checkout'
alias gd='git diff'
alias gsh='git stash'
alias gshp='git stash pop'
# Docker 快捷键
alias dps='docker ps'
alias dpsa='docker ps -a'
alias di='docker images'
alias dex='docker exec -it'
alias dlogs='docker logs -f'
alias dclean='docker system prune -af'
# Kubernetes 快捷键
alias k='kubectl'
alias kgp='kubectl get pods'
alias kgs='kubectl get svc'
alias kgd='kubectl get deployments'
alias kga='kubectl get all'
alias kdp='kubectl describe pod'
alias kds='kubectl describe svc'
alias kdd='kubectl describe deployment'
alias klf='kubectl logs -f'
alias kx='kubectl exec -it'
2.8 本章小结
本章完成了 DevOps 工作环境的搭建:
| 类别 | 安装内容 | 验证命令 |
|---|---|---|
| 基础工具 | Git, curl, vim | git --version |
| 容器平台 | Docker, Docker Compose | docker --version |
| 编排工具 | kubectl, Minikube/Kind | kubectl version |
| CI/CD | Jenkins, GitLab Runner, ArgoCD | 服务访问 |
| IaC | Terraform, Ansible | terraform version |
| 监控 | Prometheus, Grafana | curl localhost:9090 |
📌 下一章预告
下一章我们将学习 Git 版本控制基础,包括:
- Git 基础命令
- 分支管理策略
- Git 工作流
- 团队协作规范
💡 提示:建议将环境配置代码保存到 Git 仓库中,方便团队成员快速复现一致的环境。