Pertanyaan Bagaimana Anda membuatnya jelas Anda berada di sistem produksi?


Beberapa dari kami di perusahaan saya memiliki akses root pada server produksi. Kami mencari cara yang bagus untuk membuatnya sangat jelas ketika kita memiliki ssh'd di.

Beberapa ide yang kami miliki adalah:

  • Red terang cepat
  • Jawab teka-teki sebelum mendapatkan cangkang
  • Ketik kata acak sebelum mendapatkan shell

Apa teknik yang Anda gunakan untuk membedakan sistem produksi?


132
2017-10-19 18:21




Adakah cara untuk mengajari orang-orang agar tidak beralih ke sistem produksi? Jika Anda sudah memeriksa semuanya dalam Wayang, misalnya, Anda hanya perlu masuk ke sistem produksi untuk pemecahan masalah. - Alex Holst
Anda mengizinkan akses root ssh pada sistem produksi Anda ???? !!!!! - symcbean
@symcbean: bukan itu yang dikatakan Sionide. Dia bisa berarti setelah Anda SSH ke akun pengguna Anda. - Zan Lynx
Apakah pertanyaan ini menjadi kandidat untuk komunitas wiki? - MadHatter
Anda dapat membuatnya sangat jelas itu adalah sistem produksi dengan menonaktifkan SSH untuk itu. Tidak bisa lebih jelas dari itu. - Franci Penov


Jawaban:


Prompt merah adalah ide yang bagus, yang juga saya gunakan.

Trik lain adalah untuk menempatkan peringatan ASCII-art besar di /etc/motd mengajukan.
Memiliki sesuatu seperti ini menyapa Anda ketika Anda masuk harus mendapatkan perhatian Anda:

 _______ _ _ _____ _____ _____ _____
| __ __ | | | | _ _ | / ____ | | _ _ | / ____ | / \
   | | | | __ | | | | | (___ | | | (___ / \
   | | | __ | | | \ ___ \ | | \ ___ \ / / \ \
   | | | | | | _ | | _ ____) | _ | | _ ____) | / ____ \
   | _ | | _ | | _ | _____ | _____ / | _____ | _____ / / _ / \ _ \


 _____ _____ ____ _____ _ ______ _______ _____ ____ _ _
| __ \ | __ \ / __ \ | __ \ | | | | / ____ | __ __ | __ / __ \ | \ | |
| | __) | | __) | | | | | | | | | | | | | | || | | | \ | |
| ___ / | _ / | | | | | | | | | | | | | | || | | | . `|
| | | | \ \ | | __ | | | __ | | | __ | | | ____ | | _ | || | __ | | | \ |
| _ | | _ | \ _ \\ ____ / | _____ / \ ____ / \ _____ | | _ | | _____ \ ____ / | _ | \ _ |


 __ __ _____ _ _ _____ _ _ ______
| \ / | / \ / ____ | | | | _ _ | \ | | ____ |
| \ / | / \ | | | | __ | | | | | \ | | | __
| | \ / | | / / \ \ | | | __ | | | | . `| __ |
| | | | / ____ \ | ____ | | | | _ | | _ | | \ | | ____
| _ | | _ / _ / \ _ \ _____ | _ | | _ | _____ | _ | \ _ | ______ |

Anda bisa menghasilkan peringatan seperti itu situs ini atau Anda bisa menggunakan figlet  perintah.

figlet

Seperti yang disarankan Nicholas Smith dalam komentar, Anda bisa membumbui beberapa naga atau hewan lain menggunakan cowsay perintah.

dragon cowsay

Alih-alih menggunakan file / etc / motd, Anda juga bisa menelepon cowsay atau figlet dalam .profile mengajukan.


135
2017-10-19 18:36



Ooh aku suka itu! - Sionide21
Jika Anda mengetikkan beberapa perintah, Anda tidak akan melihat itu lagi. - Nils
Benar, di situlah prompt merah sangat berguna. - Kenny Rasschaert
Pada server Windows, saya menggunakan warna desktop pink cerah dan skema warna / warna kuning cerah sehingga benar-benar, sangat jelas. Ini adalah versi kami dari prompt perintah berwarna - Mark Henderson♦
Saya ingin menambahkan Naga ASCII ke dalam campuran. - Nicholas Smith


Bukan hal yang sama, tapi situs ini merekomendasikan agar pengembang Anda mengenakan sombrero berwarna merah muda saat membuat perubahan pada sistem produksi. Anda mungkin bisa memiliki aturan yang sama untuk melakukan sshing ke dalamnya.

developer wearing a pink sombrero


75
2017-10-20 04:58



