install-gcloud
Установка gcloud
Используйте для установки Google Cloud SDK и его компонентов, включая kubectl CLI для Kubernetes. Если вы развертываете приложения в Kubernetes, эта роль для вас, так как она автоматизирует установку CLI на ваших хостах разработки и развертывания.
Определение архива для установки
Имя архива для установки должно быть определено до выполнения этой роли. К сожалению, нет автоматического способа определить имя архива. Установить SDK через обычные пакетные менеджеры нельзя. Вместо этого перейдите на веб-сайт SDK и найдите архив, подходящий для вашей системы. Как только вы получите имя архива, вставьте его в эту роль.
Установка архива
Эта роль может скачать архив на целевой хост(ы) и установить его ИЛИ вы можете заранее скачать архив и сделать его доступным на хосте Ansible, в этом случае роль скопирует архив на целевой хост(ы) и установит его. Чтобы скачать и установить, укажите gcloud_archive_name. Чтобы скопировать и установить, укажите gcloud_archive_path.
Где устанавливаются компоненты?
Установщик Google не пытается связать или копировать исполнимые файлы в /usr/local/bin или в директорию bin, которая обычно является частью переменной окружения PATH. Вместо этого исполнимые файлы компонентов находятся в {{ gcloud_install_path }}/bin. Если вы хотите добавить ссылки или скопировать файлы в директорию bin, добавьте дополнительные задачи в ваш плейбук после выполнения роли.
Процесс установки обновит сценарий входа, чтобы добавить {{ gcloud_install_path }}/bin в переменную окружения PATH. Если вы хотите такое поведение, оставьте gcloud_update_path равным true. Установщик попробует обновить сценарий входа по умолчанию для пользователя. Чтобы обновить конкретный сценарий, задайте значение gcloud_profile_path.
Какие компоненты доступны?
Используйте значение идентификатора компонента в gcloud_additional_components и gcloud_override_components, чтобы контролировать, какие компоненты будут установлены.
Имя компонента | Идентификатор компонента | Размер |
---|---|---|
Эмулятор 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
По умолчанию ''. Путь к архиву gcloud на хосте Ansible. Если определено, архив будет скопирован на целевой хост.
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: Создать временный путь
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: Удалить временный путь
file:
path: "/tmp/install_gcloud"
state: absent
Лицензия
MIT
Авторы
ansible-galaxy install ansible/role-install-gcloud