Программирование для системных администраторов windows

Содержание
  1. Выбираем язык для системного администрирования
  2. PowerShell
  3. Python
  4. Visual Basic
  5. Языки веба
  6. PowerShell
  7. Python
  8. Visual Basic
  9. Языки веба
  10. Блог IT для Windows
  11. Языки программирования, необходимые для работы системного администратора
  12. Какой язык программирования выбрать сисадмину
  13. 51 задание для оттачивания навыков системного администрирования
  14. О сисадминах
  15. Специализации
  16. Начинаем
  17. Задание №1
  18. Задание №2
  19. Задание №3
  20. Задание №4
  21. Задание №5
  22. Задание №6
  23. Задание №7
  24. Задание №8
  25. Задание №9
  26. Задание №10
  27. Задание №11
  28. Задание №12
  29. Задание №13
  30. Задание №14
  31. Задание №15
  32. Задание №16
  33. Задание №17
  34. Задание №18
  35. Задание №19
  36. Задание №20
  37. Задание №21
  38. Задание №22
  39. Задание №23
  40. Задание №24
  41. Задание №25
  42. Задание №26
  43. Задание №27
  44. Задание №28
  45. Задание №29
  46. Задание №30
  47. Задание №31
  48. Задание №32
  49. Задание №33
  50. Задание №34
  51. Задание №35
  52. Задание №36
  53. Задание №37
  54. Задание №38
  55. Задание №39
  56. Задание №40
  57. Задание №41
  58. Задание №42
  59. Задание №43
  60. Задание №44
  61. Задание №45
  62. Задание №46
  63. Задание №47
  64. Задание №48
  65. Задание №49
  66. Задание №50
  67. Задание №51

Выбираем язык для системного администрирования

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

PowerShell

За последний месяц мы уже дважды рассмотрели, как скриптовые языки операционных систем могут стать добрым другом сисадминщика. PowerShell — продукт экосистемы Windows, он понятен, удобен и весьма функционален. Из минусов можно выделить сравнительно невысокое быстродействие, особенно по сравнению со следующим языком. Но так как Windows всё еще доминирующая ОС на стационарных компьютерах, то знание PowerShell — номер один в списке абстрактных must-have языков для системного администратора.

Линуксовый старший брат Powershell, обладающий куда большей производительностью и опытом, но чуть меньшим удобством, во всяком случае, для новичка. Потребуется тем, кто собирается идти работать в науку и в организации, которые умеют считать деньги. Собственно туда, где линуксовые системы всегд были в почёте.

Python

С Python вы можете делать что угодно, а уж помощь в системном деле — одна из основных зон ответственности. При использовании нужных модулей вы без труда обойдете ограничения скриптовых языков, не затратив на это много времени и усилий. Python вообще может стать вашим основным кроссплатформенным инструментом, ведь он будет удобен и для текущих задач, и для вашего карьерного роста. Ведь за вас удобный и относительно простой язык, мощная экосистема и новые интересные творческие задачи. Начать изучение можно с бесплатного интенсива «Основы языка Python».

Perl — язык, разработанный специально для тесного взаимодействия с текстом, впитавший всё лучшее от Unix Shell, Awk и С. Это означает, что по определению он превосходит в своих возможностях и удобстве скриптовые языки, а функциональный перечень необычайно широк. При всём этом стоит сделать одну небольшую оговорку: большинство административных решений на Perl, описанных в соответствующей литературе, сегодня с куда большей эффективностью реализуется на других языках, в том числе Python или Ruby. Поэтому хоть Perl формально и популярен, но уже понемногу уходит в прошлое.

Трудно представить ситуацию, в которой системному администратору бы не потребовалось использовать базы данных. Это и управление сервером, и администрирование учётных записей, и формирование отчётов. А если так, то без знания SQL хотя бы на уровне запросов и элементарной работы с данными не обойтись.

Visual Basic

Несмотря на достаточно спорное наследие, VB сегодня является прекрасным инструментом в среде Windows. В частности, упрощённая реализация VBA позволит вам писать полезные скрипты для MS Office, AutoCAD, SolidWorks, а также компонентов ActiveX.

Языки веба

Вообще в IT трудно представить какую-то область, где бы знание HTML, CSS и JavaScript вам не пригодилось. В качестве вариантов интереса для системщиков — сетевые экраны, системы регистрации и учёта пользователей, управление сетями предприятия и многое другое.

