Јединице
1. Увод у вештачку интелигенцију у управљању системом и мрежом: улоге, границе, аутентификација и овлашћења 2. Скрипте за аутоматизацију: безбедно генерисање Басх-а, ПоверСхелл-а и Питхон-а 3. Анализа дневника и анализа основног узрока: Проналажење сигнала у шуму 4. Праћење капацитета и учинка: читање метрика и планирање за будућност 5. Управљање конфигурацијом: генерисање конфигурације, провера ваљаности и снимање одступања 6. Управљање инфраструктуром као код (ИаЦ): Терраформ, Ансибле и План Цонтрол 7. Управљање документацијом и информацијама: Рунбоок, пост мортем и корпоративно памћење 8. Предвиђено одржавање: уочавање кварова пре него што се догоде 9. Управљање променама: процена ризика, враћање уназад и прозор за одржавање 10. Безбедност и одбрана: коришћење вештачке интелигенције у одбрамбене сврхе иу границама овлашћења 11. Интеграција од краја до краја: Управљање инцидентом од почетка до краја
Јединица 5 / 11

Управљање конфигурацијом: генерисање конфигурације, провера ваљаности и снимање одступања

Добици:

  • Двослојна верификација генерисањем конфигурације са вештачком интелигенцијом и провером синтаксе и испитивањем значења
  • Способност да се конфигурација учини видљивим кроз поређење вештачке интелигенције и спречи то помоћу принципа златног извора и шаблона
  • Способност уклањања тајни из тела конфигурације, прављења резервних копија и стицања дисциплине постепене имплементације са канаринцем

Управљање конфигурацијом: генерисање, провера и хватање одступања у конфигурацијама са АИ

Сервер или услуга добијају своје понашање из конфигурационих датотека: који порт ће веб сервер слушати, колико веза ће база података прихватити, да ли је безбедносна поставка укључена или искључена, све је записано у овим датотекама. Управљање конфигурацијом је дисциплина која осигурава да су ове поставке тачне, доследне и исте на свим серверима. Звучи једноставно, али у пракси ноћне море долазе из овога: једна погрешна линија руши услугу, једна недоследна поставка доводи до катастрофе „радио је на мојој машини“. Овде АИ веома брзо генерише конфигурацију, описује сложени блок подешавања, упоређује две конфигурације и хвата синтаксичке грешке. Али непроменљиво правило: АИ производи нацрт конфигурације; Ваша је одговорност да га потврдите, испробате у тестном окружењу и имплементирате у производњу.

У овој јединици, концепти дрифт-а (померање конфигурације — сервери се удаљавају један од другог и стандарда током времена), идемпотентна конфигурација, шаблонирање и верификација; Научићете безбедно генерисање конфигурације и поређење са АИ.

Померање конфигурације: тихи убица

Најопаснији проблем конфигурације није изненадни колапс, већ подмукли клизање. Дрифт је одступање сервера један од другог и од захтеваног стандарда током времена. Неко ручно промени поставку за хитну исправку једне ноћи, али то не документује; неко други уноси другачију вредност на другом серверу; Десет сервера који су месецима касније требало да буду "исти" сада показују десет различитих понашања. Опасност од померања је у томе што је невидљив док се проблем не појави — тада се један сервер понаша другачије од осталих и дијагноза траје сатима. АИ може учинити дрифт видљивим постављањем две конфигурације једну поред друге и навођењем разлика. Али право решење је културно: управљање конфигурацијом не ручно, већ из верзионисаног и поновљивог извора.

Савет: Усвојите принцип „златног извора“: имајте једну исправну верзију сваке конфигурације (као Гит спремиште). Редовно упоређујте стварну ситуацију на серверима са овим златним ресурсом; Ако постоји разлика, или поправите одступање или ажурирајте извор. АИ убрзава ово поређење.

