Konfigurasi Droplets Digital Ocean
Setiap kali saya membuat tetesan baru — yang terjadi setiap beberapa bulan atau lebih, saya menemukan beberapa batu sandungan dan mencatat langkah-langkah ini untuk anak cucu. Saya biasanya mengikuti panduan ini untuk otomasi Ansible, tetapi ada beberapa langkah khas DigitalOcean.
Setelah membuat droplet, tanpa membuat yang baru atau menggunakan kunci ssh yang sudah ada yaitu membiarkan bagian yang ditunjukkan di bawah ini tidak dicentang (kita akan menyiapkan kuncinya nanti) :
Jika Anda ingin meluncurkan konsol, Anda dapat memilih droplet baru, lalu pilih akses, lalu Luncurkan Konsol
Di konsol, gunakan root untuk nama pengguna dan masukkan kata sandi yang dikirim melalui email ke alamat yang Anda gunakan saat menyiapkan DigitalOcean.
Anda harus memasukkan kata sandi baru, yang sangat merepotkan karena Anda tidak dapat menyalin dan menempel ke konsol. Pastikan Anda menggunakan sesuatu yang panjangnya 30+ karakter — meskipun kami akan menonaktifkan login melalui kata sandi pada akhirnya kami ingin membuat pembobolan membutuhkan waktu yang cukup untuk melindungi server untuk saat ini.
Anda dapat melewati langkah konsol atau melakukan ini setelah mengubah sandi — dari jenis mesin klien Anda :
ssh [email protected]
di mana angka setelah @ adalah alamat IP publik droplet Anda. Anda akan dimintai kata sandi baru yang Anda buat di jendela konsol (atau jika Anda melewatkan langkah itu, yang awalnya dikirim melalui email kepada Anda).
Setelah masuk ke server, perbarui dan instal pembaruan baru:
apt update && apt upgrade -y
Instal fail2ban untuk memperlambat serangan :
apt install fail2ban
Anda kemudian dapat melanjutkan untuk menyiapkan pengguna non root, dan kunci ssh mengikuti Panduan Full Stack Python untuk Penerapan.
Berikut ini adalah perintah yang berguna saat login ke server
#switch from dash to bash shell
bash
#activate a particular virtualenv, where user and app are replaced by your specifics
source /home/user/venvs/app/bin/activate
#fix an expired key causing ansible update fail
sudo apt-key list | \
grep "expired: " | \
sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | \
xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
Debugging masalah Nginx di server
#Nginx logs
/var/log/nginx/website.com.access.log
/var/log/nginx/website.com.error.log
#Nginx config
/etc/nginx/nginx.conf
/etc/nginx/conf.d/website.conf
#for debugging problems change nginx to debug level in /etc/nginx/nginx.conf (use 'notice' instead of 'debug' for less granular output)
##
# Logging Settings
##
...
error_log /var/log/nginx/error.log debug;
#supervisor config
/etc/supervisor/conf.d/website.conf
#view errors in real time
sudo tail -f /var/log/nginx/error.log
#ditto for requests
sudo tail -f /var/log/nginx/access.log
#debug nginx service failures
systemctl status nginx.service
sudo journalctl -xe
Debugging masalah Gunicorn
Dari menjalankan direktori root aplikasi
gunicorn — check-config app
Jika masih mengalami masalah, info debug lainnya dapat ditemukan di sini.
Dan berikut ini berguna saat dijalankan di mesin lokal
#copy from server to localmachine using ssh on a specific port
scp -i ../localfolder/ssh_keys/key -P portnumber user@ip:/home/user/folder/data /local_path/
Akhirnya di samping catatan, saya baru-baru ini menemukan Geany IDE yang cepat dan dasar untuk mengelola banyak file teks/skrip bash/buku pedoman yang memungkinkan.
Hal terbaiknya adalah Anda dapat memiliki tab untuk setiap file yang sedang Anda kerjakan yang membuat semuanya tetap teratur. Saya tidak pernah mengetahui cara menggunakan Vim dan menemukan emacs tidak mudah digunakan dan kode VS/Pycharm/Eclipse/Atom dll terlalu berat untuk pekerjaan skrip sederhana. Geany adalah alternatif yang bagus.
Terima kasih telah membaca, Semoga bermanfaat!