GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan Linode StackScripts untuk Menyebarkan Server Linux yang Telah Dikonfigurasi

Selalu ada beberapa hal yang harus dilakukan setelah menggunakan server Linux baru. Itu bisa mengubah konfigurasi SSH, membuat pengguna non-root atau menginstal dan mengonfigurasi Docker.

Ini semua adalah tugas berulang yang bisa sangat membuat frustrasi saat Anda menguji sesuatu dan Anda harus menerapkan server dengan konfigurasi yang sama.

Misalnya, saya menggunakan pengaturan proxy terbalik untuk menguji berbagai jenis layanan web dan aplikasi. Melakukan semua langkah itu lagi dan lagi di semua server baru bisa sangat merepotkan.

Untungnya, Linode, penyedia infrastruktur kami memiliki solusi praktis dalam bentuk StackScripts.

Dalam tutorial ini, saya akan memberi tahu Anda hal-hal berikut:

  • Apa itu StackScript Linode?
  • Bagaimana cara menggunakan StackScript tersebut saat menerapkan server dengan Linode?
  • Kiat membuat StackScript Anda sendiri
  • Terapkan penyiapan proxy terbalik menggunakan StackScripts yang dibuat oleh tim Buku Pegangan Linux (yaitu kami)

Tutorial ini hanya berfungsi dengan penyedia server awan Linode. Jika Anda tidak menggunakannya, Anda dapat mendaftar dengan tautan ini untuk mendapatkan kredit gratis senilai $60 selama dua bulan.

Apa itu StackScript?

Ini adalah skrip yang dijalankan setelah server berhasil disebarkan. Skrip ini tidak harus berupa skrip shell, bisa ditulis dengan Python atau Perl, selama penerjemah ada, yang Anda butuhkan hanyalah memastikan Anda menggunakan shebang yang benar!

Dengan StackScript, Anda dapat mengotomatiskan beberapa tugas kebutuhan pasca penerapan yang lebih monoton. Beberapa di antaranya tercantum di bawah ini:

  • Membuat pengguna non-root.
  • Mengubah konfigurasi server SSH (mis. Menonaktifkan otentikasi sandi).
  • Menginstal beberapa paket yang Anda inginkan seperti Python, Docker, Ruby dll.
  • Memperbarui dan me-reboot server.

Kedengarannya seperti fitur yang disediakan Dockerfile, bukan? Ini konsep yang mirip di sini.

Jenis StackScripts

Yah, mereka tidak persis "tipe". Itu tergantung pada bagaimana Anda menafsirkan gagasan tentang suatu tipe. Jika Anda membedakan dua skrip berdasarkan bahasa (yaitu penerjemah) penulisannya, ada banyak jenis StackScript seperti halnya penerjemah yang ditemukan dalam gambar distribusi tertentu seperti Python, Perl, Bash, Csh, Fish, Ksh, dll.

Di sini saya membedakan StackScripts berdasarkan ketersediaannya. Tergantung pada ketersediaannya, ada dua jenis StackScript:

  1. StackScript Akun
  2. StackScript Komunitas

StackScript Akun

Ini adalah skrip pribadi Anda yang telah Anda buat sendiri dan belum dipublikasikan.

Jika Anda masuk ke akun Linode, Anda akan menemukannya di tab "Account StackScripts" di bawah "StackScripts" di panel sebelah kiri.

StackScripts Komunitas

Skrip yang Anda dan orang lain buat tersedia untuk umum melalui portal Linode.

Anda dapat menemukannya di tempat yang sama di samping "Account StackScripts".

Hands-on 1:Buat StackScript sederhana dan terapkan server baru dengannya

Untuk mengikuti, Anda memerlukan beberapa hal terlebih dahulu:

  • Akun Linode. Jika Anda adalah bagian dari organisasi, dan salah satu administrator membuat akun untuk Anda, pastikan akun Anda memiliki izin yang diperlukan untuk beroperasi dengan StackScripts.
  • Beberapa pengetahuan skrip baris perintah atau shell. Anda dapat selalu mengikuti Seri Bash Pemula kami.

Membuat StackScript sederhana

Dalam contoh ini, Anda akan membuat skrip bash yang akan membuat pengguna non-root dan menyalin detail kunci SSH ke pengguna ini. Tidak banyak membantu tetapi cukup untuk memahami dasar-dasarnya.

Nama pengguna dan kata sandi akan di-hardcode dalam contoh ini dan saya tidak merekomendasikannya di lingkungan apa pun. Saya telah membuat skrip tumpukan untuk mencapai fungsi serupa, yang akan saya bagikan sebentar lagi.

Buka jendela StackScript, dan klik tombol "Buat StackScript".

Anda sekarang akan melihat beberapa bidang teks. Inilah yang perlu Anda lakukan:-

  • Pertama, beri label pada skrip Anda. Pastikan ini unik untuk daftar StackScript akun Anda.
  • Selanjutnya, jelaskan tujuan dari script tersebut. Ini opsional.
  • "Target Images" pada dasarnya adalah distribusi tempat Anda membuat StackScript ini. Perintah atau juru bahasa yang akan Anda gunakan, mungkin tidak ada di satu distribusi secara default, tetapi ada di distribusi lain. Pastikan Anda memilih gambar yang benar di sini. Untuk saat ini, pilih Ubuntu 20.04

Terakhir, bagian skrip. Di sini salin dan tempel kode berikut

#!/bin/sh

useradd \
    -mG sudo \
    -s /bin/bash \
    -p $(awk -F: '$1 ~ /^root$/ {print $2}' /etc/shadow) \
    noroot

