единици
1. Въведение в изкуствения интелект в управлението на системи и мрежи: Роли, граници, удостоверяване и пълномощия 2. Скриптове за автоматизация: Безопасно генериране на Bash, PowerShell и Python 3. Анализ на регистрационния файл и анализ на първопричината: Намиране на сигнала в шума 4. Мониторинг на капацитета и производителността: Разчитане на показатели и планиране за бъдещето 5. Управление на конфигурацията: Генериране на конфигурация, валидиране и улавяне на отклонение 6. Управление на инфраструктурата като код (IaC): Terraform, Ansible и Plan Control 7. Управление на документация и информация: Runbook, Post mortem и корпоративна памет 8. Прогнозна поддръжка: Виждане на повреди, преди да се случат 9. Управление на промените: Оценка на риска, връщане назад и прозорец за поддръжка 10. Сигурност и отбрана: Използване на изкуствен интелект за отбранителни цели и в рамките на правомощията 11. Интеграция от край до край: Управление на инцидент от началото до края
единица 2 / 11

Скриптове за автоматизация: Безопасно генериране на Bash, PowerShell и Python

Печалби:

  • Възможност за създаване на скриптове за автоматизация Bash, PowerShell и Python с ясни ограничения и парапети за сигурност с изкуствен интелект
  • Възможност за добавяне на принципи като идемпотентност, суха работа, обработка на грешки и връщане към всеки скрипт и прилагане на цикъла „генериране, втвърдяване, проверка“
  • Способността да се разбере, че изпълнението на произведения скрипт не означава, че е безопасно и да се придобие навикът да се поема отговорност чрез четене и тестване на разрушителни линии.

Скриптове за автоматизация: Безопасно генериране на Bash, PowerShell и Python с AI

Най-лошият враг на системния администратор е повтарящата се ръчна работа: свързване към всяка машина и почистване на регистрационните файлове, отваряне на един и същ потребител на двадесет сървъра, извършване на една и съща проверка на здравето всяка сутрин. Това повторение е отворено както за време, така и за човешка грешка. Скриптът за автоматизация е малка програма, която делегира тези итерации на компютъра - най-често написана на Bash (команден език на обвивката) в света на Linux, PowerShell (обвивката за автоматизация на Microsoft) в света на Windows и Python за работа, независима от платформата. AI е невероятно бърз в създаването, обяснението и подобряването на първата чернова на тези скриптове. Но скриптът не е текст, той е сила, работеща във вашата система; За разлика от формулата на Excel, ако е неправилна, тя изтрива файла, спира услугата и прекъсва достъпа. Ето защо обещанието на този модул е: AI пише скрипта, вие го четете, тествате го и го изпълнявате, като поемате отговорност.

В този модул ще научите как да създавате безопасни, четливи и възстановими скриптове с AI; Животоспасяващи принципи като идемпотентност (извършването на един и същ скрипт два пъти не причинява щети) и работа на сухо; и ще научите проверките, през които трябва да премине един скрипт, преди да бъде пуснат в производство.

Защо скриптирането с AI е толкова мощно?

Дори опитен администратор може да не знае наизуст точния синтаксис на Bash цикъл, параметрите на кратката команда (команда) на PowerShell или блока try/except на Python. AI незабавно запълва тази празнина: вие обяснявате намерението на обикновен турски и той създава работещ план. Освен това можете да дадете съществуващ скрипт на AI и да кажете „обяснете това“, „добавете обработка на грешки“, „направете го по-четлив“. Това съкращава кривата на учене и ускорява младите членове на екипа.

Но с властта идва и отговорността. През повечето време скрипт, генериран от AI, записва правилно „щастливия път“ (ако всичко е наред); но може да пропусне крайни случаи (липсващ файл, пълен диск, прекъсване на мрежата) или да направи опасни предположения. Така че помислете за генериране на скрипт с AI на три етапа: генериране, укрепване, проверка.

