Terraform

Как использовать Terraform с Google Cloud Platform?

Как использовать Terraform с Google Cloud Platform?
Terraform - это инструмент, используемый для легкого управления инфраструктурой как кодами. Он разработан HashiCorp как проект с открытым исходным кодом для облачных разработчиков, позволяющий управлять своей инфраструктурой на языке очень высокого уровня (HCL). Самым большим преимуществом этого инструмента является то, что он абстрагируется от основных инфраструктурных сервисов, таких как AWS, OpenStack, Vultr, Digital Ocean, Google Cloud, и позволяет разработчикам унифицировать свою конфигурацию в едином стандартном формате. Кроме того, с Terraform возможны автоматизация и детальное выполнение. Он доступен на платформах Windows, Linux, MacOS и может использоваться с любой крупной облачной платформой с умеренным уровнем технических знаний.

В этом руководстве показано, как использовать Terraform с платформой Google Cloud. В этом руководстве предполагается, что у пользователя есть учетная запись на платформе Google Cloud, и она готова к использованию, в противном случае можно с легкостью создать бесплатную пробную учетную запись в течение года. Однако для доступа к консоли Google Cloud требуется указать действующий номер кредитной карты; поэтому убедитесь, что с этим разобрались, прежде чем продолжить.

Требования и условия

Платформа Google Cloud состоит из большого количества сервисов; поэтому сложно охватить их все в одном руководстве, и поэтому это руководство охватывает только раздел экземпляров виртуальных машин Google. Он демонстрирует, как установить веб-сервер Nginx в экземпляре виртуальной машины Ubuntu в инфраструктуре Google Cloud.

Поскольку руководство посвящено терраформу, очевидно, что оно должно быть установлено в системе. Кроме того, для доступа к экземпляру виртуальной машины необходимо сгенерировать SSH-ключ.

Как установить Terraform в Ubuntu

Terraform можно установить двумя способами. Первый метод - это ручной способ, который требует, чтобы пользователь загрузил и установил его в системе, альтернативный и наиболее рекомендуемый способ - автоматический, который загружает и устанавливает terraform в систему с помощью пары строк кода. Выполните следующие команды, чтобы это произошло.

  1. Установите распакованный пакет в систему, чтобы извлечь пакет terraform после его загрузки.
sudo apt-get install распаковать
  1. Скачайте и установите terraform по указанной ссылке. Обратите внимание, что на момент написания статьи последняя версия terraform - 0.11.10. В будущем версия может быть другой. Поэтому всегда обращайте внимание на их официальный сайт, чтобы получить информацию о последнем пакете terraform.
wget https: // релизы.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.застегивать
  1. Извлеките терраформу в текущий активный каталог. По умолчанию это домашний каталог в Ubuntu.
распаковать terraform_0.11.10_linux_amd64.застегивать
  1. Переместите терраформу в двоичную папку. Terraform не имеет установочного файла; следовательно, его двоичный файл должен быть помещен в файл bin вручную.
sudo mv terraform / usr / местный / бен /
  1. Используйте следующую команду для доступа к terraform из командной строки без указания его каталога.
terraform --version

Как сгенерировать свой собственный SSH-ключ

После установки terraform следующим важным шагом будет создание вашей собственной пары открытого / закрытого ключей SSH для связи с экземпляром виртуальной машины, который будет создан. Пара ключей SSH обеспечивает надежную защиту по сравнению с традиционной аутентификацией пароль / имя пользователя; поэтому настоятельно рекомендуется следовать этому параметру, даже если он не является обязательным.

1. В оболочке Ubuntu введите следующую команду, чтобы сгенерировать пару ключей SSH.

ssh-keygen

2. Вначале он запрашивает имя для пары ключей, затем кодовую фразу для ключа ssh. Открытый ключ создается как .pub, а закрытый ключ создается как . Оба ключа создаются в текущем активном каталоге. Храните закрытый ключ в надежном месте, так как это важно для доступа к экземпляру виртуальной машины.

Настройте Google Cloud с помощью Terraform

