Я пытаюсь настроить CoreOS на AWS для выполнения определенных команд при загрузке, чтобы загрузить информационный архив нашего кластера DCOS и запустить содержащиеся в нем сценарии. Эти сценарии помогают добавить экземпляр в качестве «агента» в наш кластер DC / OS.
Однако мне кажется, что мне не удается запустить команды docker run. Я вижу, что пользовательские данные создают выходной файл tee (который остается пустым), а также каталог / opt / dcos_install_tmp / (также остается пустым).
Команды docker run здесь загружают контейнер «awscli», извлекают пакеты из S3 (используя учетные данные профиля экземпляра IAM) и передают их файловой системе CoreOS.
Установка AWS CLI на CoreOS показалась непростой (нет диспетчера пакетов, нет питона), поэтому мне пришлось прибегнуть к этому.
Если я вхожу в экземпляр и запускаю те же команды, помещая их в скрипт, у меня не возникает абсолютно никаких проблем.
Я проверял "journalctl --identifier = coreos-cloudinit" и не нашел ничего, что указывало бы на проблемы. Он просто сообщает:
15:58:34 Parsing user-data as script
В / var / log / нет файла журнала загрузки для CoreOS, в отличие от других AMI.
Я действительно застрял прямо сейчас и хотел бы, чтобы меня подтолкнули в правильном направлении.
Вот мои пользовательские данные (которые я публикую как текст во время загрузки экземпляра):
#!/bin/bash
/usr/bin/docker run -it --name cli governmentpaas/awscli aws s3 cp s3://<bucket>/dcos/dcos_preconfig.sh /root && /usr/bin/docker cp cli:/root/dcos_preconfig.sh . && /usr/bin/docker rm cli | tee -a /root/userdatalog.txt
/usr/bin/docker run -it --name cli governmentpaas/awscli aws s3 cp s3://<bucket>/dcos/dcos-install.tar /root && /usr/bin/docker cp cli:/root/dcos-install.tar . && /usr/bin/docker rm cli | tee -a /root/userdatalog.txt
sudo mkdir -p /opt/dcos_install_tmp
sudo tar xf dcos-install.tar -C /opt/dcos_install_tmp | tee -a /root/userdatalog.txt
sudo /bin/bash /opt/dcos_install_tmp/dcos_install.sh slave | tee -a /root/userdatalog.txt