В новой серии выбора языков для различных IT-специальностей мы поговорим об обязанностях системного администратора. С одной стороны, это может быть достаточно неприхотливая работа, где от вас потребуются лишь базовые знания компьютерной грамотности: установка необходимого ПО, контроль за выполнением чужих рабочих обязанностей, организация нормальной работы небольшого числа офисных сотрудников. Но это не то, что представляет для нас существенный интерес.

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

PowerShell

За последний месяц мы уже дважды рассмотрели, как скриптовые языки операционных систем могут стать добрым другом сисадминщика. PowerShell — продукт экосистемы Windows, он понятен, удобен и весьма функционален. Из минусов можно выделить сравнительно невысокое быстродействие, особенно по сравнению со следующим языком. Но так как Windows всё еще доминирующая ОС на стационарных компьютерах, то знание PowerShell — номер один в списке абстрактных must-have языков для системного администратора.

Линуксовый старший брат Powershell, обладающий куда большей производительностью и опытом, но чуть меньшим удобством, во всяком случае, для новичка. Потребуется тем, кто собирается идти работать в науку и в организации, которые умеют считать деньги. Собственно туда, где линуксовые системы всегд были в почёте.

Python

С Python вы можете делать что угодно, а уж помощь в системном деле — одна из основных зон ответственности. При использовании нужных модулей вы без труда обойдете ограничения скриптовых языков, не затратив на это много времени и усилий. Python вообще может стать вашим основным кроссплатформенным инструментом, ведь он будет удобен и для текущих задач, и для вашего карьерного роста. Ведь за вас удобный и относительно простой язык, мощная экосистема и новые интересные творческие задачи. Начать изучение можно с бесплатного интенсива «Основы языка Python».

Perl — язык, разработанный специально для тесного взаимодействия с текстом, впитавший всё лучшее от Unix Shell, Awk и С. Это означает, что по определению он превосходит в своих возможностях и удобстве скриптовые языки, а функциональный перечень необычайно широк. При всём этом стоит сделать одну небольшую оговорку: большинство административных решений на Perl, описанных в соответствующей литературе, сегодня с куда большей эффективностью реализуется на других языках, в том числе Python или Ruby. Поэтому хоть Perl формально и популярен, но уже понемногу уходит в прошлое.

Трудно представить ситуацию, в которой системному администратору бы не потребовалось использовать базы данных. Это и управление сервером, и администрирование учётных записей, и формирование отчётов. А если так, то без знания SQL хотя бы на уровне запросов и элементарной работы с данными не обойтись.

Читайте также:  Windows installation failed asms

Visual Basic

Несмотря на достаточно спорное наследие, VB сегодня является прекрасным инструментом в среде Windows. В частности, упрощённая реализация VBA позволит вам писать полезные скрипты для MS Office, AutoCAD, SolidWorks, а также компонентов ActiveX.

Языки веба

Вообще в IT трудно представить какую-то область, где бы знание HTML, CSS и JavaScript вам не пригодилось. В качестве вариантов интереса для системщиков — сетевые экраны, системы регистрации и учёта пользователей, управление сетями предприятия и многое другое.

Блог IT для Windows

Все про Windows, программное обеспечение, информационную безопасность, программирование

Языки программирования, необходимые для работы системного администратора

В данной статье мы попробуем рассмотреть, какие языки программирования необходимо знать системному администратору. В качестве примера, возьмем системного администратора медицинского учреждения (больницы).

Во многих должностных инструкциях для системных администраторов, написано, что системный администратор должен знать языки программирования высокого уровня, иногда указываются «нормализированные» языки программирования, а иногда указываются и сами языки, например С++, Java, Perl и даже Assembler.

Assembler — язык программирования низкого уровня, приближенный к машинному и именно он отражает архитектуру ЭВМ. Он довольно сложен в изучении, но освоив его, можно запросто разобраться в работе микропроцессора, регистров и прочего оборудования. Знать этот язык программирования вовсе не обязательно, ну если только для саморазвития.

С++, С#, Delphi, Java и т.п. Программы на данных языках пишут программисты, а никак не сисадмины. Но можно и сисадмину написать программу например, для учета ПК, но это, по собственной инициативе сисадмина.

PHP, JS и т.п. В каждой организации есть свой сайт, в большинстве случаев сайты, либо заказываются и далее наполняются, либо всё это возлагается на сисадмина (в нашем примере больница). Сисадмин написал сайт, наполнил его, а потом уволился.

