Коли один з адмінів в GitLab видалив продакшн базу данних, то його не побили, не звільнили і навіть не принижували морально. І не тому що дикі люди, а навпаки, тому що це не продуктивно.
Висновок, який зробила компанія, — сервери погано інформували про статус і оточення. І треба на продакшен серверах якось червоненьким виділяти що це продакшен, а краще взагалі джунам таких прав не давати.
Висновок який зробив я — якщо так помилився хтось, то так само можу помилитись і я.
Тоді я написав статтю про апдейт ssh config щоб він змінював колір iTerm. Але з того часу пройшло вже багато днів і зараз в iTerm це робити набагато простіше. Та й через ssh майже ніхто вже не ходить.
Нижче розповім як я змінюю колір терміналу в залежності від kubernetes context чи терраформу.
Початок
Для початку треба мати встановлену shell integration для iTerm.
І наступним кроком створити профіль у налаштуваннях айтерму.
Ви маєте мати основний профіль і додаткові — я маю два, перший для продакшену з червоним бекграундом і один для ssh/staging з синім.
Простіше за все зробити дублікат основного профілю з іншою назвою і змінити колір бекграунду у налаштуваннях.
Інструкцію як змінити колір не додаю, бо ви усі розумні й так. А хто не знайде як змінити колір, тому на продакшен краще взагалі не ходити і пити чай не до чи після, а замість.
terraform
У мене багато Terraform-коду, і іноді, коли експериментую, виконую його не через CI/CD, а локально (через Terraform Cloud, але файли на локальній машині).
Тому кожного разу, коли я в директорії з prod
у назві, хочу отримувати повідомлення
Для цього заходимо в налаштування профілю production, і йдемо у вкладу advanced, де додаємо /*prod
Префікс /
нам потрібен для того щоб iTerm розумів що мова йде про директорію. А зірочки *
— це звичайні вайлдкарди.
kubernetes
З кубернетісом трішечки складніше, тому що автоматичне перемикання профілю можлива тільки для ssh, директорії чи джоби. Але тут нам на допомогу приходять тригери.
Для початку йдемо в дефолтний профіль, заходимо в Advanced налаштування, бачимо Triggers і тицяємо Edit.
В якості тригеру iTerm приймає регулярний вираз. В моєму випадку це \[production\|
, оскільки я використовую kubie для зміни контексту і саме це воно пише у термінал. В вашому випадку може бути щось інше.
А дією буде загадкова Report User & Host: kuberoot@
Навіщо це потрібно?
Ми фактично не змінюємо користувача, але айтерму повідомляємо що користувач інший, адже далі ми йдемо у Advanced налаштування нашого production профілю та додаємо правило для автоматичного переключання, якщо користувач kuberoot@
Ось і все. Працює як годинник. Далі за аналогією можна зробити налаштування для інших програм чи ssh підключень, чи докеру чи чого завгодно.