Я использую CoreOS с cloud-init и пытаюсь завить для фланели. У меня есть юнит-файл как таковой:
[Unit]
Description=Run flannel
Documentation=https://github.com/coreos/flannel
Requires=etcd2.service
After=etcd2.service
[Service]
ExecStartPre=/usr/bin/curl -L -o /opt/bin/flannel-0.5.1-linux-amd64.tar.gz -z /opt/bin/flannel-0.5.1-linux-amd64.tar.gz https://github.com/coreos/flannel/releases/download/v0.5.1/flannel-0.5.1-linux-amd64.tar.gz
ExecStartPre=/usr/bin/tar -C /opt/bin -xzvf /opt/bin/flannel-0.5.1-linux-amd64.tar.gz
ExecStartPre=/usr/bin/mv /opt/bin/flannel-0.5.1/flanneld /opt/bin/flanneld
ExecStartPre=/usr/bin/rm -rf /opt/bin/flannel-0.5.1
ExecStartPre=/usr/bin/rm -rf /opt/bin/flannel-0.5.1-linux-amd64.tar.gz
ExecStart=/opt/bin/flanneld
когда дело доходит до скручивания фланели, я получаю cannot resolve host 'github.com'
и curl выходит с кодом 1. Есть ли проблема, из-за которой я не могу использовать DNS во время запуска systemd?
Для CoreOS вам потребуется:
[Unit]
Requires=network-online.target
Eсть разница между network.target
и network-online.target
. network-online.target
это то, что втягивается при попытке выполнить сетевое монтирование в /etc/fstab
, и ваши потребности в зависимости ближе к этому. Чтобы использовать это.