在 Windows PowerShell 下安装 lain
WSL 很好用, 但在我们团队的项目中, WSL 2.0 与 EasyConnect 这款垃圾软件不对付, 不少长期使用 Windows 的同事们, 唯一的选择便是在 PowerShell 下使用 lain. 好在 Python / Kubernetes / Helm 在 Windows 下的兼容性都非常好, 因此整个过程比较顺利, 因此在这里记录下安装流程, 以及沿途的一些最佳实践.
提前准备: 包管理器, 以及其他生产力工具
接下来要安装不少东西, 一个个下载安装包那可太原始了. 好在 Windows 世界已经出现了 Chocolatey 这种好东西, 途中所需的各种软件基本都可通过他来安装, 所以不要犹豫立刻拿去用吧.
无论哪个操作系统, 在 Shell 下切换目录是一个输入量非常大的事情, 一定要趁早优化掉. 在 Linux / Mac 上我一直用 fasd, PowerShell 下我也找到了类似的工具: z.ps, 不过项目 README 里的安装流程有些欠维护, 已经有更轻松的安装方式了, 比如这篇文章.
lain 往往是在企业内网维护发版的, 以 OpenVPN 为例, 也可以用 choco install openvpn-connect
来安装.
提前准备: lain 依赖的三方软件
以管理员模式打开 PowerShell, 接下来安装的各种东西或多或少都需要管理员权限.
首先安装 Python Runtime: choco install python
. 安装完以后请确认环境变量设置正确, 如果你不知道在 Windows 下如何修改环境变量, 随手一搜就有手把手教程.
- 将 Python Package 的可执行文件目录加入到
$PATH
, 如果你没有使用 virtualenv, 那么这个路径一般是c:\users\$UESR\appdata\roaming\python\python310\Scripts
- 添加环境变量
PYTHONUTF8=1
, 中文 Windows 系统下默认编码是 GBK, lain 会报错
choco install git
# client / server 的版本最好匹配上
choco install kubernetes-cli --version=1.20.4
choco install kubernetes-helm
其实完整使用 lain 还需要 docker, 这个情况稍微复杂一些. 长话短说, 不建议使用 docker-desktop, 而是尽量让服务器来帮你构建:
# 由于是连接服务器的 docker daemon 做事情, 因此这里只需要安装 client 就够了
choco install docker
lain --remote-docker build --push
当然了, 更好的做法就是推到代码仓库, 让 CI 帮你做事情, 直接隔离各种本地环境问题. 不过如果你真的铁了心要在 Windows 本地做 lain build
, 也可以 choco install docker-desktop
, 只不过由于 Windows Docker 也是在用 WSL 虚拟机做事情, 出问题做排查的时候要额外注意, 确保虚拟机资源充裕.
这样一来, lain 所需的各种依赖软件就到位了.
安装 lain, 以及验证
从你的团队的内网 PyPI 上直接安装即可:
pip -i https://pypi.example.com/pypi/simple/ install -U lain_cli
安装完毕以后, 用 dummy 来进行一番验证吧:
git clone https://github.com/timfeirg/dummy
lain use test
cd dummy
lain init
lain secret show
lain --remote-docker build --push
lain deploy
这样一个流程跑通, 就代表 lain 可以在 PowerShell 下正常使用了, 再见.