Путем я в настоящее время работаю, кластер 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 после того, как я выбрал его?
Итак,Мне, наверное, стоило порыться в некоторых других облачных провайдерах ... например, есть этот провайдер 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-адреса для выполнения операция локона ...