Пришел другой сисадмин, ему сказали вот готовый сайт, надо там поменять то-то. Если сайт был написан с нуля, то придется изучать HTML, CSS, JS, PHP. Если сайт создан на основе движка, например uCoz, Joomla и т.п., то потребуются знания только HTML, CSS, JS.

SQL — язык запросов, для работы с базой данных. В данное время базы данных работают, как в Web-приложениях, так и в различных программах, например написанных на С++, Delphi или в Microsoft Access. Знать язык запросов SQL желательно, но не обязательно. Это работа программиста, а не сисадмина, но если в его должные обязанности входит работа с запросами, то знать данный язык необходимо.

Встроенный язык программирования 1С. Если в организации есть приходящий программист 1С, то сисадмину знать данный язык программирования не обязательно, в его обязанности входит предоставить доступ и разграничить права. Если приходящего программиста нет, то придется, либо самостоятельно изучать данный язык программирования, либо на курсах, за счет предприятия.

Microsoft Visual Basic — язык программирования, предназначенный для работы с офисными документами (а это макросы и т.д.). Если в организации нет программиста и пользователи, пользуются различными макросами, то в случае сбоя, разбираться придется сисадмину, поэтому знание данного языка программирования желательно.

В данной статье, мы рассмотрели самые известные языки программирования, но случаются случаи, когда в организации используется специализированное программное обеспечение, написанное на другом языке программирования. В данном случае следует учитывать язык программирования, наличие исходных кодов, что бывает очень редко, а если исходных кодов нет, то проблемы с программным обеспечением обычно решаются с программистами, написавшими эту программу и не бесплатно.

Какой язык программирования выбрать сисадмину

Какой язык программирования выбрать сисадмину.

Существует много языков программирования. Что нужно знать системному администратору. Бывает просто базовые знания: установить всякие программы, контролировать чужие обязанности, организация работы в небольшом офисе. Программирование облегчает задачи в крупных компаниях, когда невозможно чисто физически контролировать каждый компьютер по отдельности.

PowerShell – данный продукт самой операционной системе Windows, очень удобный, понятный и функциональный. Минус данного продукта невысокое быстродействие. Знания PowerShell для управления OC на Windows будут очень кстати.

Bash — Данный продукт на Linux, обладает большой производительности, но для новичков не очень удобный. Знание пригодятся тем, кто будет работать в сфере науки и финансов. Как говорят: где есть Линукс там нужны и знания.

Python – данный продукт позволяет сделать все что угодно. Очень удобный и не сложный язык программирования, мощный инструмент для творческих задач. Вы можете использовать дополнительные модули и обходить разные ограничения, при этом не тратя много времени и сил.

Perl – данный продукт хоть и популярный, но в последние время уходит в прошлое, уступая другие языкам программирования Python или Ruby. Большинство административных решений можно прочитать в книгах.

SQL – данный продукт очень не заменим особенно системному администратору, который использует базы данных. Или управляет сервером, учетными записями и отчетами. Без знаний SQL, вы не сможете управлять работой с данными.

Visual Basic — данный продукт очень эффективный в операционной системе Windows. Помогает реализовать разные задачи благодаря скриптам для Microsoft Office, SolidWorks, AutoCAD и ActiveX.

Любая IT сфера, где нужны знания HTML и CSS, а также JavaScript. Особенно языки программирования в WEB-индустрии. Для сисадминов – это системы регистрации и контроль пользователей, управление сети в предприятии и многое другое.

51 задание для оттачивания навыков системного администрирования

Разбираемся с тем, как стать системным администратором, и выполняя реальные задачи, получаем основные знания для работы и развития.

Статья-туториал, к которой нужно отнестись с полной серьёзностью и не приступать к её прочтению, пока вы не поймёте, стоит ли становиться системным администратором и сможете ли вы.

О сисадминах

Как правило, системный администратор отвечает за технические вещи в организациях. Например, системные администраторы отвечают за то, что интернет-соединение в офисе работает, и что почтовый сервер в порядке, контролирует работу сетей, постоянно поддерживая их аппаратное и программное обеспечение, устанавливая обновления и многое другое, всё зависит от специализации.

Специализации

1. Универсальный сисадмин

Такой человек занимается операционными системами (Linux, Windows Server, Sun Solaris, BSD и др.) и их службами.

