Untuk administrator sistem pemula: cara menciptakan keteraturan dari kekacauan

Untuk administrator sistem pemula: cara menciptakan keteraturan dari kekacauan

Saya seorang administrator sistem FirstVDS, dan ini adalah teks kuliah pengantar pertama dari kursus singkat saya tentang membantu rekan-rekan pemula. Spesialis yang baru-baru ini mulai terlibat dalam administrasi sistem menghadapi sejumlah masalah yang sama. Untuk menawarkan solusi, saya berusaha menulis rangkaian ceramah ini. Beberapa hal di dalamnya khusus untuk dukungan teknis hosting, namun secara umum, mungkin berguna, jika tidak untuk semua orang, maka bagi banyak orang. Jadi saya telah mengadaptasi teks kuliah untuk dibagikan di sini.

Tidak peduli apa nama jabatan Anda - yang penting adalah Anda benar-benar terlibat dalam administrasi. Oleh karena itu, mari kita mulai dengan apa yang harus dilakukan oleh administrator sistem. Tugas utamanya adalah menertibkan, menjaga ketertiban, dan mempersiapkan peningkatan ketertiban di masa depan. Tanpa administrator sistem, server menjadi berantakan. Log tidak ditulis, atau hal-hal yang salah ditulis di dalamnya, sumber daya tidak didistribusikan secara optimal, disk dipenuhi dengan segala jenis sampah dan sistem perlahan-lahan mulai mati karena begitu banyak kekacauan. Dengan tenang! Administrator sistem secara pribadi Anda mulai memecahkan masalah dan menghilangkan kekacauan!

Pilar Administrasi Sistem

Namun, sebelum Anda mulai menyelesaikan masalah, ada baiknya Anda mengenal empat pilar utama administrasi:

  1. Dokumentasi
  2. Templat
  3. Optimasi
  4. Otomatisasi

Ini adalah dasar-dasarnya. Jika Anda tidak membangun alur kerja berdasarkan prinsip-prinsip ini, alur kerja Anda akan menjadi tidak efektif, tidak produktif, dan umumnya hanya memiliki sedikit kemiripan dengan administrasi sebenarnya. Mari kita lihat masing-masing secara terpisah.

Документация

Документация tidak berarti membaca dokumentasi (meskipun Anda tidak dapat melakukannya tanpanya), tetapi juga memeliharanya.

Cara menyimpan dokumentasi:

  • Pernahkah Anda menghadapi masalah baru yang belum pernah Anda lihat sebelumnya? Tuliskan gejala utama, metode diagnosis dan prinsip eliminasi.
  • Sudahkah Anda menemukan solusi baru dan elegan untuk masalah umum? Tuliskan sehingga Anda tidak perlu mengulanginya sebulan dari sekarang.
  • Apakah mereka membantu Anda menemukan pertanyaan yang tidak Anda mengerti? Tuliskan poin-poin dan konsep-konsep utama, buatlah diagramnya sendiri.

Ide utamanya: Anda tidak boleh sepenuhnya mempercayai ingatan Anda sendiri saat menguasai dan menerapkan hal-hal baru.

Dalam format apa Anda akan melakukan ini terserah Anda: bisa berupa sistem dengan catatan, blog pribadi, file teks, notepad fisik. Hal utama adalah catatan Anda memenuhi persyaratan berikut:

  1. Jangan terlalu lama. Soroti ide-ide utama, metode dan alat. Jika memahami suatu masalah memerlukan penyelaman ke dalam mekanisme alokasi memori tingkat rendah di Linux, jangan menulis ulang artikel yang Anda pelajari - berikan tautan ke artikel tersebut.
  2. Entrinya harus jelas bagi Anda. Jika garis race cond.lockup tidak memungkinkan Anda untuk segera memahami apa yang Anda jelaskan dengan baris ini - jelaskan. Dokumentasi yang baik tidak membutuhkan waktu setengah jam untuk memahaminya.
  3. Pencarian adalah fitur yang sangat bagus. Jika Anda menulis postingan blog, tambahkan tag; jika dalam buku catatan fisik, tempelkan post-it kecil dengan deskripsi. Tidak ada gunanya dokumentasi jika Anda menghabiskan banyak waktu untuk mencari jawaban di dalamnya seperti yang Anda habiskan untuk menyelesaikan pertanyaan dari awal.