Ha ha! +1 karena saya LOL. Tapi serius, orang-orang dapat mencari kacamata mereka yang hilang saat memakainya, saya ragu bahwa topi akan berfungsi sebagai "pengingat terus menerus". Juga, tidak ada yang membantu Anda mengingat jendela yang mana. - Felix Dombek
Ya, Anda harus mengubah proses Anda menjadi: 1) Deklarasikan keinginan untuk mengedit produksi. 2) Keluarkan sombrero dan matikan semua jendela lainnya. 3) Lakukan produksi barang saat semua orang menonton. 4) Keluar dari sesi dan keluarkan sombrero. - Aric TenEyck
"2) Keluarkan sombrero dan tutup semua jendela lain" Itu tidak akan benar-benar berfungsi di perusahaan saya, karena itulah langkah 2 dari semua SOP kami. Langkah 1 tentu saja "menyalakan lampu", karena, dengan jendela tertutup, itu bisa sangat gelap di kantor ini. - Parthian Shot


Yang terbesar yang pernah saya gunakan adalah penamaan-skema diskrit di mana prod-sistem diberi nama jelas berbeda dari contoh uji / dev. Ini membuat permintaan nama "Username @ Hostname:" tampak sangat berbeda. Dan dengan jelas saya maksud lebih dari sekadar kata-kata yang berbeda, format yang berbeda juga:

contoh: PRD-WEB001 vs DEVEL-BOB-WEB001

Ini memiliki beberapa hal yang terjadi untuk itu:

  • Blok ekstra hypenated membuatnya menjadi satu set-dari-tiga bukannya satu set-dua.
  • Set pertama memiliki panjang yang berbeda.
  • Panjang keseluruhan nama sangat berbeda, yang membuat jarak baris perintah relatif berbeda satu sama lain dan teks lain di jendela.

Dan yang paling penting, itu tidak memerlukan konfigurasi terminal khusus untuk produksi hanya untuk menghindari kesalahan Oops.

Dalam pengalaman saya, Anda menginginkan sesuatu yang merupakan pengingat konstan di mana Anda berada. Metode login seperti teka-teki bagus selama sekitar 10 detik, sampai Anda lupa jendela yang mana. Yang dibutuhkan hanyalah melakukan ls di direktori yang salah untuk menggulir masuk-banner tidak menyenangkan keluar dari pandangan, mengubur jendela terminal di bawah jendela browser saat googling sesuatu, alt-tab kembali ke jendela yang salah dan kekacauan terjadi kemudian. Paling baik untuk memiliki beberapa isyarat visual yang konstan seperti perintah-prompt yang berbeda secara signifikan.


50
2017-10-19 18:33



Itu bekerja sangat baik untuk sistem dasar, tetapi segera setelah Anda mengubah dev- * untuk mendorong devans mengerang dan mengerang sebagai setengah link mereka berhenti bekerja (tidak peduli berapa kali Anda telah melakukannya sebelumnya), dan kadang-kadang sistem itu sendiri berjalan dengan setengah kerja sampai Anda memperbaiki semua referensi ke nama lama di file konfigurasi. Terutama dengan perangkat lunak berpemilik terinstal, dan alias DNS hanya membantu begitu banyak. Lebih buruk lagi, mudah untuk melupakan prompt sepenuhnya saat mengganti windows. - SilverbackNet
Pengembang perlu membuat pengaturan yang bekerja di seluruh dev / test / pementasan / produksi (itulah yang saya lakukan, tetapi itu adalah cerita lain). Untuk 'red prompt' yang bekerja untuk bash (lebih keras dari yang terlihat), lihat jawaban saya di serverfault.com/a/479718/79266 - RichVel


Satu hal yang perlu Anda ingat adalah bahwa ini perlu menjadi pengingat yang terus-menerus, bukan hanya indikator pada waktu masuk. Sangat sering, seseorang akan memiliki beberapa shell yang berjalan pada saat yang sama di tab yang berbeda dan bergerak di antara mereka. Sebagian akan menjadi dev, beberapa produksi. Jadi ketika Anda menjalankan perintah, Anda harus memiliki indikator pada saat itu. Jadi memiliki prompt khusus adalah metode terbaik, dalam pengalaman saya, dengan judul / tab bar yang dimodifikasi menjadi pelengkap yang bagus untuk ini untuk menemukan jendela / tab yang tepat dengan mudah.

Jadi saya akan merekomendasikan memiliki prompt berwarna (merah menjadi pilihan yang jelas) dan semua topi untuk nama host, dengan perilaku yang sama untuk pengguna (privileged vs non-istimewa) sebagai prompt Anda. Beberapa contoh:

colored prompts example

Biasanya sesuatu seperti itu

