Вчера Линукс чинили-чинили

Ста­ви­ли на вир­ту­аль­ную машин­ку обнов­лён­ное ядро. Поста­ви­ли, обно­ви­ли граб­ли (GRUB), пере­гру­жа­ем­ся… в ста­рое ядро. Чо за нах. Стёр­ли нахер ста­рый /boot/vmlinuz, так что един­ствен­ным vmlinuz оста­лось новое ядро. Пере­гру­жа­ем­ся… в ста­рое ядро. КАК??? ОТКУДА?? Как маши­на может загру­зить­ся ядро, кото­ро­го даже на дис­ке нет? Всё пере­про­ве­ри­ли, зано­во поста­ви­ли новое ядро, пере­про­ве­ри­ли граб­ли, пере­гру­жа­ем­ся… в ста­рое ядро.

Я чуть кры­шей не поехал. Отку­да оно берёт­ся-то? Дела­ем find / ‑name «vmlinuz*». Нихе­ра, кро­ме ново­го ядра.

Нако­нец от отча­я­ния смот­рим в syslog и видим какие-то упо­ми­на­ния /dev/sda, при том, что у нас вро­де как один диск, и ОС у нас сто­ит на /dev/sdb. Выяс­ня­ем нако­нец, что к машине при­цеп­лен вто­рой диск, кото­рый нигде не смон­ти­ро­ван — но на нём, ядрё­на вошь, сто­ит vmlinuz, в кото­рый и гру­зит­ся наша вир­ту­ал­ка!

Отцеп­ля­ем диск нахер и нако­нец нор­маль­но гру­зим­ся в новое ядро.

Дав­нень­ко я не чув­ство­вал себя таким иди­о­том. Это бод­рит.

О названиях узлов

Став­лю тут хрень для уда­лён­но­го руле­ния сер­ве­ра­ми через RDP через любой бра­у­зер, под­дер­жи­ва­ю­щий HTML5. Очень удоб­но, пото­му что мож­но рулить всем хоть с теле­фо­на, хоть с маши­ны под Фрю­ник­сом. Хрень назы­ва­ет­ся Guacamole (Гуа­ка­мо­ле) — это назва­ние такой мек­си­кан­ской закус­ки (или соуса для мака­ния, это уж как назвать). Надо было как-нибудь при­ду­мать, какие име­на дать двум сер­ве­рам. При­ду­мал — назвал «аво­ка­до» и «кин­за» (два основ­ных ингри­ди­ен­та для это­го соуса). Началь­ник посме­ял­ся, но выбор одоб­рил 🙂

А вы гово­ри­те, что в систем­ном адми­ни­стри­ро­ва­ние нет полё­та фан­та­зии 🙂

Вопросы на интервью, помощь зала

Мне надо будет нанять сисад­ми­на; но так как мы теперь семи­миль­ны­ми шага­ми идём в обла­ко, от сисад­ми­на теперь тре­бу­ет­ся опыт про­грам­ми­ро­ва­ния. Не силь­но углуб­лён­но­го, но надо, что­бы чело­век пони­мал осно­вы напи­са­ния скрип­тов.

Сижу чешу репу над спис­ком вопро­сов.

Мне, повто­рюсь, не надо, что­бы чело­век знал, напри­мер, какой кон­крет­но коман­дой мож­но полу­чить мас­сив объ­ек­тов ком­пью­те­ров из AD — это лег­ко гуг­лит­ся. Надо понять, уме­ет ли чел вооб­ще в осно­вы погро­ми­ро­ва­ния. Пусть пишет хоть на Питоне, хоть на псев­до­ко­де, мне похер.

1. Если нуж­но совер­шить одно и то же дей­ствие пять раз, как это луч­ше все­го сде­лать внут­ри скрип­та?
2. Если мне надо полу­чить про­ну­ме­ро­ван­ный спи­сок всех ком­пью­те­ров в домене, как про­ще все­го это сде­лать?
3. Нуж­но напи­сать скрипт, кото­рый будет посы­лать изве­ще­ние сисад­ми­ну, если в домене появят­ся учёт­ные запи­си, пароль кото­рых нико­гда не исте­ка­ет. Как это луч­ше все­го напи­сать?
4. if (a = 0) { .. } — поче­му дан­ное усло­вие либо не рабо­та­ет вооб­ще, либо не рабо­та­ет пра­виль­но?

Какие ещё будут пред­ло­же­ния?

Микрософт в своём стиле

Под­ход этой ком­па­нии к уста­нов­ке неко­то­рых обнов­ле­ний для ОС Windows — не уста­ёт повер­гать меня в состо­я­ние когни­тив­но­го шока.

Вот, напри­мер, руко­вод­ство по мити­га­ции уяз­ви­мо­сти CVE-2017–8529. Вот вы чо дума­ли — что доста­точ­но нака­тить нуж­ное обнов­ле­ние и всё, вы в доми­ке, да? Авот­хер.

