Lorawan-stack: توفير حزم النظام القياسية كبديل لـ Docker

تم إنشاؤها على ٢ فبراير ٢٠١٩  ·  10تعليقات  ·  مصدر: TheThingsNetwork/lorawan-stack

ملخص:
تعتمد جميع توزيعات Linux الرئيسية على مديري الحزم لتثبيت البرامج بطريقة آمنة ومحكومة.

هذا الاقتراح هو أن الحزم يتم إنشاؤها بتنسيقات RPM و deb و opkg كنقطة بداية ، مع إضافة تنسيقات حزم إضافية في تاريخ لاحق.

لماذا نحتاج هذا؟
تمنع العديد من مؤسسات المؤسسات git من الاتصال بأي خوادم بخلاف خوادمها ، وقد لا تسمح بأوامر wget أيضًا.

لا يتوفر Docker أيضًا داخل هذه المؤسسات ، ولكن الوصول إلى مستودعات الحزم يعد "كمية معروفة" وبالتالي يسهل بيعها لفرق الأمان ، خاصة وأن الحزم تميل إلى التوقيع بشكل كامل كجزء من عملية الإنشاء.

هناك أيضًا مواقف لا يكون Docker مناسبًا لها. يمكن أن يشمل ذلك الوقت الذي يريد فيه مكاملو الأنظمة / مقدمو الخدمات المدارة التوسع باستخدام مجموعة مقاييس تلقائية لـ AWS استنادًا إلى المثيلات بدلاً من الحاويات ، أو للتركيبات المعدنية في بيئات آمنة.

يعد التثبيت عبر أدوات إدارة التكوين مثل Ansible أو Chef أو Puppet أمرًا صعبًا للغاية عندما لا تتوفر لديك حزم.

أخيرًا ، يعد التثبيت من مستودع git بدلاً من الحزمة أمرًا صعبًا بدون برامج التحويل البرمجي ، مما يفتح خطرًا أمنيًا عن طريق تثبيت برامج التحويل البرمجي على أنظمة الإنتاج.

ما هو موجود بالفعل؟

في الوقت الحالي ، لدينا خيار بين حاويتين ( ttn-lw-stack و ttn-lw-cli ) أو بناء ثنائيات بنفس الاسم من git.

يتم النشر إما عبر docker pull أو git clone ، وكلاهما قد لا يعملان خلف جدران الحماية التعليمية / المؤسسية.

ما المفقود؟

إمكانية التثبيت عبر yum أو apt أو opkg

كيف تقترح تنفيذ هذا؟

يجب أن يكون هذا سهل التنفيذ نسبيًا باستخدام GO Releaser ، لكن GO ليست لغة أعرفها بشكل خاص (حتى الآن!)

بيئة:

Linux - يعتمد على CentOS / RHEL ، على أساس Debian / Ubuntu ، يعتمد على OpenWRT

ماذا يمكنك أن تفعل بنفسك وماذا تحتاج إلى مساعدة؟

سأحتاج إلى تأكيد أن هذه هي الطريقة المناسبة لتعبئة تطبيق go للنشر ، ثم بعض المساعدة في التنفيذ من شخص يفهم GO!

blocked

التعليق الأكثر فائدة

سنصنع هذا الجزء من القرص المضغوط أيضًا.

إضافة brew إلى قائمة الرغبات.

ال 10 كومينتر

سأبدأ بإضافة حزم إلى APT و AUR و https://github.com/nixos/nixpkgs ، لأنني على دراية بصيغة هذه الحزم. سيتم إضافة أخرى في وقت لاحق.
المساهمات ، بالطبع ، دائما موضع ترحيب!

rvolosatovs هل ستستخدم go-releaser ، أو طريقة أخرى لإنشاء الحزم؟

سأكون سعيدًا بالعمل على جانب RPM للأشياء طالما أنني أعرف ما الذي تستخدمه لإنشائها! :)

سنصنع هذا الجزء من القرص المضغوط أيضًا.

إضافة brew إلى قائمة الرغبات.

فقط أضيف دعمي لهذا. لم أستخدم Docker من قبل ، وعلى الرغم من أنني أقدر وجود الكثير من لغات البرمجة ، فقد كانت هذه قفزة كبيرة لشخص لم يقم بذلك من قبل. في حين أن عدم التحدث من الريبو هو كيف يحب المطورون القيام بالأشياء ، إلا أنها ليست صديقة للمستخدمين النهائيين.

نشكرك على كل عملك في هذا الأمر ، وآمل أن أجد وقتًا في الأيام القليلة المقبلة لإضافة دعم RPM واختباره.

proffalken سنقوم ببناء حزمة RPM كجزء من CI - ستتمكن من العثور عليها في صفحة الإصدارات الخاصة بنا بمجرد إصدارنا. (لمعلوماتك ، يدعم github أيضًا موجز Atom للإصدارات: https://github.com/thethingsnetwork/lorawan-stack/releases.atom)

لقد اتبعت اقتراحك باستخدام أداة goreleaser.
فيما يتعلق بحزمة RPM نفسها - إنها (في الوقت الحالي) فقط https://github.com/TheThingsNetwork/lorawan-stack/blob/b1183962c502e6b53191086c23567c546c2b8ec5/.goreleaser.yml#L79 -L92
أظن أن موقع الواجهة الأمامية ، على سبيل المثال ، غير قياسي لحزم RPM ، وفي الواقع ، ليس افتراضيًا للمكدس أيضًا (نتوقع أن يكون عند /srv/ttn-lorawan/public ).
لذا فإن مدخلاتك حول كيفية القيام بذلك ستكون مفيدة للغاية.

لاحظ أنه بالنسبة إلى brew ، على سبيل المثال ، نقوم بلف ثنائي المكدس لتعيين متغير البيئة ذي الصلة للإشارة إلى الواجهة الأمامية:
https://github.com/TheThingsNetwork/lorawan-stack/blob/b1183962c502e6b53191086c23567c546c2b8ec5/.goreleaser.yml#L116 -L119

أنا متأكد من أن الموقع المتوقع لهذا في حزمة RPM مختلف ، ولكن يمكننا استخدام نفس النهج هناك.

rvolosatovs منطقي تمامًا بالنسبة لي.

من المحتمل أن يكون إعداد env vars هو الأفضل في برنامج نصي لخدمة systemd ، سأحاول وضع أحدهما معًا في أسرع وقت ممكن.

يعد لصق الأشياء بـ /srv/ttn-lorawan/public أيضًا مقبولًا تمامًا :)

rvolosatovs هل يمكنك تحديث الملصقات و / أو التعليق الأصلي للإشارة إلى أننا لسنا بحاجة إلى مساعدة بعد الآن ، أو المساعدة في توزيع معين؟ قبل أن يبدأ أعضاء المجتمع في تنفيذ هذا بفارغ الصبر بينما يكون معظمه قيد التقدم.

ممنوع بسبب عدم وجود إصدار v3.0.0 .
ليس من المنطقي نشر إصدارات ما قبل النشر في المستودعات.

مغلق بسبب الإصدار. لدينا دعم Snappy و Brew ، بالإضافة إلى ملفات deb و rpm

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات