Куда Nomad помещает загруженные файлы S3?

У меня следующая работа кочевника:

job "aws_s3_copy_rev2" {
  datacenters = ["dc1"]
  type = "system"

  group "aws_s3_copy_rev2" {
    count = 1

    task "aws_s3_copy_rev2" {
      driver = "raw_exec"

      artifact {
        source = "s3::https://my-data-files/123/"
      }

      resources {
        cpu    = 500 # 500 MHz
        memory = 256 # 256MB
        network {
          port "http" {}
        }
      }
    }
  }
}

Я отправил задание, используя nomad run aws_s3_copy_rev2.nomad. Но я не знаю, куда скачивается файл. Куда Nomad помещает загруженные файлы S3?

Это мой файл конфигурации для запуска агента Nomad.

# Increase log verbosity
log_level = "DEBUG"

# Setup data dir
data_dir = "/tmp/client1"

# Give the agent a unique name. Defaults to hostname
name = "client1"

# Enable the client
client {
    enabled = true

    # For demo assume we are talking to server1. For production,
    # this should be like "nomad.service.consul:4647" and a system
    # like Consul used for service discovery.
    servers = ["xxx:4647"]
    options {
      "driver.raw_exec.enable" = "1"
    }
}

# Modify our port to avoid a collision with server1
ports {
    http = 5657
}

person LifeAndHope    schedule 30.10.2019    source источник


Ответы (2)


Обычно артефакты хранятся в папке распределения вне вашего распределения Nomad, которое по умолчанию будет /etc/nomad.d/alloc/<alloc_id>/<task>/local/<your_file.ext> на машинах Linux. Не уверен, где что-то происходит в других ОС.

В этом случае ваш data_dir установлен на /tmp/client1, поэтому я ожидал, что файлы будут где-то вроде /tmp/client1/alloc/<alloc_id>/<task>/local/<your_file.ext>.

Важно отметить, что эти артефакты генерируются на «клиенте» Nomad, выполняющем выделение вашего задания, а не на машине, с которой вы запускаете задание.

Кроме того, вы можете быть осторожны при укоренении каталога данных Nomad в папке / tmp, поскольку он может периодически удаляться, что может объяснить, почему вы не можете найти эти файлы.

person Chris Zacharias    schedule 30.10.2019
comment
Я не могу найти каталог nomad.d в /etc/. - person LifeAndHope; 31.10.2019
comment
Обновил мой ответ на основе предоставленной вами конфигурации. - person Chris Zacharias; 31.10.2019

Вы можете ссылаться на этот каталог в среде кочевников как $ {NOMAD_TASK_DIR} и получить доступ или выполнить файл, используя путь:

artifact {
    source = "s3::https://some-bucket/code/archive-logs.sh"
    destination = "/local/"
  }

  driver = "raw_exec"
  kill_timeout = "120s"

  config {
    command = "/bin/bash"
    args = ["${NOMAD_TASK_DIR}/archive-logs.sh","7"]
  }
person dovka    schedule 05.01.2020