markosamuli.gcloud
安装 Google Cloud SDK
分支 | 流水线 |
---|---|
master |
这个 Ansible 角色用于在 Ubuntu 和 macOS 开发机器上安装 Google Cloud SDK。
请勿在生产服务器上使用此角色。
安装位置
该角色默认将 Cloud SDK 安装到 ~/google-cloud-sdk
。
要安装到其他位置,请更改 gcloud_install_dir
变量。它将被用作相对于用户主目录的安装目录。
例如,要安装到 ~/opt/google-cloud-sdk
,您可以设置:
# 安装到 ~/opt/google-cloud-sdk
gcloud_install_dir: "/opt"
为向后兼容,该角色会自动检测已存在的安装在 ~/opt/google-cloud-sdk
中,如果找到则默认使用此位置。
优先使用 Python 3
当前 Google Cloud SDK 安装程序会查找可用的 Python 版本,并优先选择 python2
。
您可以在安装时启用优先选择 python3
。
gcloud_prefer_python3: true
使用包管理器安装
要从可用的包管理器安装 Cloud SDK,请在 Ansible 配置中启用它:
# 从 APT 安装 Cloud SDK
gcloud_install_from_package_manager: true
这仅在支持 APT 仓库的 Debian 系统上受支持。
对 Shell 配置文件的更改
如果在您的主目录中存在 .bashrc
和 .zshrc
文件,本角色将对其进行更改。它会在进行更改时解析您的 dotfiles 中的任何符号链接。
所有安装选项的 gcloud
命令的代码完成将被加载。
如果您管理自己的 Shell 脚本 .dotfiles
或正在使用框架,您应将 gcloud_setup_shell
设置为 false
,并自行更新这些文件以保持它们的整洁。
# 请不要修改我的 dotfiles!
gcloud_setup_shell: false
手动配置 bash
当使用存档安装到 ~/google-cloud-sdk
时,请参考 .bashrc
配置:
if [ -d "$HOME/google-cloud-sdk" ]; then
export CLOUDSDK_ROOT_DIR="$HOME/google-cloud-sdk"
# 更新 Google Cloud SDK 的 PATH。
source $CLOUDSDK_ROOT_DIR/path.bash.inc
# 启用 gcloud 的 bash 完成。
source $CLOUDSDK_ROOT_DIR/completion.bash.inc
fi
如果您的 .bashrc
已经有 export CLOUDSDK_ROOT_DIR=
行,则不会修改文件。
当从 APT 安装时,请参考 .bashrc
配置:
if [ -d "/usr/share/google-cloud-sdk" ]; then
# 启用 gcloud 的 zsh 完成。
source /usr/share/google-cloud-sdk/completion.bash.inc
fi
手动配置 zsh
当使用存档安装到 ~/google-cloud-sdk
时,请参考 .zshrc
配置:
if [ -d "$HOME/google-cloud-sdk" ]; then
export CLOUDSDK_ROOT_DIR="$HOME/google-cloud-sdk"
# 更新 Google Cloud SDK 的 PATH。
source $CLOUDSDK_ROOT_DIR/path.zsh.inc
# 启用 gcloud 的 zsh 完成。
source $CLOUDSDK_ROOT_DIR/completion.zsh.inc
fi
如果您的 .zshrc
已经有 export CLOUDSDK_ROOT_DIR=
行,则不会修改文件。
当从 APT 安装时,请参考 .zshrc
配置:
if [ -d "/usr/share/google-cloud-sdk" ]; then
# 启用 gcloud 的 zsh 完成。
source /usr/share/google-cloud-sdk/completion.zsh.inc
fi
更新版本
在 Ansible 变量中更新 Cloud SDK 版本:
make update
编码风格
安装 pre-commit 钩子并验证编码风格:
make lint
运行测试
在 Ubuntu 和 Debian 上使用 Docker 运行测试:
make test
许可证
贡献
安装脚本基于 ansible/role-install-gcloud Ansible 角色 由 @chouseknecht 提供。