set prompt =  "%{\033[1;44m%}`whoami`@`hostname -s`#%{\033[0m%} "` 

di file startup shell Anda. Yang ini untuk yang biru. Ganti 44 dengan 41 merah api, dan 42 untuk hijau. Warna lain dan pola liar juga tersedia.


38
2017-10-19 21:26



Untuk 'red prompt' yang bekerja untuk bash (lebih keras dari yang terlihat), lihat jawaban saya di serverfault.com/a/479718/79266 - Juga menunjukkan cabang git, direktori saat ini terpotong, dll. - RichVel


Ini adalah saran saya:

1) Pastikan sebagian besar perintah (rm, chown, chmod, /etc/init.d/*) pada lingkungan Produksi memerlukan akses sudo

2) Gunakan PS1 / PS2 untuk menunjukkan bahwa pengguna berada di server Prod

bash-3.2$  export PS1="[\u@\h \W]\$ "

Ini akan menampilkan command prompt sebagai

[sridhar@prodappserver901 conf]$

3) Jika Menggunakan klien Putty / SSH, Anda selalu dapat mengatur warna / profil Latar Belakang unik untuk membuat server Produksi menonjol.


14
2017-10-19 18:50



# 1 adalah ide yang menarik tetapi tidak praktis karena skrip yang berjalan sebagai pengguna daemon mungkin perlu menggunakan rm, chmod, dll. - Zan Lynx


Hanya mempertimbangkan bahwa ide kedua dan ketiga Anda membantu selama koneksi awal tetapi tidak ada nilai ketika Anda memiliki beberapa terminal terbuka dan berpindah dari satu ke yang lain. Ide sysadmin1138 tentang menggunakan penamaan adalah baik ketika dapat diterapkan tetapi ada banyak kasus di mana tidak dapat dilakukan.

Satu-satunya hal yang saya anggap benar-benar bermanfaat adalah prompt berwarna. Saya suka hijau untuk dev / testing, merah untuk produksi dan biru untuk mesin di DMZ. Dengan begitu, bahkan jika saya memiliki dua mesin dengan nama yang sama (di jaringan yang berbeda), seperti ketika menyiapkan mesin pengganti, saya masih dapat dengan mudah mengetahui mana yang saya gunakan.


13
2017-10-19 21:16





Prompt perintah merah / khusus bagus. Hal lain mungkin lebih cepat otomatis logout pada mesin-mesin menggunakan variabel TMOUT. Jika Anda telah membuka banyak jendela, yang produksi akan pergi lebih cepat.

Ini harus mengarah pada perilaku yang berbeda:

  1. Mengembangkan
  2. Uji
  3. Buat perubahan Anda ke server pementasan
  4. Hanya kemudian membuat lari cepat untuk produksi dan menyebarkan di sana (persis seperti Anda melakukannya di server pementasan)

11
2017-10-19 19:06





Bekerja pada mesin produksi dengan akun root biasa tidak pernah menjadi ide yang bagus.

Miliki akun dengan izin sudo lengkap. Tidak memungkinkan menyimpan sesi sudo. Melarang sudo su. Gunakan kata sandi terpisah untuk itu (bukan yang Anda miliki untuk mesin dev Anda). Mungkin tweak sudo untuk memberitahukan tentang identitas produksi shell sebelum mengeksekusi perintah (melalui alias).

Ini akan membuat kesalahan yang tidak disengaja yang cukup sulit. Dan merah cepat tidak ada salahnya.


8
2017-10-20 02:44



dan dengan "sudo su" maksudmu "sudo -i" atau paling tidak "sudo su -", kan? - Sparr
Whoa! itu Sparr! Dunia kecil :) - Sionide21
Tidak mungkin menghentikan orang dari memiliki cangkang akar. (sudo bash). Anda bisa mendapatkan root shell dari setup 'daftar hitam'. (Jika Anda berhati-hati, Anda dapat menghentikannya dengan pengaturan daftar putih, tetapi biasanya tidak dijamin.) - user606723
Hal ini tidak dimaksudkan untuk mencegah akses yang ditujukan ke cangkang akar - hanya beberapa cara umum yang digunakan orang sehingga mereka dapat melakukannya tanpa sadar, tanpa memberi perhatian. - Mihails Strasuns


Saya pergi dengan ide cepat merah, dan menemukan itu cukup membosankan untuk menemukan kode kerja untuk .bashrc.

Jadi, inilah versi saya, siap untuk disertakan .bashrc - https://github.com/RichVel/nicer-bash-prompt. Ini sepenuhnya didorong oleh nama host, jadi selama Anda memiliki pola yang cocok untuk hostname produksi (misalnya xyprod01, xyprod02, dll) itu akan berfungsi dengan baik, dan Anda dapat menggunakan yang sama .bashrc di semua lingkungan.

Terlihat seperti ini:

screenshot of red prompt

Ini menciptakan prompt bash yang lebih baik termasuk red prompt di host produksi - juga menunjukkan Anda git branch saat ini, dan 2 direktori terakhir di $ PWD. Berhati-hatilah untuk menghindari mengacaukan tampilan prompt ketika melakukan Ctrl / R (pencarian terbalik) di bash.

Juga termasuk fitur opsional untuk menyinkronkan riwayat bash Anda di semua jendela terminal, sepanjang garis jawaban ini. Ini bagus tapi tidak semua orang menginginkannya, jadi dinonaktifkan secara default.


8
2018-02-17 17:33



Ini yang terbaik!! TERIMA KASIH!!! - Luciano