Antara muka hidup tetapi wg-quick gagal: apa yang perlu dibuat seterusnya
Unit yang gagal boleh meninggalkan terowong yang separuh dikonfigurasikan. Baca langkah pertama yang gagal, putuskan sama ada hendak membersihkan atau membaiki, kemudian buktikannya dengan permintaan.
Unit itu merah, antara muka wujud, dan terowong sebahagian besarnya berfungsi, iaitu gabungan paling mengelirukan yang ada. Persediaan ialah urutan: antara muka dicipta dahulu, kemudian alamat, laluan, tetapan penyelesai dan sebarang arahan cangkuk menyusul. Kegagalan pada langkah keempat meninggalkan tiga langkah pertama di tempatnya, jadi nama antara muka membuktikan permulaan telah bermula, bukan bahawa ia telah selesai. Satu fakta tambahan akan mengelakkan kekeliruan itu: langkah yang gagal.
Keadaan separa ialah kegagalan biasa
Tingkah laku itu wajar dijangka dan bukan dianggap kerosakan. Antara muka ialah bahagian termurah dalam persediaan dan paling mudah ditinggalkan, dan itulah bahagian yang membuat mesin kelihatan separuh berfungsi.
Yang belum wujud ialah segala-galanya yang datang selepas langkah yang gagal. Jika kegagalan berlaku pada peringkat penyelesai, alamat dan laluan ada dan DNS tiada. Jika ia satu laluan, terowong mempunyai alamat dan tiada laluan melaluinya.
Kesan akhirnya ialah mesin yang menjawab sesetengah ujian dan gagal pada yang lain, sebab itulah orang menyimpulkan perkhidmatan berkelip-kelip sedangkan ia tidak pernah bermula dengan jayanya. Perkhidmatan yang tidak pernah selesai tidak boleh berkelip. Ia hanya boleh gagal berulang kali atas sebab yang sama.
Cari langkah pertama yang gagal
Baca jurnal unit dan bukan hanya status semasa, dan bacalah dari permulaan larian yang gagal. Baris terakhir memberitahu kod keluar; ralat pertama memberitahu apa yang perlu dibaiki.
Perintah ini mencetak status unit, jurnal but untuk unit itu dan status langsung terowong:
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0Ralat penyelesai, laluan yang sudah wujud, cangkuk yang keluar dengan kod bukan sifar dan kegagalan penghuraian konfigurasi semuanya muncul dalam tetingkap itu, dan setiap satu menamakan komponennya sendiri. Meneka hanya daripada status antara muka mengabaikan semua maklumat itu.
Tiga syarat yang menentukan pembaikan
Putuskan sama ada anda membersihkan, membaiki di tempat atau mengeluarkan unit daripada laluan but, dan putuskan sebelum menaip apa-apa.
Jika antara muka rosak tetapi konfigurasi betul, bersihkan dan mula semula. Jika konfigurasi salah, betulkan dan tetap bersihkan dahulu, kerana memulakan pengurus kedua di atas keadaan separa menghasilkan dua pemilik untuk satu antara muka. Jika kegagalan ialah komponen sistem yang hilang, seperti pembantu penyelesai yang tidak ada pada mesin, pasang atau buang kebergantungan itu dengan sengaja dan bukan menyunting unit sehingga ia berhenti merungut.
Ketiga-tiga kes itu meliputi sebahagian besar apa yang kelihatan seperti unit merah yang misteri. Soalan yang membezakan ialah sama ada kegagalan yang sama akan berlaku pada mesin dengan keadaan bersih, dan jawapannya biasanya datang daripada baris ralat pertama.
Bersihkan sebelum mencuba lagi
Percubaan semula di atas keadaan sedia ada boleh gagal atas sebab baru dan menyembunyikan sebab asal. Turunkan antara muka dengan alat yang sama yang menciptanya, kemudian pastikan tiada apa yang tinggal.
Jangan padam antara muka yang tidak berkaitan dan jangan set semula tindanan rangkaian hos. Kedua-duanya tindakan besar untuk membaiki objek kecil, dan ia mengubah satu terowong yang gagal menjadi mesin yang sambungan lainnya perlu dibina semula. Skop yang betul ialah satu antara muka dan unit yang memilikinya. Apa-apa yang lebih luas memerlukan alasan bertulis sebelum ia berlaku.
Buktikan terowong itu, bukan unit
Unit hijau bermaksud urutan permulaan keluar dengan sifar. Ia tidak bermaksud paket sampai ke sebelah sana, dan tidak bermaksud penyelesai ditetapkan seperti yang anda maksudkan.
Hantar permintaan melalui terowong dan baca keadaan yang menghasilkannya:
systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.netJabat tangan tanpa balasan tetap memberitahu terowong terbentuk dan sebelah jauh senyap, yang merupakan masalah berbeza daripada unit yang tidak pernah bermula. Simpan status unit, jabat tangan dan keputusan permintaan dalam satu rekod, kerana ia gagal secara berasingan dan hanya gabungan menggambarkan sistem.