Маас: Используйте Облако-Init для автоматической настройки процесса развертывания

Я пытаюсь сделать следующее в течение недели без удачи! Я хотел бы создать MACVLAN во время процесса развертывания машины. Я уже предоставил код для этого процесса с помощью Облачного-Init синтаксиса:

#cloud-config

write_files:
-   content: |
        #!/bin/bash

        sudo ip link add eth0 link enp0s3 type macvlan mode bridge
        sudo ifconfig eth0 up
    path: /tmp/macvlan.sh
    permissions: '777'
-   content: |
        [Unit]
        Description=macvlan setup service

        [Service]
        ExecStart=/etc/init.d/macvlan.sh

        [Install]
        WantedBy=multi-user.target
    path: /tmp/macvlan.service
    permissions: '777'

runcmd:
-   sudo mv /tmp/macvlan.sh /etc/init.d/macvlan.sh
-   sudo mv /tmp/macvlan.service /etc/systemd/system/macvlan.service
-   systemctl enable macvlan
-   systemctl start macvlan

Таким образом, теперь я хотел бы знать, как использовать этот код автоматически во время процесса развертывания? Я знаю, что существует способ вручную использовать код как следующее:

maas $PROFILE machine deploy $SYSTEM_ID user_data=$(base64 ./import_key.sh)

Но я хочу, чтобы Маас сделал это для всех машин автоматически (потому что я использую контроллер Амулета для развертывания новых машин, и я не могу сделать этого вручную). Если не возможно использовать Облако-Init, затем это возможный использовать Curtin? Как?

0
задан 22 February 2020 в 13:38

1 ответ

Я наконец нашел ответ. Я добавил следующий код к /etc/maas/preseeds/curtin_userdata файл после late_commands: строка...

  foo_00: ["sh", "-c", "echo === Start Customization Scripts ==="]
  foo_02: ["curtin", "in-target", "--", "sh", "-c", "sudo touch /etc/init.d/macvlan.sh"]
  foo_03: ["curtin", "in-target", "--", "sh", "-c", "sudo touch /etc/systemd/system/macvlan.service"]
  foo_04: ["curtin", "in-target", "--", "sh", "-c", "sudo chmod 777 /etc/init.d/macvlan.sh"]
  foo_05: ["curtin", "in-target", "--", "sh", "-c", "sudo chmod 777 /etc/systemd/system/macvlan.service"]
  foo_06: ["curtin", "in-target", "--", "sh", "-c", "sudo echo '#!/bin/bash' >> /etc/init.d/macvlan.sh"]
  foo_07: ["curtin", "in-target", "--", "sh", "-c", "sudo echo ' ' >> /etc/init.d/macvlan.sh"]
  foo_08: ["curtin", "in-target", "--", "sh", "-c", "sudo echo 'sudo ip link add eth0 link eno1 type macvlan mode bridge' >> /etc/init.d/macvlan.sh"]
  foo_09: ["curtin", "in-target", "--", "sh", "-c", "sudo echo 'sudo ifconfig eth0 up' >> /etc/init.d/macvlan.sh"]
  foo_10: ["curtin", "in-target", "--", "sh", "-c", "sudo echo '[Unit]' >> /etc/systemd/system/macvlan.service"]
  foo_11: ["curtin", "in-target", "--", "sh", "-c", "sudo echo 'Description=macvlan setup service' >> /etc/systemd/system/macvlan.service"]
  foo_12: ["curtin", "in-target", "--", "sh", "-c", "sudo echo ' ' >> /etc/systemd/system/macvlan.service"]
  foo_13: ["curtin", "in-target", "--", "sh", "-c", "sudo echo '[Service]' >> /etc/systemd/system/macvlan.service"]
  foo_14: ["curtin", "in-target", "--", "sh", "-c", "sudo echo 'ExecStart=/etc/init.d/macvlan.sh' >> /etc/systemd/system/macvlan.service"]
  foo_15: ["curtin", "in-target", "--", "sh", "-c", "sudo echo ' ' >> /etc/systemd/system/macvlan.service"]
  foo_16: ["curtin", "in-target", "--", "sh", "-c", "sudo echo '[Install]' >> /etc/systemd/system/macvlan.service"]
  foo_17: ["curtin", "in-target", "--", "sh", "-c", "sudo echo 'WantedBy=multi-user.target' >> /etc/systemd/system/macvlan.service"]
  foo_18: ["curtin", "in-target", "--", "sh", "-c", "sudo systemctl enable macvlan"]
  foo_19: ["curtin", "in-target", "--", "sh", "-c", "sudo systemctl start macvlan"]
  foo_20: ["sh", "-c", "echo === Done Customization Scripts ==="]

Спасибо все.

0
ответ дан 17 March 2020 в 00:17

Другие вопросы по тегам:

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