Как только два вышеупомянутых сегмента будут завершены, создайте бесплатную пробную учетную запись в Google Cloud. Поскольку создание учетной записи - это простой процесс, здесь он не описывается. После получения доступа к консоли Google Cloud выполните следующие действия, чтобы настроить Google Cloud с помощью terraform.

  1. Перейдите по следующему URL-адресу.
    https: // консоль.облако.Google.ком
  1. Нажмите кнопку «Мои проекты» в верхнем левом углу консоли.
  2. Создайте новый проект или используйте существующий для этого руководства. Цель «проекта» - объединение различных сервисов в Google Cloud. Проект является высшим узлом этой иерархии сервисов, а остальные сервисы находятся под ним. Сервис, созданный в рамках одного проекта, недоступен из другого проекта. После создания проекта скопируйте и храните его идентификатор в безопасном месте. На следующем снимке экрана идентификатор проекта харизматическая-сумма-202020, и он может быть другим в вашей облачной консоли. 
  3. Перейдите по следующему URL-адресу, чтобы загрузить файл учетных данных в формате JSON для аутентификации пользователя при подключении к облачной платформе Google. Это учетная запись администратора; поэтому убедитесь, что этот файл учетных данных находится в надежном месте. https: // консоль.облако.Google.com / apis / учетные данные / serviceaccountkey 
  4. Создайте файл и переименуйте его в основной.tf. Этот файл является файлом конфигурации для terraform, затем используйте следующий блок кода в качестве первых строк кода. Название провайдера предназначено для указания провайдера, к которому нужно подключиться. Terraform поддерживает большое количество облачных платформ; следовательно, название облачной платформы должно быть явно указано. Это Google, что означает, что он подключается к облачной платформе Google. Помимо заголовка, в блоке есть 3 атрибута, атрибут «учетные данные» предназначен для указания имени файла учетных данных, загруженного выше, имя проекта - это место в облаке Google, где создается экземпляр виртуальной машины. Идентификатор, созданный на шаге 3, используется здесь в качестве имени проекта. Регион - это географическое положение, в котором создается экземпляр виртуальной машины. Есть несколько регионов. Используйте эту ссылку, чтобы обратиться ко всем доступным регионам. https: // облако.Google.com / appengine / docs / locations provider "google"
    учетные данные = "$ файл (" CREDENTIALS_FILE.json ")"
    project = "PROJECT_NAME"
    region = "REGION_NAME"

  1. Используйте следующую команду для установки плагинов для terraform. Следующая команда автоматически сканирует файл конфигурации terraform и определяет, какие плагины должны быть установлены, кроме того, она также загружает информацию о провайдере для terraform. В этом руководстве используется платформа Google Cloud; следовательно, он загружает информацию о провайдере облачной терраформы Google. Команда идентифицирует провайдера по имени, указанному в ключевом слове «provider» в конфигурационном файле terraform. terraform init
  1. Используйте следующие два блока кода, чтобы определить дополнительную информацию для экземпляра виртуальной машины. С самого начала он использует плагин случайного идентификатора для генерации случайного числа из 8 цифр, а затем назначает это число переменной instance_id для использования в качестве префикса для имени экземпляра виртуальной машины. Во втором блоке кода он создает экземпляр виртуальной машины с именем «nucuta-vm»-. Тип машины - это пакет сервера, который используется для размещения экземпляра виртуальной машины. Перейдите по этому веб-адресу, чтобы найти доступные типы машин. https: // облако.Google.com / compute / docs / типы машин. Зона - точное местоположение региона. В каждом регионе доступны в основном 3 зоны: a, b, c. Каждая зона имеет собственную конфигурацию оборудования / программного обеспечения. Используйте этот веб-URL, чтобы ссылаться на все доступные зоны и их конфигурацию оборудования. https: // облако.Google.com / compute / docs / регионы-зоны / ресурс "random_id" "instance_id"
    byte_length = 8

    ресурс "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id".instance_id.шестнадцатеричный "
    machine_type = "f1-micro"
    зона = "азия-юг1-а"
  1. Используйте следующий блок кода внутри блока кода google_compute_instance. Он определяет используемую операционную систему. Используйте этот веб-URL, чтобы найти все доступные операционные системы для облачной платформы Google. https: // облако.Google.com / compute / docs / images. В нем написано изображение, потому что операционные системы хранятся как файлы изображений. Когда выполняется файл конфигурации terraform, файл образа извлекается, и его операционная система устанавливается в экземпляре виртуальной машины так же, как на обычном компьютере. Атрибут изображения находится в этом формате, имиджевый проект / семейство изображений. Загрузочный диск
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. Используйте следующий код в блоке кода google_compute_instance. Он указывает сценарий запуска для запуска на вновь созданном экземпляре виртуальной машины. Этот скрипт выполняется сразу после создания экземпляра ВМ. В следующем примере он обновляет локальный репозиторий информации о пакете последней информацией, затем обновляет все пакеты с помощью dist-upgrade, а затем устанавливает пакет nginx. Обязательно используйте флаг -y, чтобы сделать процесс не интерактивным, то есть он автоматически запускается и выполняет процесс, не требуя вмешательства пользователя. metadata_startup_script = "sudo apt-get -y update;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y установить nginx "
  1. Используйте следующий блок кода в блоке кода google_compute_instance. Следующий блок кода определяет сетевой интерфейс, который используется для подключения текущего экземпляра виртуальной машины к другим экземплярам виртуальной машины, устройствам и сетям. Блок Access_config используется для выделения экземпляру виртуальной машины внешнего IP-адреса для доступа к нему из Интернета. сетевой интерфейс
    сеть = "по умолчанию"
    access_config

  1. Наконец, используйте следующий блок кода в блоке кода google_compute_instance. В нем указывается имя пользователя и открытый SSH-ключ. Убедитесь, что сгенерированный общедоступный ключ SSH находится в той же папке, что и файл конфигурации terraform. Имя пользователя должно быть именем учетной записи, из которой был создан ключ SSH, например, если имя учетной записи - root, то ее имя пользователя - root. метаданные
    sshKeys = "dilanga: $ file (" dilanga.паб")"

  1. Последний блок кода должен выглядеть так 
  2. Используйте следующий блок кода за пределами блока кода «google_compute_instance». По умолчанию экземпляр ВМ блокирует весь входящий и исходящий трафик. Поскольку в этом руководстве создается веб-сервер, необходимо открыть порты 80 и 443, чтобы пользователи могли получить к нему доступ через Интернет. С самого начала атрибут name создает профиль в брандмауэре Google Compute для этого правила, сетевой атрибут указывает, к какому сетевому интерфейсу применяется правило, блок allow разрешает протоколы и его порты, указанные в нем. Протокол Icmp используется для проверки связи с веб-сервером, чтобы убедиться, что он доступен для всех. Pinging часто используется многими службами для определения доступности веб-сайта. ресурс "google_compute_firewall" "default"
    name = "nginx-firewall"
    сеть = "по умолчанию"
     
    позволять
    протокол = "TCP"
    ports = ["80", "443"]

     
    позволять
    протокол = "icmp"

  3. Используйте следующий блок кода за пределами из «google_compute_instance», чтобы распечатать общедоступный IP-адрес текущего экземпляра виртуальной машины. output "ip"
    value = "$ google_compute_instance.нукута.сетевой интерфейс.0.access_config.0.nat_ip "
  4. Используйте следующую команду для проверки файла конфигурации и файла учетных данных. Он также предварительно просматривает, как будет выглядеть окончательный результат после выполнения файла конфигурации. план терраформ
  5. затем используйте следующую команду для выполнения файла конфигурации. терраформ применять
  6. Теперь используйте общедоступный IP-адрес в любом веб-браузере для доступа к веб-серверу экземпляра виртуальной машины.
  7. Используйте следующую команду для доступа к экземпляру виртуальной машины через SSH для управления сервером. Убедитесь, что закрытый ключ находится в текущем каталоге или укажите путь к закрытому ключу.
  8. ssh -i @

    Заключение

    Этого должно быть достаточно, чтобы начать работу.  Полный файл конфигурации, основной.tf, показан ниже. Выделенные тексты могут быть изменены в соответствии с требованиями пользователя.

    провайдер "google"
    credentials = "$ файл (" dilannga_credentials.json ")"
    project = "charismatic-sum-202020"
    region = "asia-south1"

     
    ресурс "random_id" "instance_id"
    byte_length = 8

     
    ресурс "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id".instance_id.шестнадцатеричный "
    machine_type = "f1-micro"
    зона = "азия-юг1-а"
     
    Загрузочный диск
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade;
    sudo apt-get -y установить nginx "
     
    сетевой интерфейс
    сеть = "по умолчанию"
     
    access_config
     


     
    метаданные
    sshKeys = "dilanga: $ file (" dilanga.паб")"


     
    ресурс "google_compute_firewall" "default"
    name = "nginx-firewall"
    сеть = "по умолчанию"
     
    позволять
    протокол = "TCP"
    ports = ["80", "443"]

     
    позволять
    протокол = "icmp"


     
    output "ip"
    value = "$ google_compute_instance.нукута.сетевой интерфейс.0.access_config.0.nat_ip "
Как изменить указатель мыши и размер курсора, цвет и схему в Windows 10
Указатель мыши и курсор в Windows 10 - очень важные аспекты операционной системы. То же самое можно сказать и о других операционных системах, так что,...
Бесплатные движки с открытым исходным кодом для разработки игр для Linux
В этой статье будет рассмотрен список бесплатных игровых движков с открытым исходным кодом, которые можно использовать для разработки 2D- и 3D-игр в L...
Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...