Простой динамический user_data сервис для облачной конфигурации в CoreOS?

Путем я в настоящее время работаю, кластер CoreOS в среде ESXI VMware состоял в том, чтобы использовать ISO, смонтированный в vCenter, как описано этим сообщением в блоге...

http://www.chrismoos.com/2014/05/28/coreos-with-cloud-config-on-vmware-esxi

Однако с той конкретной средой VMware, я должен явно определить свой присвоенный IP-адрес в a /etc/systemd/network/static.network сервис в облачной конфигурации в нескольких местах..., таким образом, я должен создать файл ISO для каждой машины CoreOS, которую я хочу выполнить. Это кажется прекрасным, но не масштабируется..., и иногда администраторы IT размонтировали диск ISO неумышленно.

В документации распределения OEM (здесь) говорится, что можно определить a /usr/share/oem/cloud-config.yml файл и что необходимо смочь "создать дополнительные единицы, которые обрабатывают обеспеченные пользователями метаданные, как описано ниже".

Затем процесс для EC2 и Rackspace освещается, и объяснение просто указывает на Вас на их испеченное в коде в CoreOS.

То, что я хотел бы сделать, создают единицу CoreOS, которая вытягивает a cloud-config файл через HTTP с простым URL... что-то как http://server-ip/cloud-configs/specific-hostname и вытяните файл YAML оттуда при начальной загрузке...

Это решило бы две проблемы: Я не должен был бы обеспечивать отдельный ISO для каждой машины CoreOS, и у меня не должно будет быть администраторов VMware, последовательно управляющих ISO для каждой машины CoreOS.

Документы не являются действительно четкими на лучшем способе выполнить это. Это походит на работы Amazon/Rackspace, потому что у них есть код в ОС. Как Joe Schmoe обеспечивает динамические облачные данные конфигурации за пределами монтирования ISO?

Большое разъединение - то, что я могу записать единицу, которая выбирает файл через wget/curl (независимо от того, что доступно), но как я говорю CoreOS обрабатывать YAML после того, как я выбрал его?

3
задан 9 October 2014 в 20:41
1 ответ

Итак,Мне, наверное, стоило порыться в некоторых других облачных провайдерах ... например, есть этот провайдер exoscale, который предоставляет сценарий bash и модуль для запуска этого сценария bash ...

  - name: exoscale-cloudinit.service
    command: restart
    runtime: yes
    content: |
      [Unit]
      Description=Cloudinit from exoscale (cloudstack-style) metadata
      Requires=coreos-setup-environment.service
      After=coreos-setup-environment.service

      [Service]
      Type=oneshot
      EnvironmentFile=/etc/environment
      ExecStart=/usr/share/oem/bin/exoscale-coreos-cloudinit

... и метод заставить CoreOS проанализировать конфигурацию облака через URL ...

#!/bin/bash

. /usr/share/oem/bin/exoscale-dhcp

DHCP_SERVER=$(get_dhcp_ip)
USERDATA_URL="http://${DHCP_SERVER}/latest/user-data"

block-until-url "${USERDATA_URL}"
coreos-cloudinit --from-url="${USERDATA_URL}"

... но теперь у меня небольшая проблема с курицей / яйцом, если у меня нет какого-либо метода получения временного IP-адреса для выполнения операция локона ...

1
ответ дан 3 December 2019 в 07:28

Теги

Похожие вопросы