Стъпка по стъпка: сигурно генериране на скрипт

  1. Напишете ясно намерението и ограничението. Коя операционна система, коя версия на обвивката, кои файлови пътища, какви права? Като „Ubuntu 22.04, Bash 5, sudo не е root, изпълнява се само под /opt/app/logs“. Двусмисленото търсене поражда опасни предположения.
  2. Поискайте предпазни парапети. Изискване на скрипта да "спира при повреда" (set -euo pipefail в Bash), подкана за потвърждение на разрушителни операции, архивиране преди операция и режим на суха работа. Тези парапети улавят крайни състояния, които AI заобикаля.
  3. Напишете идемпотентен. Скриптът не трябва да причинява никакви грешки или щети, когато се стартира втори път. Установете логика на „пропуснете, ако потребителят вече съществува“, „създайте директорията, ако не съществува, не я докосвайте, ако съществува“. Това позволява на автоматизацията да работи безопасно отново и отново.
  4. Прочетете и разберете. Прочетете всеки произведен ред. Помолете AI ​​да маркира разрушителните команди (rm, Remove-Item, DROP) отделно.
  5. Тествайте със суха работа. Първо, стартирайте го в режим "кажи какво да правя", вместо в действителни операции. Ако резултатът е това, което очаквате, превключете на реален режим — и първо на тестовата машина.
  6. Подгответе завръщането си. Скриптът взема ли резервни копия? Знаете ли как да възстановите архива? Има ли регистриране, можете ли да видите какво прави по-късно?
Съвет: Нека всеки скрипт на деструктор включва променлива DRY_RUN=true и флаг --apply. Поведението по подразбиране е да напишете какво ще се случи, без да изтривате нищо; Нека действителното изтриване работи само ако --apply е дадено изрично. Този единствен навик предотвратява катастрофи в кариерата.

три мини калъфа

Случай 1 — Спасена идемпотентност 3 часа. Администратор написа скрипт, който инсталира същия агент за наблюдение на 25 сървъра. Първата версия не беше идемпотентна: тя развали конфигурацията при второто изпълнение, ако агентът вече беше инсталиран. Инженерът накара AI да добави логика „проверете дали е инсталиран, пропуснете го, ако е“. По време на следващия прозорец за поддръжка скриптът случайно се задейства два пъти, но не навреди. Идемпотентността направи възстановяването на 25 сървъра ненужно.

Случай 2 — Суха работа запази главна директория. Един екип получи Bash скрипт, който изчиства стари резервни копия. Ако променливата беше празна, пътят ставаше / вместо /backups/ — класическа опасност. Инженерът първо го пусна в режим DRY_RUN, замръзна, когато видя ред, подобен на rm -rf / в изхода, и добави проверка на променлива (: "${BACKUP_DIR:?не може да бъде празен}"). Сухата работа хвана грешка, която изтриваше целия диск, преди да влезе в производство.

Случай 3 — Управлението на грешките му попречи да се събуди една нощ. Скрипт на PowerShell архивираше регистрационни файлове, когато дискът беше пълен. Първата версия тихо би се провалила, ако мрежовият дял беше недостъпен и продължи да запълва диска. „Проверете успеха на всяка стъпка, ако е неуспешно, уведомете по имейл и спрете“ беше добавен към AI. След седмица постът беше прекъснат; Скриптът спря и предупреди, дискът не беше пълен, никой не се събуди в 3 сутринта.

Четири копируеми шаблона

1) Сигурно генериране на Bash скрипт:

Вашата роля: старши инженер по автоматизация на Linux. Напишете скрипт за Ubuntu 22.04 / Bash 5. Цел:[цел]. Правила:- Започнете с "set -euo pipefail".- Валидирайте необходимите променливи с ": ${VAR:?}".- Извършвайте разрушителни операции с DRY_RUN=true по подразбиране; Оставете истинското приложение да работи само с флага --apply. - Регистрирайте всяка стъпка в stdout, спирайте със смислено съобщение за грешка. - Направете го идемпотентен (така че да не причинява щети при второто изпълнение). След това: маркирайте потенциално разрушителните линии отделно и напишете 3 случая, които трябва да тествам преди производството.

2) Втвърдяване на съществуващия скрипт:

Направете следния скрипт готов за производство: (1) добавете обработка на грешки и регистриране, (2) направете го идемпотентен, (3) поставете деструктивни команди зад сухо изпълнение, (4) извлечете твърдо кодирани пътища и тайни към променливата. Опишете накратко всеки ред, който сте променили и защо. Скрипт: [скрипт]

3) Сигурна автоматизация на PowerShell:

Вашата роля: експерт по автоматизация на Windows. Напишете скрипт, съвместим с PowerShell 5.1. Цел: [цел]. Правила:- Започнете с "$ErrorActionPreference = 'Stop'".- Добавяне на -WhatIf поддръжка към кратки команди за деструктор (по подразбиране WhatIf).- Обвиване на всяко действие с try/catch, log error.- Твърдо кодиране на идентификационни данни; Използвайте параметър или защитен вход. Маркирайте разрушителни линии и напишете стъпки за отмяна.

