IT Cloud. Eugeny Shtoltc

Чтение книги онлайн.

Читать онлайн книгу IT Cloud - Eugeny Shtoltc страница 42

IT Cloud - Eugeny Shtoltc

Скачать книгу

@ kubernetes-master: ~ / node-cluster $ PROJECT_I = "node-cluster-243923"

      essh @ kubernetes-master: ~ / node-cluster $ echo $ PROJECT_I

      node-cluster-243923

      essh @ kubernetes-master: ~ / node-cluster $ export GOOGLE_APPLICATION_CREDENTIALS = $ HOME / node-cluster / kubernetes_key.json

      essh @ kubernetes-master: ~ / node-cluster $ sudo docker-machine create –driver google –google-project $ PROJECT_ID vm01

      sudo export GOOGLE_APPLICATION_CREDENTIALS = $ HOME / node-cluster / kubernetes_key.json docker-machine create –driver google –google-project $ PROJECT_ID vm01

      // https://docs.docker.com/machine/drivers/gce/

      // https://github.com/docker/machine/issues/4722

      essh @ kubernetes-master: ~ / node-cluster $ gcloud config list

      [compute]

      region = europe-north1

      zone = europe-north1-a

      [core]

      account = [email protected]

      disable_usage_reporting = False

      project = node-cluster-243923

      Your active configuration is: [default]

      Let's add copying the file and executing the script:

      essh @ kubernetes-master: ~ / node-cluster $ cat main.tf

      provider "google" {

      credentials = "$ {file (" kubernetes_key.json ")}"

      project = "node-cluster-243923"

      region = "europe-north1"

      }

      resource "google_compute_address" "static-ip-address" {

      name = "static-ip-address"

      }

      resource "google_compute_instance" "cluster" {

      name = "cluster"

      zone = "europe-north1-a"

      machine_type = "f1-micro"

      boot_disk {

      initialize_params {

      image = "debian-cloud / debian-9"

      }

      }

      metadata = {

      ssh-keys = "essh: $ {file (" ./ node-cluster.pub ")}"

      }

      network_interface {

      network = "default"

      access_config {

      nat_ip = "$ {google_compute_address.static-ip-address.address}"

      }

      }

      }

      resource "null_resource" "cluster" {

      triggers = {

      cluster_instance_ids = "$ {join (", ", google_compute_instance.cluster. *. id)}"

      }

      connection {

      host = "$ {google_compute_address.static-ip-address.address}"

      type = "ssh"

      user = "essh"

      timeout = "2m"

      private_key = "$ {file (" ~ / node-cluster / node-cluster ")}"

      # agent = "false"

      }

      provisioner "file" {

      source = "client.js"

      destination = "~ / client.js"

      }

      provisioner "remote-exec" {

      inline = [

      "cd ~ && echo 1> test.txt"

      ]

      }

      essh @ kubernetes-master: ~ / node-cluster $ sudo ./terraform apply

      google_compute_address.static-ip-address: Creating …

      google_compute_address.static-ip-address: Creation complete after 5s [id = node-cluster-243923 / europe-north1 / static-ip-address]

      google_compute_instance.cluster: Creating …

      google_compute_instance.cluster: Still creating … [10s elapsed]

      google_compute_instance.cluster: Creation complete after 12s [id = cluster]

      null_resource.cluster: Creating …

      null_resource.cluster: Provisioning with 'file' …

      null_resource.cluster: Provisioning with 'remote-exec' …

      null_resource.cluster (remote-exec): Connecting to remote host via SSH …

      null_resource.cluster (remote-exec): Host: 35.228.82.222

      null_resource.cluster (remote-exec): User: essh

      null_resource.cluster (remote-exec): Password: false

      null_resource.cluster (remote-exec): Private key: true

      null_resource.cluster (remote-exec): Certificate: false

      null_resource.cluster (remote-exec): SSH Agent: false

      null_resource.cluster (remote-exec): Checking Host Key: false

      null_resource.cluster (remote-exec): Connected!

      null_resource.cluster: Creation complete after 7s [id = 816586071607403364]

      Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

      esschtolts @ cluster: ~ $ ls / home / essh /

      client.js test.txt

      [sudo] password for essh:

      google_compute_address.static-ip-address: Refreshing state … [id = node-cluster-243923 / europe-north1 / static-ip-address]

      google_compute_instance.cluster: Refreshing state … [id = cluster]

      null_resource.cluster: Refreshing state … [id = 816586071607403364]

      Enter

Скачать книгу