环境准备:工欲善其事,必先利其器

说实话,我见过太多同学一上来就急着写脚本,结果环境没配好,折腾半天连个云主机都连不上。嗯,这章咱们就把基础打牢。说白了,后面所有自动化脚本都依赖今天搭建的环境。

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 命令死活找不到,折腾了半小时。

⚠️ 注意:Windows 上如果同时装了多个 Python 版本,建议用 py -3.9 来指定版本,避免冲突。

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 导出依赖清单,方便别人复现环境。
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。

🔐 安全建议:生产环境用 IAM Role 或 AWS Secrets Manager,别把密钥写代码里。

阿里云 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}")
💡 建议把测试脚本保存为 check_env.py,每次换环境跑一遍,省得后面调试时才发现是环境问题。

常见问题与避坑

  • pip 安装超时:换国内镜像源,比如阿里云镜像 pip install -i https://mirrors.aliyun.com/pypi/simple/ 包名
  • CLI 命令找不到:检查 PATH 环境变量,或者用绝对路径执行
  • 凭证错误:检查 AccessKey 是否过期,IAM 用户是否有对应权限
  • 虚拟环境激活失败:Windows 上可能需要先执行 Set-ExecutionPolicy Unrestricted -Scope Process

好了,环境准备就到这里。下一章咱们开始写第一个自动化脚本——批量创建云主机。到时候你会发现,今天配的环境有多重要。