4) Декодиране и проверка на израза Cron/schedule:

Обяснете следния израз cron на обикновен турски език и напишете следващите 3 изпълнения: [израз]Освен това, ако целта ми е "[цел]", правилен ли е този израз или има поправка, която предлагате? Обърнете внимание и на ефекта от времевия период.

Слаба подкана / Силна подкана

Слаба подкана:

Напишете ми скрипт, който почиства дневника.

Тази подкана е опасна: не е ясно коя операционна система, коя директория, коя възрастова граница, коя защитна парапета. AI може да достави еднолинейно, разрушително и непроверимо rm.

Мощна подкана:

Вашата роля: старши инженер по автоматизация на Linux. Напишете скрипт за почистване на регистрационни файлове за Ubuntu 22.04 / Bash. Изтрийте само .log файлове в /opt/app/logs, които са по-стари от 30 дни. Правила: set -euo pipefail; Проверка на променливите BACKUP_DIR и LOG_DIR (спиране, ако е празно); списък с лог файлове преди изтриване; Нека DRY_RUN=true е по подразбиране, действително изтриване само с --apply; Нека бъде идемпотентен. Маркирайте разрушителните линии и напишете 3 сценария, които трябва да тествам.

функция

Слаб/бърз скрипт

закален сценарий

Обработка на грешки

Не, тих провал

set -euo pipefail, опит/улов

разрушително действие

Работи директно

Суха работа + отворен флаг за проверка

Рестартирайте

може да причини вреда

Идемпотентен, безопасен

тайно управление

твърдо кодиран

Променлив/скрит вход

отмяна

Няма

Стъпка за архивиране + възстановяване

Често срещани грешки

  • Стартиране на деструктивен скрипт без суха работа. Ако не виждате скрипта, съдържащ rm, Remove-Item, DROP първо в сух режим, струва диск.
  • Пропуснете проверката на нулева променлива. Празна променлива на пътя прави / вместо /backups/; : Не забравяйте да потвърдите с "${VAR:?}".
  • Забравяне на идемпотентността. Скриптът се прекъсва, когато се стартира два пъти, което прави автоматизацията ненадеждна.
  • Тайните на твърдото кодиране. Писането на паролата и ключа в скрипта е изтичане на информация, когато споделяте този скрипт.
  • Тестване в производството. Правенето на първото изпълнение в продукцията означава репетиране на сцената; първо тествайте машината.
Внимание: Не приемайте скрипт, даден от AI само защото „работи, това означава, че е правилен“. Това, че работи, не означава, че не е разрушително. Скриптът може да се изпълнява по щастливия път и да изтрива данни в крайно състояние; Истинският тест са крайните случаи.

В обобщение

Скриптовете за автоматизация елиминират повторението и намаляват човешките грешки; AI е невероятно бърз в генерирането, обяснението и укрепването на тези скриптове. Но скриптът е работеща сила: ако е грешен, той изтрива, спира, прекъсва. Така че установете цикъла „произведи, втвърди, провери“. Включете обработка на грешки, идемпотентност, сухо изпълнение и резервен вариант във всеки разрушителен скрипт. Извлечете тайните на променливата, направете първото стартиране на тестовата машина. AI скрипт пише; Ваша работа е да го прочетете, да го тествате и да поемете отговорност за неговото изпълнение.

Задача за приложение

Изберете задача, която да повтаряте ръчно във вашата работа (напр. почистване на регистрационни файлове, потребителско отваряне, проверка на състоянието). Поискайте схема от AI с шаблона „Secure Bash script“ или „PowerShell secure automation“ по-горе. Прочетете генерирания скрипт ред по ред и маркирайте разрушителните редове. Пуснете го първо в режим на суха работа на тестова машина, сравнете резултата с вашите очаквания. След това дайте скрипта обратно на AI и го прецизирайте с шаблона „harden“ и отбележете 5-те разлики между двете версии.

контролен списък

  • [ ] Включил ли съм ограничения като операционна система, версия на обвивката, пътища и права в подканата?
  • [ ] Скриптът устойчив ли е на грешки с set -euo pipefail / $ErrorActionPreference='Stop'?
  • [ ] Разрушителните операции зад dry-run/-WhatIf ли са и изискват изричен флаг за проверка?
  • [ ] Скриптът идемпотентен ли е (безопасен при второ изпълнение)?
  • [ ] Извлякъл ли съм тайните за променлив/секретен вход, вместо да ги кодирам твърдо?
  • [ ] Направих ли първото стартиране на тестовата машина и подготвих ли план за връщане?