Lorawan-stack: Menyediakan paket sistem standar sebagai alternatif untuk Docker

Dibuat pada 2 Feb 2019  ·  10Komentar  ·  Sumber: TheThingsNetwork/lorawan-stack

Ringkasan:
Semua distribusi linux utama bergantung pada manajer paket untuk menginstal perangkat lunak dengan cara yang terkendali dan aman.

Proposal ini adalah bahwa paket dibuat dalam format RPM , deb , dan opkg sebagai titik awal, dengan format paket tambahan yang ditambahkan di kemudian hari.

mengapa kita butuh ini?
Banyak organisasi perusahaan mencegah git terhubung ke server lain selain milik mereka sendiri, dan mungkin juga tidak mengizinkan perintah wget .

Docker sering juga tidak tersedia dalam organisasi ini, namun akses ke repositori paket adalah "jumlah yang diketahui" dan karena itu lebih mudah untuk dijual ke tim keamanan, terutama karena paket cenderung ditandatangani sepenuhnya sebagai bagian dari proses pembuatan.

Ada juga situasi di mana Docker tidak cocok. Ini dapat mencakup ketika Integrator Sistem/Penyedia Layanan Terkelola ingin menskalakan menggunakan sesuatu AWS Auto Scaling Groups berdasarkan instans daripada kontainer, atau untuk instalasi bare-metal di lingkungan yang aman.

Instalasi melalui alat manajemen konfigurasi seperti Ansible, Chef, atau Puppet juga sangat sulit ketika Anda tidak memiliki paket yang tersedia.

Akhirnya, menginstal dari repositori git sebagai lawan dari sebuah paket sulit dilakukan tanpa kompiler, yang membuka risiko keamanan dengan menginstal kompiler pada sistem produksi.

Apa yang sudah ada?

Saat ini, kami memiliki pilihan antara dua kontainer buruh pelabuhan ( ttn-lw-stack dan ttn-lw-cli ) atau membangun binari dengan nama yang sama dari git.

Deployment bisa melalui docker pull atau git clone , keduanya mungkin tidak bekerja di balik firewall perusahaan/pendidikan.

Apa yang hilang?

Kemampuan untuk menginstal melalui yum , apt , atau opkg

Bagaimana Anda mengusulkan untuk menerapkan ini?

Ini seharusnya relatif mudah diimplementasikan menggunakan GO Releaser , namun GO bukan bahasa yang saya kenal (belum!)

Lingkungan:

Linux - Berbasis CentOS/RHEL, Berbasis Debian/Ubuntu, Berbasis OpenWRT

Apa yang dapat Anda lakukan sendiri dan apa yang Anda butuhkan bantuan?

Saya memerlukan konfirmasi bahwa ini adalah cara yang tepat untuk mengemas aplikasi go untuk penerapan, dan kemudian bantuan implementasi dari seseorang yang memahami GO!

blocked

Komentar yang paling membantu

Kami akan membuat bagian ini dari CD juga.

Juga menambahkan brew ke daftar keinginan.

Semua 10 komentar

Saya akan mulai dengan menambahkan paket ke APT, AUR dan https://github.com/nixos/nixpkgs , karena saya sudah terbiasa dengan format ini. Yang lain akan ditambahkan kemudian.
Kontribusi, tentu saja, selalu diterima!

@rvolosatovs apakah Anda akan menggunakan go-releaser, atau cara lain untuk membuat paket?

Saya akan senang bekerja di sisi RPM selama saya tahu apa yang Anda gunakan untuk membuatnya! :)

Kami akan membuat bagian ini dari CD juga.

Juga menambahkan brew ke daftar keinginan.

Hanya menambahkan dukungan saya untuk ini. Saya belum pernah menggunakan buruh pelabuhan sebelumnya, dan meskipun saya menghargai bahwa ada banyak bahasa pemrograman, ini adalah lompatan besar bagi seseorang yang belum pernah melakukannya sebelumnya. Meskipun menginstal dari repo adalah cara pengembang suka melakukan sesuatu, ini tidak terlalu ramah bagi pengguna akhir.

Terima kasih atas semua pekerjaan Anda dalam hal ini, saya berharap dapat menemukan waktu dalam beberapa hari ke depan untuk menambahkan dukungan RPM dan mengujinya.

@proffalken Kami akan membangun paket RPM sebagai bagian dari CI - Anda akan dapat menemukannya di halaman rilis kami setelah kami melakukan rilis. (FYI, github juga mendukung feed Atom untuk rilis: https://github.com/thethingsnetwork/lorawan-stack/releases.atom)

Saya mengikuti saran Anda untuk menggunakan goreleaser.
Mengenai paket RPM itu sendiri - itu (untuk saat ini) hanya https://github.com/TheThingsNetwork/lorawan-stack/blob/b1183962c502e6b53191086c23567c546c2b8ec5/.goreleaser.yml#L79 -L92
Saya menduga lokasi frontend, misalnya, tidak standar untuk paket RPM dan, pada kenyataannya, juga bukan default untuk stack (kami berharap itu berada di /srv/ttn-lorawan/public ).
Jadi masukan Anda tentang bagaimana hal ini harus dilakukan akan sangat membantu.

Perhatikan, bahwa untuk brew , misalnya, kami membungkus biner tumpukan untuk mengatur variabel lingkungan terkait agar mengarah ke frontend:
https://github.com/TheThingsNetwork/lorawan-stack/blob/b1183962c502e6b53191086c23567c546c2b8ec5/.goreleaser.yml#L116 -L119

Saya yakin lokasi yang diharapkan dari paket RPM ini berbeda, tetapi kami berharap dapat menggunakan pendekatan yang sama di sana.

@rvolosatovs sangat masuk akal bagi saya.

Pengaturan env vars mungkin paling baik dilakukan dalam skrip layanan systemd, saya akan mencoba dan menyatukannya sesegera mungkin.

Menempelkan barang ke /srv/ttn-lorawan/public juga sangat dapat diterima :)

@rvolosatovs dapatkah Anda memperbarui label dan/atau komentar asli untuk menunjukkan bahwa kami tidak memerlukan bantuan lagi, atau bantuan dengan distribusi tertentu? Sebelum anggota masyarakat mulai bersemangat menerapkan ini sementara sebagian besar sedang berlangsung.

Diblokir oleh kurangnya rilis v3.0.0 .
Tidak masuk akal untuk mempublikasikan versi pra-rilis ke repositori.

Ditutup karena rilis. Kami memiliki dukungan Snappy dan Brew, serta file deb dan rpm

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

MatteMoveSRL picture MatteMoveSRL  ·  7Komentar

htdvisser picture htdvisser  ·  9Komentar

htdvisser picture htdvisser  ·  4Komentar

kschiffer picture kschiffer  ·  6Komentar

adriansmares picture adriansmares  ·  8Komentar