Untuk administrator sistem pemula: cara menciptakan keteraturan dari kekacauan

Seperti inilah dokumentasinya: dari catatan primitif di notepad (gambar di atas), hingga basis pengetahuan multi-pengguna yang lengkap dengan tag, pencarian, dan semua kemudahan yang mungkin (di bawah).

Untuk administrator sistem pemula: cara menciptakan keteraturan dari kekacauan

Anda tidak hanya tidak perlu mencari jawaban yang sama dua kali, tetapi mendokumentasikan akan sangat membantu dalam mempelajari topik baru (catatan!), akan meningkatkan spider-sense Anda (kemampuan untuk mendiagnosis masalah kompleks dengan satu pandangan sekilas), dan akan menambahkan organisasi pada tindakan Anda. Jika dokumentasi tersedia untuk kolega Anda, mereka akan mengetahui apa dan bagaimana Anda menumpuk di sana saat Anda tidak berada di sana.

Templat

Templat adalah pembuatan dan penggunaan template. Untuk mengatasi sebagian besar masalah umum, ada baiknya membuat template tindakan spesifik. Urutan langkah-langkah standar harus digunakan untuk mendiagnosis sebagian besar masalah. Ketika Anda telah memperbaiki/memasang/mengoptimalkan sesuatu, kinerja sesuatu tersebut harus diperiksa menggunakan daftar periksa standar.

Templating adalah cara terbaik untuk mengatur alur kerja Anda. Dengan menggunakan prosedur standar untuk menyelesaikan masalah yang paling umum, Anda mendapatkan banyak hal keren. Misalnya, menggunakan daftar periksa akan memungkinkan Anda mendiagnosis semua fungsi yang penting untuk pekerjaan Anda dan membuang diagnosis fungsi yang tidak penting. Dan prosedur standar akan meminimalkan pelemparan yang tidak perlu dan mengurangi kemungkinan kesalahan.

Poin penting pertama adalah prosedur dan daftar periksa juga perlu didokumentasikan. Jika Anda hanya mengandalkan memori, Anda dapat melewatkan beberapa pemeriksaan atau operasi yang sangat penting dan merusak segalanya. Poin penting kedua adalah bahwa semua praktik templat dapat dan harus dimodifikasi jika situasi memerlukannya. Tidak ada template yang ideal dan benar-benar universal. Jika ada masalah, tetapi pemeriksaan template tidak menunjukkannya, bukan berarti tidak ada masalah. Namun, sebelum Anda mulai menguji beberapa masalah hipotetis yang tidak terduga, ada baiknya melakukan pengujian template cepat terlebih dahulu.

Optimasi

Optimasi berbicara untuk dirinya sendiri. Proses kerja perlu dioptimalkan semaksimal mungkin dari segi waktu dan biaya tenaga kerja. Ada banyak pilihan: pelajari pintasan keyboard, singkatan, ekspresi reguler, alat yang tersedia. Carilah kegunaan yang lebih praktis dari alat-alat ini. Jika Anda memanggil suatu perintah 100 kali sehari, tetapkan perintah tersebut ke pintasan keyboard. Jika Anda perlu terhubung secara teratur ke server yang sama, tuliskan alias dalam satu kata yang akan menghubungkan Anda ke sana:

Untuk administrator sistem pemula: cara menciptakan keteraturan dari kekacauan

Biasakan diri Anda dengan berbagai opsi yang tersedia untuk alat - mungkin ada klien terminal, DE, pengelola papan klip, browser, klien email, sistem operasi yang lebih nyaman. Cari tahu alat apa yang digunakan kolega dan teman Anda - mungkin mereka memilihnya karena suatu alasan. Setelah Anda memiliki alatnya, pelajari cara menggunakannya: pelajari kunci, singkatan, tip dan trik.

