Установка Google Cloud SDK/gcloud в Unix/Linux

Установка 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» завершена.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.