环境准备:工欲善其事,必先利其器
说实话,我见过太多同学一上来就急着写脚本,结果环境没配好,折腾半天连个云主机都连不上。嗯,这章咱们就把基础打牢。说白了,后面所有自动化脚本都依赖今天搭建的环境。
Python3 环境搭建
我个人习惯用 Python 3.8 以上版本。为什么?因为 3.6 以下已经停止维护了,你想想看,用个没人管的东西,出 bug 都没人修。
Linux 环境(CentOS/Ubuntu)
# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip -y
# CentOS/RHEL
sudo yum install python3 python3-pip -y
# 验证版本
python3 --version
pip3 --version
macOS 环境
# 用 Homebrew 安装
brew install python@3.9
# 或者直接下载官方安装包
# https://www.python.org/downloads/
Windows 环境
去官网下载安装包,记得勾选「Add Python to PATH」。我在项目中遇到过有人没勾这个,后面 pip 命令死活找不到,折腾了半小时。
pip 与虚拟环境
pip 是 Python 的包管理工具,说白了就是帮你装第三方库的。但有个坑——不同项目依赖的库版本可能不一样。比如项目 A 要 boto3 1.20,项目 B 要 boto3 1.26,直接装全局就乱套了。
虚拟环境就是解决这个问题的。每个项目有自己的小天地,互不干扰。
# 安装 virtualenv(可选,Python3 自带 venv)
pip3 install virtualenv
# 创建虚拟环境
python3 -m venv myenv
# 激活虚拟环境
# Linux/macOS
source myenv/bin/activate
# Windows
myenv\Scripts\activate
# 退出虚拟环境
deactivate
我个人习惯在项目根目录下建一个 .venv 文件夹,然后把它加到 .gitignore 里。这样团队其他人拉代码后,各自创建自己的虚拟环境就行。
pip freeze > requirements.txt
# 别人安装时
pip install -r requirements.txt
云厂商 CLI 工具安装
CLI 工具是咱们和云平台对话的桥梁。说白了,你写的 Python 脚本最终调用的是这些 CLI 或者 SDK。我建议两个都装,CLI 用来快速测试,SDK 用在正式脚本里。
AWS CLI 安装
# 方法一:pip 安装(推荐)
pip3 install awscli
# 方法二:官方安装包
# Linux
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# macOS
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
# 验证安装
aws --version
配置凭证
aws configure
# 输入 Access Key ID
# 输入 Secret Access Key
# 默认区域(如 ap-northeast-1)
# 输出格式(推荐 json)
我曾经犯过一个低级错误——把 Access Key 直接写死在脚本里,结果代码上传到 GitHub 被公开了。嗯,从那以后我都是用环境变量或者 IAM Role。
阿里云 CLI 安装
# 方法一:pip 安装
pip3 install aliyun-cli
# 方法二:官方安装包
# Linux
wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz
tar xzvf aliyun-cli-linux-latest-amd64.tgz
sudo mv aliyun /usr/local/bin/
# macOS
wget https://aliyuncli.alicdn.com/aliyun-cli-macosx-latest-amd64.tgz
tar xzvf aliyun-cli-macosx-latest-amd64.tgz
sudo mv aliyun /usr/local/bin/
# 验证安装
aliyun --version
配置凭证
aliyun configure
# 输入 AccessKey ID
# 输入 AccessKey Secret
# 默认区域(如 cn-hangzhou)
# 默认语言(zh 或 en)
你想想看,如果每次手动登录网页去操作云资源,那效率得多低。CLI 装好后,一条命令就能创建一台 ECS 实例:
# 创建一台 ECS 实例(阿里云)
aliyun ecs CreateInstance \
--ImageId ubuntu_20_04_x64_20G_alibase_20210318.vhd \
--InstanceType ecs.g6.large \
--SecurityGroupId sg-xxxxx \
--VSwitchId vsw-xxxxx
验证环境是否就绪
装完别急着走,跑个简单的测试脚本,确保所有组件都能正常工作。
# test_env.py
import boto3 # AWS SDK
from aliyunsdkcore.client import AcsClient # 阿里云 SDK
print("Python 版本:", __import__('sys').version)
print("boto3 版本:", boto3.__version__)
# 测试 AWS 连接
try:
sts = boto3.client('sts')
identity = sts.get_caller_identity()
print(f"AWS 连接成功: {identity['Arn']}")
except Exception as e:
print(f"AWS 连接失败: {e}")
# 测试阿里云连接
try:
client = AcsClient(
'your-access-key-id',
'your-access-key-secret',
'cn-hangzhou'
)
print("阿里云 SDK 初始化成功")
except Exception as e:
print(f"阿里云 SDK 初始化失败: {e}")
常见问题与避坑
- pip 安装超时:换国内镜像源,比如阿里云镜像
pip install -i https://mirrors.aliyun.com/pypi/simple/ 包名 - CLI 命令找不到:检查 PATH 环境变量,或者用绝对路径执行
- 凭证错误:检查 AccessKey 是否过期,IAM 用户是否有对应权限
- 虚拟环境激活失败:Windows 上可能需要先执行
Set-ExecutionPolicy Unrestricted -Scope Process
好了,环境准备就到这里。下一章咱们开始写第一个自动化脚本——批量创建云主机。到时候你会发现,今天配的环境有多重要。