Manfaatkan alat standar secara optimal - coreutils, vim, ekspresi reguler, bash. Untuk tiga yang terakhir ada banyak sekali manual dan dokumentasi yang bagus. Dengan bantuan mereka, Anda dapat dengan cepat beralih dari keadaan “Saya merasa seperti monyet yang memecahkan kacang dengan laptop” menjadi “Saya adalah monyet yang menggunakan laptop untuk memesan kerupuk kacang untuk diri saya sendiri.”

Otomasi

Otomasi akan memindahkan operasi sulit dari tangan kita yang lelah ke tangan otomatisasi yang tak kenal lelah. Jika beberapa prosedur standar dijalankan dalam lima perintah dengan tipe yang sama, mengapa tidak menggabungkan semua perintah ini dalam satu file dan memanggil satu perintah yang mengunduh dan menjalankan file ini?

Otomatisasi itu sendiri adalah 80% menulis dan mengoptimalkan alat Anda sendiri (dan 20% lainnya mencoba membuatnya berfungsi sebagaimana mestinya). Ini bisa berupa satu baris yang canggih atau alat mahakuasa yang sangat besar dengan antarmuka web dan API. Kriteria utama di sini adalah bahwa membuat alat tidak memerlukan waktu dan tenaga lebih banyak daripada jumlah waktu dan tenaga yang dapat dihemat oleh alat tersebut. Jika Anda menghabiskan lima jam menulis skrip yang tidak akan Anda perlukan lagi, untuk tugas yang membutuhkan waktu satu atau dua jam untuk menyelesaikannya tanpa skrip, ini adalah pengoptimalan alur kerja yang sangat buruk. Anda dapat menghabiskan waktu lima jam untuk membuat alat hanya jika jumlah, jenis tugas, dan waktu memungkinkan, hal ini jarang terjadi.

Otomatisasi tidak berarti menulis skrip yang lengkap. Misalnya, untuk membuat sekelompok objek dengan tipe yang sama dari sebuah daftar, yang Anda perlukan hanyalah sebuah kalimat pintar yang secara otomatis akan melakukan apa yang biasa Anda lakukan dengan tangan, beralih antar jendela, dengan banyak salin-tempel.

Sebenarnya, jika Anda membangun proses administrasi berdasarkan empat pilar ini, Anda dapat dengan cepat meningkatkan efisiensi, produktivitas, dan kualifikasi Anda. Namun, daftar ini perlu dilengkapi dengan satu item lagi, yang tanpanya hampir tidak mungkin bekerja di bidang TI - pendidikan mandiri.

Pendidikan mandiri administrator sistem

Untuk menjadi sedikit kompeten di bidang ini, Anda perlu terus-menerus belajar dan mempelajari hal-hal baru. Jika Anda tidak memiliki keinginan sedikit pun untuk menghadapi hal yang tidak diketahui dan mencari tahu, Anda akan segera terjebak. Segala macam solusi, teknologi, dan metode baru terus bermunculan di bidang TI, dan jika Anda tidak mempelajarinya setidaknya secara dangkal, Anda sedang menuju kegagalan. Banyak bidang teknologi informasi berdiri di atas dasar yang sangat kompleks dan banyak jumlahnya. Misalnya saja pengoperasian jaringan. Jaringan dan Internet ada di mana-mana, Anda menjumpainya setiap hari, tetapi begitu Anda menggali teknologi di baliknya, Anda akan menemukan disiplin ilmu yang sangat besar dan sangat kompleks, yang studinya tidak pernah mudah.

Saya tidak memasukkan item ini ke dalam daftar karena ini adalah kunci untuk TI secara umum, dan bukan hanya untuk administrasi sistem. Tentu saja, Anda tidak akan bisa mempelajari semuanya dengan segera—Anda tidak punya cukup waktu secara fisik. Oleh karena itu, ketika mendidik diri sendiri, Anda harus mengingat tingkat abstraksi yang diperlukan.