Корак по корак: безбедна промена конфигурације

  1. Направите резервну копију тренутног стања. Направите копију конфигурације пре него што је промените. Ово је једина гаранција повратка.
  2. Нацртајте промену помоћу АИ. Објасните намеру, као што је „укључите гзип компресију у нгинк-у за ове типове“; Нека АИ произведе релевантни блок. Наведите за коју верзију је то, јер се синтакса разликује у зависности од верзије.
  3. Провери синтаксу. Већина услуга има команду за верификацију (нгинк -т, апацхецтл цонфигтест, ссхд -т). Питајте АИ о овој команди и обавезно је покрените. Неважећа конфигурација неће покренути услугу.
  4. Провери значење. Синтакса може бити важећа, али може учинити погрешну ствар. Питајте АИ „шта тачно овај блок ради, какав утицај на безбедност или перформансе има?“
  5. Пробајте у тестном окружењу. Прво примените промену у постављању и поново учитајте услугу, посматрајте понашање.
  6. Наносите постепено и пратите. Немојте одједном ићи у производњу, већ је прво имплементирајте на сервер (канаринац), надгледајте, па објавите. Ако дође до проблема, вратите из резервне копије.

Шаблони и поверљиви подаци

Конфигурације често садрже вредности које се разликују у зависности од окружења: адресу базе података, лозинку, порт. Уместо да ове вредности пишете као константе у телу конфигурације, користите шаблоне и променљиве: тело остаје исто, вредности долазе споља у зависности од окружења. Дакле, исти шаблон ради у тесту и производњи, једина разлика су варијабле. Критична тачка: лозинке и кључеви не би требало да буду експлицитно уписани у конфигурациони фајл. Преузмите их од тајног менаџера или променљиве окружења. Када тражите од АИ шаблон, упутите га да „извуче тајне у променљиву, никада не пише експлицитне лозинке у телу“.

три мини кофера

Случај 1 — Поређење затечено. Један од осам веб сервера је био повремено спор. Инжењер је дао маскиране конфигурације осам сервера АИ-у и навео је разлике. АИ је означио једно ограничење скупа веза на проблематичном серверу као половину осталих - недокументована ручна промена направљена пре месеци. Дрифт је био невидљив; поређење је открило за 5 минута.

Случај 2 — Команда за верификацију спречила је пад. Администратор је додавао нову поставку учвршћивања на ССХ сервер. АИ је вратио блок који је изгледао разумно. Инжењер је покренуо ссхд -т верификацију пре примене; Испоставило се да је директива другачије написана у тој верзији ССХ. Ако је промена била активна и услуга је поново покренута, сав даљински приступ би могао бити прекинут. Команда за верификацију спречила је застој.

Случај 3 — Шаблон је престао да цури. Тим је ручно копирао конфигурацију базе података у свако окружење и писао лозинку отворену у датотеци. Копија је случајно завршила у заједничком спремишту. Уз помоћ вештачке интелигенције, тим је променио конфигурацију у шаблон: лозинка је сада дошла из променљиве окружења, са само ${ДБ_ПАССВОРД} у телу. Следећи ризик од цурења био је безопасан јер у трупу није било тајне.

Четири шаблона за копирање

1) Генерисање блока конфигурације:

Ваша улога: виши систем инжењер. Генеришите конфигурациони блок за [услуга + верзија, нпр.нгинк 1.24]. Сврха: [сврха].Конвенције: користите синтаксу прилагођену верзији; Никада не пишите тајне у тело, оно иде у променљиву; Објасните сваку директиву кратким коментаром. Затим ми дајте команду за верификацију коју треба да покренем пре него што применим ову промену.

2) Поређење две конфигурације (дрифт):

Испод је маскирана конфигурација два сервера у истој улози (А и Б). Наведите све значајне разлике међу њима у облику табеле; Напишите могући утицај на понашање за сваку разлику. Означите које разлике носе ризике. Немојте додавати коментаре, само покажите стварне разлике. А: [...] Б: [...]

3) Опис конфигурације и ревизија ризика:

Опишите следећи блок конфигурације ред по ред: шта свака директива ради, како се разликује од подразумеване, какав утицај на безбедност или перформансе има? Такође означите подешавања која могу бити ризична или опасна. Блок: [конфигурација]

4) Конверзија у шаблон:

Претворите следећу конфигурацију фиксне вредности у шаблон: издвојите вредности које се разликују у зависности од окружења (адреса, порт, лозинка) у променљиве, потпуно уклоните тајне из тела и наведите одакле ће доћи (променљива окружења/менаџер тајни). Не остављајте отворене лозинке у телу. Конфигурација: [цонфиг]

Слаби промпт / Јаки промпт

Слабо обавештење:

поправи моју нгинк конфигурацију. [налепи конфигурацију]

„Поправка“ је нејасна, нема верзије, нема сврхе и нема маске за конфигурацију. АИ неће знати шта да поправи, а може чак и да поквари радну поставку.

Снажан упит:

Ваша улога: виши систем инжењер. Користим нгинк 1.24. У маскираној конфигурацији испод, желим да отворим кеш претраживача за статичке датотеке на 7 дана, али без разбијања постојећих безбедносних заглавља. Дајте ми: (1) линије за додавање/промену, (2) шта свака линија ради, (3) команду за верификацију коју треба покренути пре примене, (4) резервни корак ако дође до проблема. Конфигурација: [маскиран]

Приступ

Ризик заношења

повратак

тајно обезбеђење

Ручно мењајте сервер по сервер

веома високо

неизвесно

Слаба, очигледна лозинка

Извор злата + шаблон + променљива

ниско

Историја верзија

Јака, тајна је откривена

Апликација без верификације

Услуга се може срушити

Резервна копија + верификација + канаринац

Гаранција

Уобичајене грешке

  • Прескакање команде за верификацију. Неважећа конфигурација је примењена без покретања нгинк -т, ссхд -т неће покренути услугу.
  • Промена без резервне копије. Једина гаранција повратка је копија пре модификације; Без тога, свака промена је коцка.
  • Отворено исписивање тајни на телу. Када се конфигурација која садржи лозинке дели или процури, то је директно кршење.
  • Игноринг Дрифт. Недокументоване разлике између сервера производе подмукле кварове који продужавају дијагностику сатима.
  • Без навођења верзије. Синтакса конфигурације варира у зависности од верзије; Ако АИ не кажете верзију, може произвести неважеће блокове.
Опрез: Само зато што је конфигурација синтаксички важећа не значи да је исправна. нгинк -т може рећи „синтакса у реду“, али поставка примењује погрешно понашање без грешке. Након верификације синтаксе, обавезно проверите значење и понашање.

Укратко

Управљање конфигурацијом осигурава да су подешавања тачна, доследна и иста на свим серверима. Најподмуклији непријатељ је дрифт: недокументоване ручне промене раздвајају сервере. АИ је моћан партнер у генерисању, објашњавању и упоређивању конфигурација како би дрифт био видљив. Направите резервну копију пре промене, проверите синтаксу командом за верификацију, упитајте значење помоћу АИ, примените постепено у тест окружењу и са канаринцем. Уклоните тајне из тела и користите шаблоне и променљиве. Спречите дрифт на првом месту помоћу принципа златног извора.

Задатак апликације

Узмите конфигурациону датотеку два слична сервера из вашег окружења, маскирајте осетљиве области и нека АИ изврши анализу померања помоћу шаблона „Упоређивање две конфигурације“ изнад. Процените пронађене разлике у смислу ризика. Затим конвертујте једну од ових конфигурација у шаблон без тајне помоћу шаблона „Претвори у шаблон“ и планирајте где ћете добити променљиве. На крају, нацртајте малу промену помоћу шаблона „Генериши конфигурациони блок“ и забележите команду за верификацију. Сумирајте процес у 6 ставки.

контролна листа

  • [ ] Да ли сам направио резервну копију конфигурације пре промене?
  • [ ] Да ли сам навео верзију услуге АИ и тражио синтаксу која одговара верзији?
  • [ ] Да ли сам проверио синтаксу командом за верификацију (-т итд.)?
  • [ ] Чак и ако је синтакса валидна, да ли сам додатно потврдио значење и понашање?
  • [ ] Да ли сам извукао тајне из тела и користио променљиву/шаблон?
  • [ ] Да ли сам упоредио померање више сервера и ускладио га са извором злата?