Уста­нов­ка обнов­ле­ния толь­ко нака­ты­ва­ет новые бинар­ни­ки в опе­ра­ци­он­ную систе­му. Для того, что­бы обнов­ле­ние зара­бо­та­ло, ещё надо вру­ко­паш­ную редак­ти­ро­вать реестр. Надо лезть в ветвь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ и созда­вать там новые запи­си. Всё это сопро­вож­да­ет­ся пояс­ни­тель­ны­ми запис­ка­ми, что, мол, редак­ти­ро­ва­ние реест­ра — очень опас­ное заня­тие, и что если оши­бё­тесь — будь­те гото­вы пере­ста­вить опе­ра­ци­он­ную систе­му с нуля.

Молод­цы, чо.

PS: Кста­ти, абсо­лют­но та же хер­ня была с уста­нов­кой обнов­ле­ния для Windows2000, кото­рое поз­во­ля­ло ей рабо­тать с дис­ка­ми более 120, что ли, гига­байт. Там тоже — уста­нов­ка обнов­ле­ния дела­ла толь­ко пол-дела. Надо было ещё руч­ка­ми реестр редак­ти­ро­вать.

Ну чо, поломали воцапчик-то?

Пишут, что это, дескать, была весь­ма тар­ге­ти­ро­ван­ная ата­ка (евреи пер­сов лома­ли, вро­де как), и что боль­шин­ству поль­зо­ва­те­лей на это будет начхать. Но оса­до­чек остал­ся непри­ят­ный.

Поэто­му я исполь­зо­вал и буду даль­ше исполь­зо­вать Signal.

А детищ Цукер­бер­га (Фейс­бук вла­де­ет Воца­пом, если кто не зна­ет) я буду сто­ро­нить­ся.

Про облачное сисадминство

Ска­жу я вам, что оно мне нра­вит­ся зна­чи­тель­но боль­ше тра­ди­ци­он­но­го. Во-пер­вых, тем, что не нуж­но делать нуд­ную неин­те­рес­ную рабо­ту типа про­вер­ки ста­ту­са дис­ков в мас­си­ве, их заме­ны, и про­че­го. Это поз­во­ля­ет скон­цен­три­ро­вать­ся на более инте­рес­ных (и денеж­ных) аспек­тах сисад­мин­ства — управ­ле­ни­ем AD, настрой­кой сетей, адми­ни­стри­ро­ва­ни­ем баз дан­ных, и так далее. А витую пару-то обжи­мать мож­но и мар­тыш­ку научить.

Но самый неожи­дан­ный аспект дан­но­го сисад­мин­ства лич­но для меня заклю­ча­ет­ся в том, что оно силь­но сдви­ну­ло меня в область про­грам­ми­ро­ва­ния. Пото­му что Пра­виль­ное Облач­ное Сисад­мин­ство — это Инфра­струк­ту­ра как Код, что под­ра­зу­ме­ва­ет руле­ние ресур­са­ми в первую оче­редь через исполь­зо­ва­ние JSON-шаб­ло­нов, нари­со­ван­ных в Visual Studio испол­ня­е­мых Team Foundation Server, и далее по алфа­ви­ту.

Осо­бен­но важ­но исполь­зо­вать Инфра­струк­ту­ру как Код если надо созда­вать туе­ву хучу оди­на­ко­вых ресур­сов. Я могу, напри­мер, 20 вир­ту­аль­ных машин с SQL Server-ом создать за 5 минут. Уда­чи угнать­ся если делать всё это рука­ми.

Ну, и обла­ко — это про­сто кру­то само по себе. Осо­бен­но для мало­го биз­не­са, напри­мер — это рань­ше надо было созда­вать сер­вер­ную, тра­тить кучу бабок про­сто для того, что­бы начать. С обла­ком же во-пер­вых, нет капи­та­ло­вло­же­ний, а во-вто­рых, мощ­ность ресур­сов мож­но нара­щи­вать по мере надоб­но­сти — начать с малень­ких, и закон­чить суперк­ла­сте­ра­ми с 24 тера­бай­та­ми опе­ра­тив­ки.

Коро­че, луб­лу и кере­мен­дую.

Они убили vi!

Вот сво­ло­чи!

Боль­шин­ство дисти­бу­ти­вов пре­кра­тят вклю­чать редак­тор vi в базо­вую кон­фи­гу­ра­цию.

Блин, вот одной из при­чин, по кото­рой я научил­ся поль­зо­вать­ся vi, было то, что зай­дя на абсо­лют­но любой фрю­никс-хрю­никс-бсд, я мог редак­ти­ро­вать им кон­фи­ги, пото­му что я твёр­до знал, что vi там БУДЕТ. А теперь чего? Какой стан­дарт-то? nano? ed? или, не к ночи будь помя­нут, emacs?