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_componentsgcloud_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

作者

@chouseknecht

关于项目

Install Google Cloud SDK and kubectl

安装
ansible-galaxy install ansible.install-gcloud
许可证
mit
下载
5.1k
拥有者