Anda tidak perlu segera mempelajari cara kerja manajemen memori internal dari masing-masing utilitas, dan bagaimana interaksinya dengan manajemen memori Linux, namun ada baiknya mengetahui apa itu RAM secara skematis dan mengapa diperlukan. Anda tidak perlu mengetahui perbedaan struktural header TCP dan UDP, tetapi sebaiknya Anda memahami perbedaan mendasar dalam cara kerja protokol. Anda tidak perlu mempelajari apa yang dimaksud dengan redaman sinyal dalam optik, tetapi alangkah baiknya jika mengetahui mengapa kerugian nyata selalu diwariskan antar node. Tidak ada salahnya mengetahui cara kerja elemen tertentu pada tingkat abstraksi tertentu dan belum tentu memahami secara mutlak semua tingkatan ketika tidak ada abstraksi sama sekali (Anda akan jadi gila).

Namun, di bidang Anda, berpikir pada tingkat abstraksi “ini adalah sesuatu yang memungkinkan Anda menampilkan situs web” tidaklah terlalu baik. Kuliah berikut akan dikhususkan untuk ikhtisar area utama yang harus ditangani oleh administrator sistem ketika bekerja pada abstraksi tingkat rendah. Saya akan mencoba membatasi jumlah pengetahuan yang ditinjau pada tingkat abstraksi minimum.

10 perintah administrasi sistem

