
Установка Google Cloud SDK/gcloud в Unix/Linux
Google Cloud SDK — Это набор библиотек, который предоставляет google для работы со своим облаком.
gcloud — Утилита, которая позволяет работать с облаком.
Установка Google Cloud SDK/gcloud в Mac OS X
Имеется пару способов как поставить данное SDK.
-=== СПОСОБ 1 ===-
Скачиваем пакет с официального сайта (например):
# cd /usr/local/src && wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-198.0.0-darwin-x86_64.tar.gz
Распакуем архив:
# tar xfvz google-cloud-sdk-*-darwin-*.tar.gz
Выполняем установку:
# ./google-cloud-sdk/install.sh
Как по мне, ребята с гугла хрень написали! Google SDK ставится в хомяк. Нахрен он мне там?
Можно конечно перекинуть данный архив в другое место и поправить пути в ~/.bash_profile, но много работы.
-=== СПОСОБ 2 ===-
Можно использовать готовый скрипт с официального сайта:
$ curl https://sdk.cloud.google.com | bash
Тоже фигня! Ставит в хомяк!
-=== СПОСОБ 3 ===-
Использовать Brew, но для начала установим homebrew, и потом, выполняем:
$ brew tap caskroom/cask $ brew cask install google-cloud-sdk
Самый простой и лучший ваиант установки!
Установка Google Cloud SDK/gcloud в Linux
Для установки сойдет 1 или 2-й варианты, которые я описывал для Mac OS X.
-=== СПОСОБ 1 ===-
Скачиваем пакет с официального сайта (например):
# cd /usr/local/src && wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-198.0.0-linux-x86_64.tar.gz
Распакуем архив:
# tar xfvz google-cloud-sdk-*-linux-*.tar.gz
Выполняем установку:
# ./google-cloud-sdk/install.sh
Как по мне, ребята с гугла хрень написали! Google SDK ставится в хомяк. Нахрен он мне там?
Можно конечно перекинуть данный архив в другое место и поправить пути в ~/.bash_profile, но много работы.
-=== СПОСОБ 2 ===-
Можно использовать готовый скрипт с официального сайта:
$ curl https://sdk.cloud.google.com | bash
Тоже фигня! Ставит в хомяк!
-=== СПОСОБ 3 ===-
Можно еще поставить репозиторий и через него установить.
Установка Google Cloud SDK/gcloud в CentOS/RedHat.
Прописываем репозиторий:
# tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM [google-cloud-sdk] name=Google Cloud SDK baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM
Устанавливаем:
# yum install google-cloud-sdk -y
PS: Можно поставить вспомогательные компоненты:
# yum install google-cloud-sdk-app-engine-python \ google-cloud-sdk-app-engine-python-extras \ google-cloud-sdk-app-engine-java \ google-cloud-sdk-app-engine-go \ google-cloud-sdk-bigtable-emulator \ google-cloud-sdk-datalab \ google-cloud-sdk-datastore-emulator \ google-cloud-sdk-cbt \ google-cloud-sdk-pubsub-emulator \ kubectl
Установка Google Cloud SDK/gcloud в Debian/Ubuntu.
Создайте переменную окружения (ENV) для правильного распространения:
# export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
Добавляем репо:
$ echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
PS: Если у вас установлен «apt-transport-https» пакет, вы можете использовать «https» вместо «http» на этом шаге.
Импортируем паблик ключ:
$ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Ставим SDK:
# apt-get update && apt-get install google-cloud-sdk
Можно поставить дополнительные компоненты:
# apt-get install google-cloud-sdk-app-engine-python \ google-cloud-sdk-app-engine-python-extras \ google-cloud-sdk-app-engine-java \ google-cloud-sdk-app-engine-go \ google-cloud-sdk-bigtable-emulator \ google-cloud-sdk-datalab \ google-cloud-sdk-datastore-emulator \ google-cloud-sdk-cbt \ google-cloud-sdk-pubsub-emulator \ kubectl
Перейдем к настройке.
Настройка Google Cloud SDK/gcloud в Unix/Linux
После установки google SDK, нужно инициализировать проект:
$ gcloud init
Следуем инструкциям и настраиваем инициализацию.
Использование Google Cloud SDK/gcloud в Unix/Linux
Чтобы просмотреть аккаунты для авторизации, используйте:
$ gcloud auth list
Создаем авторизацию по уолчанию:
$ gcloud auth application-default login
Для того, чтобы посмотреть конфигурационный, выполните:
$ gcloud config list
Для получения полной информации, можно заюзать:
$ gcloud config list --all
Получить инфо и много другой полезной информации:
$ gcloud info
Получить список всех ваших билибл аккаунтов:
$ gcloud beta billing accounts list
Вывести организации:
$ gcloud organizations list
Сетапаем SSH доступ для аккаунта:
$ gcloud alpha cloud-shell ssh
Можно просмотреть IAM политики\роли следующим образом:
$ gcloud projects get-iam-policy terraform-2018
Где:
- terraform-2018 — Это название моего проекта.
Или, вот еще полезная команда:
$ gcloud projects get-iam-policy terraform-2018 --format=json
Или:
$ gcloud projects get-iam-policy terraform-2018 --format='json(bindings)'
Или, jтображение в ‘сплющенном формате’:
$ gcloud projects get-iam-policy terraform-2018 --format='flattened(bindings)'
Смотрим какой используется проект:
$ gcloud config list project
Создаем ключ:
$ gcloud iam service-accounts keys create \ ~/key.json \ --iam-account terraform@terraform-2018.iam.gserviceaccount.com
Проверяем созданный ключ:
$ gcloud iam service-accounts keys list --iam-account terraform@terraform-2018.iam.gserviceaccount.com
Смотрим пермишены по проекту:
$ gcloud iam list-testable-permissions //cloudresourcemanager.googleapis.com/projects/terraform-2018
Создаем виртуальную машину:
$ gcloud compute instances create test-machine-1 --service-account captain@terraform-2018.iam.gserviceaccount.com --scopes https://www.googleapis.com/auth/cloud-platform For the following instance: - [test-machine-1] choose a zone: [1] asia-east1-a [2] asia-east1-b [3] asia-east1-c [4] asia-northeast1-a [5] asia-northeast1-b [6] asia-northeast1-c [7] asia-south1-a [8] asia-south1-b [9] asia-south1-c [10] asia-southeast1-a [11] asia-southeast1-b [12] australia-southeast1-a [13] australia-southeast1-b [14] australia-southeast1-c [15] europe-west1-b [16] europe-west1-c [17] europe-west1-d [18] europe-west2-a [19] europe-west2-b [20] europe-west2-c [21] europe-west3-a [22] europe-west3-b [23] europe-west3-c [24] europe-west4-a [25] europe-west4-b [26] europe-west4-c [27] northamerica-northeast1-a [28] northamerica-northeast1-b [29] northamerica-northeast1-c [30] southamerica-east1-a [31] southamerica-east1-b [32] southamerica-east1-c [33] us-central1-a [34] us-central1-b [35] us-central1-c [36] us-central1-f [37] us-east1-b [38] us-east1-c [39] us-east1-d [40] us-east4-a [41] us-east4-b [42] us-east4-c [43] us-west1-a [44] us-west1-b [45] us-west1-c Please enter your numeric choice: 37 Created [https://www.googleapis.com/compute/v1/projects/terraform-2018/zones/us-east1-b/instances/test-machine-1]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS test-machine-1 us-east1-b n1-standard-1 10.142.0.2 35.229.94.19 RUNNING
Чтобы получить помощь, используйте:
$ gcloud help
Помощь понятная и простая. Можно использовать ее вот так:
$ gcloud config --help
Чтоы посмотреть пермишены:
$ gcloud iam list-grantable-roles \ > //cloudresourcemanager.googleapis.com/projects/terraform-2018
Создаем сервис аккаунт, следующим образом:
$ gcloud iam service-accounts create terraform \ --display-name "Terraform admin account" $ gcloud iam service-accounts keys create /Users/captain/.config/gcloud/creds/terraform_creds.json \ --iam-account terraform@terraform-2018.iam.gserviceaccount.com
Где:
- terraform — Название юзера.
- /Users/captain/.config/gcloud/creds/terraform_creds.json — Путь куда сохранится файл.
- terraform-2018 — название проекта.
Предоставьте разрешение учетной записи службы для просмотра проекта Admin и управления облачным хранилищем:
$ gcloud projects add-iam-policy-binding terraform-2018 \ --member serviceAccount:terraform@terraform-2018.iam.gserviceaccount.com \ --role roles/owner $ gcloud projects add-iam-policy-binding terraform-2018 \ --member serviceAccount:terraform@terraform-2018.iam.gserviceaccount.com \ --role roles/storage.admin
Любые действия, которые выполняються через Terraform, требуют, чтобы API был включен, например:
$ gcloud services enable cloudresourcemanager.googleapis.com $ gcloud services enable cloudbilling.googleapis.com $ gcloud services enable iam.googleapis.com $ gcloud services enable compute.googleapis.com
Вот и все, статья «Установка Google Cloud SDK/gcloud в Unix/Linux» завершена.