ansible.install-gcloud
安装 gcloud
用于安装 Google Cloud SDK 及其组件,包括 Kubernetes 的 kubectl 命令行工具。如果您打算将东西部署到 Kubernetes,这个角色适合您,因为它将自动化在您的开发和部署主机上安装 CLI。
确定要安装的归档
在运行此角色之前,必须确定要安装的归档名称。不幸的是,没有自动化的方法来确定归档名称。您无法通过常规的包管理工具安装 SDK。请访问 SDK 网站 查找适合您系统的归档。一旦您确定了归档名称,将其输入到此角色中。
安装归档
此角色可以将归档下载到目标主机并进行安装 或 您可以已经下载该归档并在 Ansible 主机上可用,在这种情况下,角色会将归档复制到目标主机并进行安装。要下载并安装,请提供 gcloud_archive_name。要复制并安装,请提供 gcloud_archive_path。
组件安装在哪里?
Google 安装程序不会尝试将可执行文件链接或复制到 /usr/local/bin 或通常是环境 PATH 一部分的 bin 目录。相反,组件可执行文件位于 {{ gcloud_install_path }}/bin。如果您想添加链接或将文件复制到 bin 目录,请在角色执行后向您的播放书中添加额外的任务。
安装过程中会更新登录脚本,将 {{ gcloud_install_path }}/bin 添加到环境 PATH。如果您希望这种行为,请将 gcloud_update_path 设置为 true。安装程序将尝试更新用户的默认登录脚本。要更新特定脚本,请设置 gcloud_profile_path 的值。
有哪些组件可用?
使用 gcloud_additional_components 和 gcloud_override_components 中的组件 ID 值来控制将安装哪些组件。
组件名称 | 组件 ID | 大小 |
---|---|---|
Cloud Datastore 模拟器 | cloud-datastore-emulator | 15.9 MiB |
Cloud Datastore 模拟器(遗留) | gcd-emulator | 38.1 MiB |
Cloud Pub/Sub 模拟器 | pubsub-emulator | 10.8 MiB |
gcloud Alpha 命令 | alpha | < 1 MiB |
gcloud Beta 命令 | beta | < 1 MiB |
gcloud app Java 扩展 | app-engine-java | 131.0 MiB |
gcloud app PHP 扩展(Mac OS X) | app-engine-php-darwin | 21.9 MiB |
gcloud app Python 扩展 | app-engine-python | 7.2 MiB |
BigQuery 命令行工具 | bq | < 1 MiB |
Cloud SDK 核心库 | core | 4.1 MiB |
Cloud Storage 命令行工具 | gsutil | 2.6 MiB |
默认的 gcloud 命令集 | gcloud | |
kubectl | kubectl | 8.1 MiB |
要求
目标主机需要:
- tar
当然,如果您打算下载归档,目标主机需要能够访问外部网络。
角色变量
gcloud_archive_name
默认为 ''。如果设置,将从 Google 下载归档到目标主机。设置为归档文件的名称。例如:google-cloud-sdk-114.0.0-darwin-x86_64.tar.gz。
访问 SDK 网站 查找适合您系统的归档名称。
gcloud_archive_path
默认为 ''。Ansible 主机上 gcloud 归档文件的路径。如果定义,归档将被复制到目标主机。
gcloud_tmp_path
默认为 /tmp。设置为归档可以临时放置的路径。
gcloud_force_download
默认为 yes。当下载归档时,即使归档已经存在于 {{ gcloud_tmp_path }},仍然执行下载。
gcloud_install_path
默认为 "{{ ansible_env.HOME }}"。在目标主机上放置解压缩后的文件的路径。
gcloud_usage_reporting
默认为 no。启用使用情况报告吗?
gcloud_profile_path
默认为 '~/.profile'。要由安装程序更新的登录脚本路径。
gcloud_command_completion
默认为 yes。在登录脚本中启用 bash 风格的命令补全?
gcloud_update_path
默认为 yes。在登录脚本中更新 PATH 环境变量?
gcloud_override_components
默认为 []。覆盖要安装的组件,并安装这些组件。
gcloud_additional_components
默认为 [kubectl]。要安装的额外组件。将添加到默认安装列表,或添加到重写组件列表(如果提供)。
示例播放书
以下是执行我们角色的示例播放书:
- name: 创建临时安装路径
hosts: localhost
connection: local
gather_facts: no
tasks:
- name: 创建 tmp 路径
file:
path: "/tmp/install_gcloud"
state: directory
mode: 0777
- name: 运行安装
hosts: localhost
connection: local
gather_facts: yes # 运行 gather_facts 以定义 ansible_env.HOME
roles:
- role: role-install-gcloud
gcloud_tmp_path: /tmp/install_gcloud
gcloud_archive_name: google-cloud-sdk-114.0.0-darwin-x86_64.tar.gz
- name: 删除临时安装路径
hosts: localhost
connection: local
gather_facts: no
tasks:
- name: 删除 tmp 路径
file:
path: "/tmp/install_gcloud"
state: absent
许可证
MIT