Jadi, kita telah mempelajari empat pilar dan landasan utama. Bisakah kita mulai memecahkan masalah? Belum. Sebelum melakukan ini, Anda disarankan untuk membiasakan diri dengan apa yang disebut “praktik terbaik” dan aturan sopan santun. Tanpa hal-hal tersebut, kemungkinan besar Anda akan lebih banyak ruginya daripada manfaatnya. Jadi mari kita mulai:

  1. Beberapa rekan saya percaya bahwa aturan pertama adalah “jangan menyakiti.” Tapi saya cenderung tidak setuju. Ketika Anda mencoba untuk tidak menyakiti, Anda tidak dapat melakukan apa pun - terlalu banyak tindakan berpotensi merusak. Saya pikir aturan yang paling penting adalah - “buat cadangan”. Bahkan jika Anda melakukan beberapa kerusakan, Anda selalu dapat memutar kembali dan semuanya tidak akan terlalu buruk.

    Anda harus selalu membuat cadangan bila waktu dan tempat memungkinkan. Anda perlu membuat cadangan apa yang akan Anda ubah dan apa yang berisiko hilang karena tindakan yang berpotensi merusak. Dianjurkan untuk memeriksa integritas cadangan dan keberadaan semua data yang diperlukan. Cadangan tidak boleh langsung dihapus setelah Anda memeriksa semuanya, kecuali Anda perlu mengosongkan ruang disk. Jika lokasi memerlukannya, buat cadangannya ke server pribadi Anda dan hapus setelah seminggu.

  2. Aturan terpenting kedua (yang sering saya langgar sendiri) adalah "jangan sembunyi". Jika Anda membuat cadangan, tulis di mana, sehingga rekan Anda tidak perlu mencarinya. Jika Anda telah melakukan beberapa tindakan yang tidak jelas atau rumit, tuliskan: Anda akan pulang, dan masalahnya mungkin terulang atau timbul pada orang lain, dan solusi Anda akan ditemukan menggunakan kata kunci. Bahkan jika Anda melakukan sesuatu yang Anda ketahui dengan baik, rekan kerja Anda mungkin tidak melakukannya.
  3. Aturan ketiga tidak perlu dijelaskan: “jangan pernah melakukan sesuatu yang konsekuensinya tidak kamu ketahui, bayangkan atau pahami”. Jangan menyalin perintah dari Internet jika Anda tidak tahu fungsinya, hubungi man dan uraikan terlebih dahulu. Jangan gunakan solusi yang sudah jadi jika Anda tidak memahami fungsinya. Pertahankan eksekusi kode yang dikaburkan seminimal mungkin. Jika Anda tidak punya waktu untuk memikirkannya, berarti Anda melakukan kesalahan dan Anda harus membaca poin berikutnya.
  4. "Tes". Skrip, alat, one-liner, dan perintah baru harus diuji di lingkungan yang terkendali, bukan di mesin klien, jika potensi tindakan destruktifnya minimal. Bahkan jika Anda mencadangkan semuanya (dan memang demikian), waktu henti bukanlah hal yang paling keren. Buat server/virtual/chroot terpisah untuk ini dan uji di sana. Apakah ada yang rusak? Kemudian Anda dapat meluncurkannya pada “pertempuran”.

    Untuk administrator sistem pemula: cara menciptakan keteraturan dari kekacauan

  5. "Kontrol". Minimalkan semua operasi yang tidak Anda kendalikan. Kurva ketergantungan satu paket dapat menyeret separuh sistem ke bawah, dan tanda -y yang disetel untuk yum delete memberi Anda kesempatan untuk melatih keterampilan pemulihan sistem Anda dari awal. Jika tindakan tersebut tidak memiliki alternatif yang tidak terkendali, poin berikutnya adalah cadangan yang sudah jadi.
  6. "Memeriksa". Periksa konsekuensi tindakan Anda dan apakah Anda perlu memutar kembali ke cadangan. Periksa untuk melihat apakah masalahnya benar-benar telah teratasi. Periksa apakah kesalahan terjadi kembali dan dalam kondisi apa. Periksa apa yang dapat Anda hancurkan dengan tindakan Anda. Tidak perlu memercayai pekerjaan kita, tapi jangan pernah memeriksanya.
  7. "Menyampaikan". Jika Anda tidak dapat menyelesaikan masalah, tanyakan pada rekan Anda apakah mereka pernah mengalami hal ini. Jika Anda ingin menerapkan keputusan kontroversial, cari tahu pendapat rekan kerja Anda. Mungkin mereka akan menawarkan solusi yang lebih baik. Jika Anda tidak yakin dengan tindakan Anda, diskusikan dengan rekan kerja Anda. Sekalipun ini adalah bidang keahlian Anda, pandangan baru terhadap situasinya dapat memperjelas banyak hal. Jangan malu dengan ketidaktahuanmu sendiri. Lebih baik bertanya pertanyaan bodoh, terlihat seperti orang bodoh dan mendapat jawaban, daripada tidak bertanya, tidak mendapat jawaban dan akhirnya menjadi bodoh.
  8. “Jangan menolak bantuan dengan tidak masuk akal”. Poin ini merupakan kebalikan dari poin sebelumnya. Jika Anda ditanyai pertanyaan bodoh, klarifikasi dan jelaskan. Mereka menanyakan hal yang tidak mungkin - jelaskan apa yang tidak mungkin dan mengapa, tawarkan alternatif. Jika Anda tidak punya waktu (Anda benar-benar tidak punya waktu, bukan keinginan) - katakan bahwa Anda memiliki pertanyaan mendesak, banyak pekerjaan, tetapi Anda akan menyelesaikannya nanti. Jika rekan kerja tidak memiliki tugas yang mendesak, tawarkan untuk menghubungi mereka dan delegasikan pertanyaan tersebut.
  9. "Berikan umpan balik". Apakah salah satu kolega Anda mulai menggunakan teknik atau skrip baru, dan apakah Anda menghadapi konsekuensi negatif dari keputusan ini? Laporkan. Mungkin masalahnya dapat diselesaikan dalam tiga baris kode atau lima menit penyempurnaan tekniknya. Pernahkah Anda menemukan bug pada perangkat lunak Anda? Laporkan bug. Jika dapat direproduksi atau tidak perlu direproduksi, kemungkinan besar akan diperbaiki. Sampaikan keinginan, saran, dan kritik yang membangun, serta ajukan pertanyaan untuk didiskusikan jika dirasa relevan.
  10. "Minta tanggapan". Kita semua tidak sempurna, sama seperti keputusan kita, dan cara terbaik untuk menguji kebenaran keputusan Anda adalah dengan membawanya ke diskusi. Jika Anda telah mengoptimalkan sesuatu untuk klien, mintalah mereka untuk memantau pekerjaannya; mungkin hambatan dalam sistem bukan yang Anda cari. Anda telah menulis skrip bantuan - tunjukkan kepada kolega Anda, mungkin mereka akan menemukan cara untuk memperbaikinya.