if test -d /root/.ssh; then
    cp -r /root/.ssh /home/noroot && \
        chown -R noroot:noroot /home/noroot/.ssh && \
        chmod 700 /home/noroot/.ssh
fi

rm -f /root/StackScript

Script melakukan hal berikut

  • Membuat pengguna non-root, bernama noroot , dengan sandi yang sama dengan pengguna root.
  • Jika Anda telah menambahkan kunci SSH ke Linode Anda, skrip akan menyalin .ssh direktori ke rumah pengguna non-root, dan konfigurasikan kepemilikan dan izin yang diperlukan.
  • StackScripts disimpan di /root dengan nama StackScript , baris terakhir menghapus skrip dari disk.

Setelah semuanya selesai, klik "Simpan".

Terapkan server menggunakan StackScript

Anda sekarang akan melihat StackScript di daftar StackScript akun Anda. Jika tidak, muat ulang halaman.

Di sini, di sisi paling kanan, klik "Deploy New Linode".

Cara lainnya adalah dengan memilih StackScripts untuk menjadi metode deployment pada halaman pembuatan Linode seperti pada gambar di bawah ini.

Setelah itu, lanjutkan dengan pembuatan Linode Anda seperti biasa. Setelah status Linode Anda "berjalan" di dasbor Anda, tunggu beberapa detik dan gunakan SSH untuk masuk ke server, tetapi bukan sebagai root, seperti noroot pengguna.

ssh [email protected]

Anda seharusnya dapat masuk sebagai pengguna baru ini.

Hands-on 2:Menerapkan server menggunakan StackScripts yang dibuat oleh Buku Pegangan Linux

Di Buku Pegangan Linux, kami melakukan banyak pengujian dan konfigurasi. Anda dapat melihatnya di tutorial penerapan kami. Untuk membantu pembaca kami seperti Anda, baru-baru ini kami mulai membuat StackScript.

Dengan StackScripts kami, Anda dapat menerapkan server dengan konfigurasi yang agak rumit. Ambil pengaturan proxy terbalik Nginx dengan Docker misalnya. Jika Anda ingin menggunakan penyiapan yang luar biasa itu, cukup gunakan StackScript dan hemat banyak waktu Anda.

Anda dapat menemukan StackScripts LHB di repositori GitHub kami.

Di sini saya akan memandu Anda melalui penerapan proxy terbalik menggunakan reverse-proxy-jwilder StackScript.

Skrip ini saat ini hanya diuji dalam versi Ubuntu yang berbeda.

Pertama, buka bagian StackScript komunitas, dan cari "reverse-proxy-jwilder". Anda akan melihat skrip bernama seperti "another_debdut/reverse-proxy-jwilder".

Seperti sebelumnya, klik tombol "Deploy New Linode". Sekarang Anda akan melihat beberapa kolom input lebih banyak dari biasanya.

Mari saya jelaskan opsinya:

Buat pengguna non-root

Menggunakan root pengguna selalu dalam lingkungan produksi bukanlah ide terbaik. Tetapi Linode tidak memiliki opsi untuk membuat pengguna non-root saat menggunakan server. Script ini menangani itu.

Pembuatan pengguna bersifat opsional karena ada kalanya pengujian kecil perlu dilakukan, dan lebih mudah menggunakan root pengguna untuk saat ini.

Kata sandi pengguna non-root

Ini sekali lagi opsional. Jika Anda membiarkannya kosong, kata sandi root akan digunakan kembali untuk pengguna non-root.

Tingkatkan sistem

Anda mungkin tidak ingin mengupgrade sistem kadang-kadang, karena dapat memakan waktu cukup lama.

Port SSH

Pertama, ia meminta nomor port untuk menjalankan daemon SSH, defaultnya adalah port 22. Saya sarankan untuk menyetelnya ke sesuatu yang berbeda dan ingat bahwa perubahan ini tidak akan terlihat di dasbor Anda .

Berdasarkan informasi lain, skrip juga mengonfigurasi bagian lain dari SSH. Misalnya, jika Anda menambahkan pengguna, root tidak akan dapat diakses melalui SSH, jika setidaknya satu kunci publik disediakan, login sandi dinonaktifkan.

Kunci akun root

Anda juga dapat mengunci root pengguna langsung dari layar penerapan. Ini adalah salah satu trik pengerasan SSH standar.

Grup buruh pelabuhan

Karena buruh pelabuhan akan diinstal, Anda dapat menambahkan pengguna non-root ke docker grup secara otomatis dari sini.

Itu saja. Setelah selesai, ikuti cara Anda biasanya menggunakan server.

Anda harus menunggu cukup lama hingga seluruh proses selesai. Sedangkan setelah login anda bisa mengecek log menggunakan perintah tail:

tail -f /var/log/stackscript.log

Jika Anda melihat beberapa bug dengan StackScript ini atau ingin melihat beberapa skrip khusus dibuat, buka masalah di repositori GitHub Buku Pegangan Linux. Kontribusi selalu diterima.

Untuk mempelajari lebih lanjut tentang StackScripts, Anda dapat membaca dokumentasi resminya di sini.


Linux
  1. Bagaimana saya menggunakan cron di Linux

  2. Cara menggunakan rsync lanjutan untuk cadangan Linux besar

  3. Cara menggunakan FIND di Linux

  1. Cara menggunakan BusyBox di Linux

  2. Cara menggunakan systemd-nspawn untuk pemulihan sistem Linux

  3. Cara Menggunakan Unzip di Linux

  1. Cara menggunakan Perintah Su di Linux

  2. Linux – Bagaimana Cara Menggunakan Ruang Swap Untuk Keadaan Darurat Saja?

  3. Cara menggunakan kdump untuk Analisis Kernel Crash Linux