2. Сисадмин с узкой специализацией

Сюда можно отнести и тех кто работает с базами данных, кластерами, сетями, и тех, кто работает с чем-то другим. Главное отличие от других сисадминов — работа над конкретными узкопрофильными задачами. Этим обычно занимаются бывшие универсалы, которые выросли и хотят заниматься чем-то конкретным. Кстати, зачастую, зарплаты выше, но могут возникнуть сложности, если у вас совсем уж узкая специализация.

3. Build/Release инженер/Configuration manager

Читайте также:  Как открыть календарь windows

Некогда сисадмины, которые перешли к работе с IDE и серверами. В их обязанности входит статический анализ, модульное тестирование, компиляция, тестирование, работа с репозиториями, настройка сервера. Это самые узкопрофильные специалисты, которые стоят много денег и всегда пользуются спросом.

В статье рассмотрена именно первая специализация, как первоначальная ступень начинающего сисадмина. Как известно, большинство важных компаний работают с системами Linux. На это есть свои причины, связанные ограничениями в скорости, нагрузке, прозрачности. Так что, всё, что написано ниже, про Linux.

Всего существует три вида Linux: Debian, RHEL, Slackware. Всё остальное произошло от них же. Есть мнение, что лучше всего начинать с Debian, мы так и сделаем. Ещё один важный момент: можете закрыть эту статью, пока не дотянете английский до минимального уровня, просто потому что вы будете никому не нужны.

Далее, в процессе чтения этой статьи вы будете получать задания, которые нужно последовательно выполнять. Ну и таким образом знакомиться с тем, как и что работает.

Начинаем

Оговорка: не пытайтесь нигде поставить русский, потом могут быть проблемы.

Задание №1

  • Скачиваем или покупаем программу VMware Workstation
  • Устанавливаем на Windows
  • Пока идёт процесс, знакомимся с тем, что такое виртуальная и хост-машина

Задание №2

  • Скачиваем дистрибутив Windows
  • Создаём гостевую машину
  • Запускаем виртуальную машину
  • Устанавливаем на неё Windows

Задание №3

  • Выключаем виртуальную машину
  • Экспортируем её в .OVA образ
  • На его основе создаём ещё одну виртуальную машину
  • Запускаем обе

Задание №4

  • Пингуем адрес 127.0.0.1
  • Запускаем на двух виртуальных и хост-машине cmd
  • Узнаём их адреса
  • Настраиваем сетевые интерфейсы виртуальных машин и конфигуратора сетей VMware, чтобы хост-машина могла пинговать виртуальные машины, а каждая из них могла пинговать другую
  • Проверяем, что всё работает

Задание №5

  • Загружаем Debian
  • Устанавливаем её на первой виртуальной машине
  • На этапе разметки диска делаем автоматическую
  • На этапе выбора сервисов выбираем только базовые утилиты и SSH-сервера, когда спросит, устанавливаем загрузчик Grub