Jika Anda terus-menerus menerapkan praktik ini dalam pekerjaan Anda, sebagian besar masalah tidak akan lagi menjadi masalah: Anda tidak hanya akan mengurangi jumlah kesalahan dan kekeliruan Anda seminimal mungkin, namun Anda juga akan memiliki kesempatan untuk memperbaiki kesalahan (dalam hal ini). bentuk backup dan rekan yang akan menyarankan Anda untuk melakukan backup). Selanjutnya - hanya rincian teknis, di mana, seperti kita tahu, iblis berbohong.

Alat utama yang harus Anda gunakan lebih dari 50% waktunya adalah grep dan vim. Apa yang lebih sederhana? Pencarian teks dan pengeditan teks. Namun, grep dan vim adalah alat multi canggih yang memungkinkan Anda mencari dan mengedit teks secara efisien. Jika beberapa notepad Windows memungkinkan Anda menulis/menghapus satu baris, maka di vim Anda dapat melakukan hampir semua hal dengan teks. Jika Anda tidak percaya, panggil perintah vimtutor dari terminal dan mulailah belajar. Sedangkan untuk grep, kekuatan utamanya ada pada ekspresi reguler. Ya, alat itu sendiri memungkinkan Anda mengatur kondisi pencarian dan mengeluarkan data dengan cukup fleksibel, tetapi tanpa RegExp hal ini tidak masuk akal. Dan Anda perlu mengetahui ekspresi reguler! Setidaknya pada tingkat dasar. Untuk memulainya, saya menyarankan Anda untuk melihat ini Video, ini mencakup dasar-dasar ekspresi reguler dan penggunaannya bersama dengan grep. Oh ya, ketika Anda menggabungkannya dengan vim, Anda mendapatkan kemampuan ULTIMATE POWER untuk melakukan hal-hal seperti itu dengan teks sehingga Anda harus memberi labelnya dengan 18+ ikon.

Dari 50% sisanya, 40% berasal dari toolkit coreutils. Untuk coreutils Anda dapat melihat daftarnya di wikipedia, dan manual untuk seluruh daftar ada di situs web GNU. Apa yang tidak tercakup dalam set ini ada di utilitas POSIX. Anda tidak harus menghafal semua kuncinya, tetapi akan sangat membantu jika Anda setidaknya mengetahui secara kasar apa yang dapat dilakukan alat-alat dasar tersebut. Anda tidak perlu menemukan kembali roda dari kruk. Saya entah bagaimana perlu mengganti jeda baris dengan spasi pada keluaran dari beberapa utilitas, dan otak saya yang sakit melahirkan konstruksi seperti itu sed ':a;N;$!ba;s/n/ /g', seorang rekan datang dan mengusir saya dari konsol dengan sapu, lalu menyelesaikan masalah dengan menulis tr 'n' ' '.

Untuk administrator sistem pemula: cara menciptakan keteraturan dari kekacauan

Saya akan menyarankan Anda untuk mengingat apa yang dilakukan masing-masing alat dan kunci dari perintah yang paling sering digunakan; untuk segala hal lainnya ada manusia. Jangan ragu untuk menelepon kawan jika Anda memiliki keraguan. Dan pastikan untuk membaca orang itu sendiri—ini berisi informasi penting tentang apa yang akan Anda temukan.

Mengetahui alat-alat ini, Anda akan dapat secara efektif memecahkan sebagian besar masalah yang akan Anda temui dalam praktik. Dalam kuliah berikut, kita akan melihat kapan menggunakan alat-alat ini dan kerangka kerja untuk layanan dan aplikasi yang mendasarinya.

Administrator sistem FirstVDS Kirill Tsvetkov bersama Anda.

Sumber: www.habr.com

Tambah komentar