Задание №6

  • Когда появится чёрный экран, набираем логин root и пароль, указанный при установке (мы не увидим, как набираем символы)
  • Переходим в директорию /var
  • С помощью команды узнаём, в какой директории находимся
  • Читаем мануал по команде ls (только основное положение и про флаги -l, -t, -r, -A)
  • Отображаем список директорий и файлов
  • Переходим в директорию /var/log (без упоминания “var” в команде
  • Переходим в директорию /var (снова без упоминания “var”)
  • Создаём директорию /tmp/lesson/
  • Переходим туда, задав абсолютный путь
  • Создаём здесь файл с названием hello.txt и ставим права на файл “0777”
  • Пингуем внешний адрес 8.8.8.8

Если последнее действие не получается, значит где-то накосячили, ищем ошибку сами или гуглим.

Задание №7

  • Загружаем, устанавливаем и запускаем программу Putty
  • Смотрим адрес виртуальной машины
  • В программе подключаемся по SSH на нужный IP и далее работаем с системой только через SSH

Задание №8

  • Отображаем содержимое /etc/apt/sources.list, используя команду cat
  • С её же помощью и символа “>” записываем в файл следующие данные:

## Debian Jessie base:
deb http://ftp.debian.org/debian/ jessie main contrib non-free
#deb-src http://ftp.debian.org/debian/ jessie main contrib non-free

## Debian Jessie security updates:
deb http://security.debian.org/ jessie/updates main contrib non-free
#deb-src http://security.debian.org/ jessie/updates main contrib non-free

# Debian Jessie updates:
deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free
#deb-src http://ftp.debian.org/debian/ jessie-updates main contrib non-free

  • Обновляем кэш менеджера пакетов apt-get
  • С помощью этой команды устанавливаем пакет vim

Задание №9

  • Читаем про vi или vim
  • Открываем на редактирование /tmp/lesson/hello.txt с помощью vi
  • Печатаем любой текст на 40-50 строк (нужно, чтобы в каждой строке были буквы “abc” в такой же последовательности)
  • Сохраняем и выходим
  • Отображаем содержимое с помощью cat, затем less
  • Отображаем только последние 10 строк, затем первые 7 строк
  • Считаем количество строк в файле

Задание №10

  • Узнаём, что такое конвейер и “pipe”
  • Отображаем содержимое /tmp/lesson/hello.txt и перенаправляем результат по конвейеру в подсчёт строк
  • Отображаем содержимое /tmp/lesson/hello.txt и перенаправляем результат по конвейеру в grep
  • Отправляем дальше по конвейеру в подсчёт строк
  • Отображаем содержимое /tmp/lesson/hello.txt и вывод перенаправляем в grep

Задание №11

  • Читаем мануал по shutdown
  • С её помощью выключаем виртуальную машину

Задание №12

  • Склонируем диск первой виртуальной машины на вторую
  • Запускаем вторую
  • Входим с логином root
  • Меняем название, чтобы знать, что это вторая виртуальная машина
  • С помощью shutdown перезагружаем сервер

Задание №13

  • Запускаем первый сервер (второй уже запущен, должно быть)
  • Смотрим через консоль IP (должны отличаться)
  • Читаем про IPv4 и маску подсети
  • Знакомимся с DHCP
  • Вписываем IP в конфигурационный файл сети на обеих виртуальных машинах (IP+маска+шлюз)
  • Перезагружаем обе машины
  • Проверяем, что с хост-машины пингуются виртуальные
  • Сохраняем настройки сессий в putty для обеих виртуальных машин
  • Выключаем вторую виртуальную машину (второй сервер)

Фух, теперь про повседневные задачи сисадмина.

Задание №14

  • Запускаем командную строку
  • Создаём переменную и присваиваем любое значение
  • Отображаем её
  • Проверяем, что переменная сохраняет своё значение после рестарта с помощью echo $a
  • Отображаем переменную $PATH
  • Разбираемся с тем как она работает
  • Делаем так, чтобы добавился ещё один путь — /tmp

Задание №15

  • Разбираемся с BASH и sha-bang
  • Пишем пустой скрипт с расширением .sh и запускаем его
  • Делаем так, чтобы скрипт можно было запускать без указания пути

Задание №16

  • Делаем так, чтобы скрипт инициализировал DATE и задавал значение времени, затем выводил на экран
  • Делаем так, чтобы вместо вывода на экран создавался файл в директории подобный /tmp/2017-08-17.txt
  • Делаем так, чтобы в файл записывалось время создания

Задание №17

  • Используя CRON заставляем скрипт исполняться ежеминутно
  • Через 10 минут проверяем, чтобы в директории было столько же файлов, сколько прошло минут
  • Обнаруживаем ошибку
  • Используя find делаем так, чтобы директория проверялась раз в 10 минут и удаляла файлы, созданные больше, чем 17 минут назад

Задание №18

  • Создаём пустой файл и вписываем что-нибудь
  • Копируем с сохранением всех прав в другой файл с любым названием и содержимым
  • Сравниваем контрольные суммы
  • Меняем содержимое любого из файлов и смотрим разницу в контрольных суммах

Задание №19

  • Создаём пользователя и задаём ему пароль
  • Разбираемся с /etc/passwd, /etc/shaddow, /etc/group
  • Делаем так, чтобы, если нет файла /tmp/passwd.backup, /etc/passwd копировался в /tmp/passwd.backup, а если /tmp/passwd.backup есть, то сравнивался с /etc/passwd
  • Если различаются, то пусть копируется, если нет, пусть завершает работу скрипта

Задание №20

  • Используя apt-get устанавливаем Apache2 на виртуальную машину
  • С браузера хост-машины по IP-адресу виртуальной машины видим приветствие
  • Меняем порт на :8080
  • Снова выполняем то, что делали два шага назад, но с указанием порта
  • Меняем порт обратно и проверяем как работает заглушка
  • В hosts хост-машины создаём три домена: a1.com, b2.com, c3.com и связываем с IP виртуальной машины с Apache
  • Для каждого домена проверяем всё ли правильно, с помощью ping
  • Заходим на все три домена, написав их вместо IP виртуальной машины
Читайте также:  Windows skachat tas ix

Задание №21

  • Создаём директории /var/www/a1.com, /var/www/b2.com, /var/www/c3.com
  • В каждой из них создаём пустой index.html
  • В каждом что-нибудь пишем
  • Делаем так, чтобы открывался личный сайт из директории, а не общая заглушка

Задание №22

  • Меняем index.html на index.php и добавляем следующую запись:
  • Видим ошибку
  • Через apt-get активируем mod_php
  • Создаём инструкцию для Apache, чтобы все php файлы обрабатывались этим модулем
  • Настраиваем такие же модули с инструкциями для Perl и Python
  • b2.com и c3.com переводим на index.pl и index.py
  • Создаём приветствия

Задание №23

  • Читаем про HTML Basic вот здесь
  • Про PHP Basic здесь

Задание №24

  • Устанавливаем mysql-server
  • С помощью mysql подключаемся через командную строку к серверу
  • Создаём базу данных mydatabase и пользователя myuser
  • Читаем раздел SQL Basic здесь
  • Устанавливаем Joomla на a1.com
  • WordPress на b2.com

Задание №25

  • Читаем про реверс-прокси
  • Устанавливаем Nginx
  • Делаем так, чтобы 8080 порт Apache получал запросы 80 порта Nginx
  • Проверяем a1.com, Nginx access.log должен пополняться при обращении к сайту
  • Делаем, чтобы Nginx всё, кроме jpg и png файлов передавал Apache

Задание №26

  • Включаем второй сервер
  • Собираем MySQL Cluster на двух серверах
  • Создаём базу данных с простыми таблицами, заполненными рандомными данными для тестирования
  • Вносим изменения на один из серверов и проверяем на другом
  • Выключаем второй сервер
  • Рушим файлы базы вручную (всё для проверки)
  • Делаем так, чтобы база восстановилась и появилась в кластере (думайте, как)

Задание №27

  • Выключаем оба сервера
  • Добавляем каждому серверу по одному диску на 700 Мб
  • Включаем обратно
  • С помощью fdisk проверяем, как обозначены диски
  • С помощью DRBD соединяем диски серверов, чтобы изменения отображались на обоих (оба должны быть смонтированы в /mnt/drbd-disk)

Задание №28

  • Выключаем первый сервер
  • Добавляем ещё диски по 200 Мб
  • Включаем сервер
  • С помощью fdisk отображаем структуру дисков, должно быть четыре диска, из которых два не размечены
  • С помощью mraid соединяем в RAID диски, с которыми не работали
  • Монтируем /dev/md0 в /mnt/raid-disk

Задание №29

  • Выключаем второй сервер
  • Добавляем диск на 2Гб
  • Включаем, настраиваем LVM и монтируем в /mnt/lvm-disk1
  • Уменьшаем размер диска LVM вдвое и создаём такой же
  • Монтируем в /mnt/lvm-disk1 и /mnt/lvm-disk2

Задание №30

  • Ликвидируем exim4-config (если был)
  • Ставим postfix
  • Настраиваем пересылку почты с сервера к себе в почтовый ящик с помощью swaks

Задание №31

  • Настраиваем на первом сервере в Nagios мониторинг обоих серверов
  • Подключаем уведомления на свою почту (на всякий случай)
  • Имитируем поломку MySQL и ждём сообщения о неисправности на почту

Задание №32

  • На втором сервере поднимаем SVN-репозиторий scripts
  • Делаем его доступным на любом сервере через svnserve
  • На первом сервере склонируем в директорию /opt/scripts/
  • На хост-машине в D:\scripts

Задание №33

Так, сейчас работаем только в vi.

  • На первом сервере пишем скрипт /opt/scripts/backup.sh, чтобы он: на наших сайтах запаковывал директории с файлами в tar и сжимал в gz, снимал MySQL-дамп базы сайта в формате .sql, складывал всё это в /var/backups/www/имя_сайта, проверял содержимое файлов и так со всеми, а в конце, нужно, чтобы он отправлял на почту отчёт
  • Фиксируем скрипт в репозитории

Задание №34

  • Обновляем SVN-репозиторий
  • Копируем файл из репозитория второго сервера в D:\scripts
  • Устанавливаем вот это
  • Через GVim добавляем рандомную строку
  • Коммитим скрипт в репозиторий
  • В /opt/scripts обновляемся
  • Хотим увидеть изменения в скрипте

Задание №35

  • Переписываем бэкап скрипт так, чтобы не нужно было перечислять существующие сайты, он должен обнаруживать их в конфигурации Apache
  • Коммитим
  • Переписываем бэкап скрипт так, чтобы все сообщения он писал и в консоль, и в syslog
  • Коммитим
  • Вносим синтаксическую ошибку в скрипт
  • Коммитим с ошибкой
  • Откатываем до последней рабочей версии

Задание №36

  • Переписываем бэкапный скрипт так, чтобы, он определял CMS сайта и собирал данные доступа к базе
  • Коммитим

Задание №37

  • Настраиваем rsyslog первого сервера, чтобы логи бэкапного скрипта писались в ar/log/backup.log
  • Настраиваем сбор логов на первом сервере
  • Активируем LogAnalyzer здесь же

Задание №38

  • Переписываем бэкап скрипт так, чтобы по завершению запускалась синхронизация директорий /var/backups/www между серверами
  • Коммитим
  • Повторяем, используя lftp mirror

Задание №39

Задание №40

  • Активируем puppet на втором сервере
  • Отдаём ему под управление /etc/passwd

Задание №41

  • Читаем про init
  • Загружаемся в разные init-уровни
  • Перезагружаем сервер с помощью init
  • Выключаем сервер с помощью init
  • Включаем обратно

Задание №42

  • Пробуем восстановить пароль от root, загрузив ядро с параметром init=/bin/bash

Задание №43

  • Читаем про различие аутентификации и авторизации
  • Разбираемся с PAM здесь и здесь
  • Разбираемся, зачем нужен файл /etc/nsswitch.conf
  • Делаем авторизацию SSH в MySQL (files оставляем про запас)

Задание №44

  • На bash пишем скрипт в /opt/scrpts/my_daemon.sh, чтобы он: отцеплялся от STDIN,STDOUT,STDERR, менял рабочую директорию на /, закрывал все дескрипторы, выводил количество минут до перезагрузки

Задание №45

  • Создаём init-скрипт в /etc/init.d/my_daemon с LSB-тэгами
  • Пробуем запустить и остановить скрипт /opt/scrpts/my_daemon.sh используя init-скрипт /etc/init.d/my_daemon
  • Запускаем, останавливаем и смотрим статус скрипта, используя service
  • Ставим daemon на автозагрузку

Задание №46

  • Меняем скрипт с SysVinit на systemd
  • Запускаем, останавливаем и смотрим статус скрипта, используя systemctl

Задание №47

  • Проходим онлайн-курсы по сетям
  • Знакомимся с OSI, TCP/IP, NAT и прочими штуками по теме

Задание №48

  • Ставим на обычный ПК Cygwin (выбираем python, vim, git, openssh и все паке, которыми пользовались на Linux)
  • Добавляем путь к бинарным файлам Cygwin в %PATH%
  • Запускаем cmd, пробуем работать в нём на Windows
  • Ставим что-нибудь более удобное

Задание №49

  • Удаляем все виртуальные машины
  • Удаляем на Windows VMware-продукты
  • Ставим VirtualBox , Vagrant
  • Создаём директорию C:\VM\server1 и переходим к ней
  • Инициализируем Debian с помощью Vagrant, запускаем его
  • Открываем VirtualBox и проверяем, что создалась новая виртуальная машина
  • Останавливаем и удаляем виртуальную машину
  • Регулируем имя, 3 CPU, RAM 1Gb, проброс порта 22
  • Запускаем её и подсоединяемся по SSH через putty

Задание №50

  • На Cygwin ставим Ansible
  • Включаем Vagrantfile в самом конце провиженинг Ansible
  • Дополняем Ansible: apt-get: git, curl, pyenv, python3.6 при помощи pyenv, делаем python3.6 дефолтным глобально
  • Устанавливаем Logbook, paramiko, lxml
  • Создаём с нуля виртуальную машину

Задание №51

Так, теперь переходим к очень важному моменту. Всегда очень круто, когда сисадмин дружит с Python. Так что если ещё не начали изучать, приступайте.

Оцените статью