- 25 вопросов задаваемых на собеседовании системным администраторам Linux
- KAZARIN OnLine
- Blog about IT, Me, education, etc…
- Вопросы для собеседования Системного администратора или DevOps инженера Linux. Часть 2. Simple Linux Questions
- Простые вопросы / Simple Linux Questions
- 10 популярных вопросов и ответов на DevOps собеседовании
- В1. Что вы знаете о DevOps?
- В2. Почему известность специализации возросла за последние несколько лет?
- В3. Какие инструменты вы знаете? У вас есть опыт работы с любым из этих инструментов?
- В4. Что такое контроль версий и для чего он используется?
- В5. Есть ли разница между Agile и DevOps? Если да, пожалуйста, объясните.
- В6. Почему так важны процессы и инструменты управления конфигурацией (CM)?
- В7. Как Chef используется в качестве инструмента СМ?
- В8. Как бы вы объяснили концепцию «инфраструктура как код» (IaC)?
- В9. Какова роль AWS в DevOps?
- В10. Как реализована IaC с использованием AWS?
25 вопросов задаваемых на собеседовании системным администраторам Linux
Вопрос:2 Как узнать когда файловая система проверялась последний раз?
Вопрос:3 Как изменить срок действия пароля пользователя без изменения самого пароля?
Вопрос:4 Как заставить fsck проверить файловую систему ОС при следующей перезагрузке?
Вопрос:5 Каким инструментом анализируются дампы краха системы или файл vmcore в ОС CentOS 7 & RHEL 7?
Вопрос:6 Как установить все патчи за исключением патчей ядра в CentOS и RHEL?
Параметр ‘–exclude=kernel*’ команды yum позволяет установить все патчи кроме предназначенных для ядра. Например так:
# yum update –exclude=kernel*
Если добавить следующую строку в файл ‘/etc/yum.conf’ мы предотвратим любые обновления ядра навсегда:
exclude=kernel*
Вопрос:7 Как проверить, что вы работаете на физическом или виртуальном сервере?
Вопрос:8 Что такое automounter и для чего он служит?
Вопрос:9 Как принудить пользователя изменить пароль при регистрации?
Вопрос:10 Как узнать как завершилась последняя команда — успешно или нет?
Вопрос:11 Как узнать, установлен ли конкретный rpm-пакет?
]# rpm -q postfix –last
postfix-2.10.1-6.el7.x86_64 Saturday 27 February 2016 11:56:43 PM EST
[root@cloud
Для этих же целей мы можем воспользоваться командой yum:
[root@cloud
]# yum history package postfix
Вопрос:12 Как войти в режим одиночного пользователя (single user mode) в RHEL 7?
Вопрос:13 Какая команда позволяет изменить имя хоста навсегда в CentOS 7 & RHEL 7?
Команда ‘hostnamectl’ используется для задания или изменения имени хоста. Например, так:
# hostnamectl set-hostname «New_HostName»
Кроме hostnamectl могут быть использованы команда ‘nmtui’& ‘nmcli’, которые тоже могут изменять имя хоста в CentOS 7 и RHEL 7.
Вопрос:14 Как включить политики паролей (password policies) в Linux?
Вопрос:15 Как узнать, какие модуля ядра загружены в ОС Linux?
Вопрос:16 Какой командой можно проверить состояние ввода-вывода в Linux?
Вопрос:17 Каково назначение файлов ‘/etc/lvm/backup’ и ‘/etc/lvm/archive’?
Вопрос:18 Как просмотреть таблицу маршрутизации в Linux?
Вопрос:19 Что происходит на фоне когда вы заходите по ssh на сервер Linux?
/.ssh/known_hosts’ мы получим подсказку ssh.
Вопрос:20 Как изменить порт по-умолчанию для SSH на сервере Linux?
Вопрос:21 Как увидеть временные метки dmesg в RHEL7?
Вопрос:22 Как узнать модель физического сервера из командной строки?
С помощью команды dmidecode можно узнать производителя и модель физического сервера. Например:
# dmidecode -t system
…
Handle 0x0011, DMI type 1, 27 bytes
System Information
Manufacturer: HP
Product Name: ProLiant DL580 Gen8
Version: P79
Serial Number: CKX42926E0
UUID: 97387735-1541-238A-1B33-533850564430
Wake-up Type: Power Switch
SKU Number: 728551-B21
Family: ProLiant
…
Вопрос:23 Как узнать версию BIOS сервера из командной строки?
С помощью команды dmidecode можно получить версию bios:
# dmidecode -t bios
# dmidecode 2.12
SMBIOS 2.8 present.
Handle 0x0010, DMI type 0, 24 bytes
BIOS Information
Vendor: HP
Version: P79
Release Date: 04/01/2014
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 16384 kB
…
Вопрос:24 Как расширить существующую группу томов lvm?
Вопрос:25 Как посмотреть номер WWN на карте HBA на сервере Linux?
Существует как минимум, два способа с помощью которых можно узнать номер WWN для карты HBA.
Первый, с использованием команды systool. Например так:
# systool -c fc_host -v | grep «port_name»
Второй способ — просмотреть содержимое файла классов в файловой системе sys:
# cat /sys/class/fc_host/host*/port_name
0x7001639028cbeca0
0x7001639028cbefa2
0x7001639028cbf5d8
0x7001639028cbf6da
Источник
KAZARIN OnLine
Blog about IT, Me, education, etc…
Вопросы для собеседования Системного администратора или DevOps инженера Linux. Часть 2. Simple Linux Questions
Всем привет! в прошлой статье мы начали разбор статьи с GitHub — Linux System Administrator/DevOps Interview Questions.
Сегодня будет пачка вопрос из раздела «Простые» — экзамен на звание junior Linux administrator.
Простые вопросы / Simple Linux Questions
1. Какое имя и UID у администратора системы? (What is the name and the UID of the administrator user?)
В Linux системе, как в большинстве unix-like/base систем, администратором (а точнее суперпользователем, тк администратором может идейно выступать любой пользователь, сопровождающий систему и способный получить права суперпользователя) является пользователь с учетной записью root. Название является исторически сложившимся и в принципе может быть заменено на любое другой. Права суперпользователя зависят не от названия учетной записи, а от ее идентификатора — UID (User ID). Для суперпользователя uid=0 и именно это так отличает его учетную запись от всех прочих.
2. Как вывести список всех, даже скрытых файлов, находящихся в директории (How to list all files, including hidden ones, in a directory?)
За вывод содержимого текущего (если без аргументов, содержащих путь к какой-то определенной директории) отвечает команда ls — сокращение от слова list. Параметр -a (сокращение от all) позволяет посмотреть все файлы, даже скрытые ( их имя начинается с точки), а если комбинировать его с параметром -l (long) — то мы увидим подробную информацию. Есть еще одна команда — tree, которая не входит в стандартный комплект утилит, которая также может показывать содержимое каталогов ( однако в более удобном-наглядном древовидном представлении) и так же может показывать скрытые файлы, дополнительную информацию и тд.
3. Какая linux/unix команда позволяет удалить директорию и все ее содержимое? (What is the Unix/Linux command to remove a directory and its contents?)
Существует команда rmdir, созданная специально для удаления директорий, однако она не удалит их, если директории не пусты. Команда rm может помочь нам в этом — если применить флаг -r (recursive) она рекурсивно удаляет все содержимое каталога и потом его тоже. Флаг -f позволит сделать это игнорируя различные предупреждения, однако будьте осторожны с этой комбинацией rm -rf — так как она может запросто снести вам большую часть системы). В обычной ситуации я бы рекомендовал использовать комбинацию -ri — тогд на удаление каждого объекта будет задаваться вопрос- а точно ли вы этого хотите.
4. Какая команда покажет вам объем свободной или используемой памяти? Существует ли в linux свободная память? (Which command will show you free/used memory? Does free memory exist on Linux?)
Еще одна команда, входящая в стандартный набор утилит linux — free. Как раз для этого и предназначена. Ряд модификаторов типа -h, -m, -b меняет формат вывода (байты, мегабайты и тп). Команда выводит информацию как по оперативной памяти, так и по свопу (аналог “подкачки” в windows). Однако столбцов там больше чем 2 ( свободно/занято), а точнее их 6:
- total – общее количество установленной в системе памяти — ОЗУ и под своп;
- used – реально использующая в данный момент и зарезервированная системой память; Вычисляется как ( total – free – buffers – cache)
- free – свободная память (вообще никем не используется);
- shared – Shared memory или Разделяемая память, обычно используется tmpfs.
- buffers – буферы в памяти – страницы памяти, зарезервированные системой для выделения их процессам, когда они потребуют этого, также известна как heap-memory;
- cached – файлы, которые недавно были использованы системой/процессами и хранящиеся в памяти на случай если вскоре они снова потребуются.
- available — оценка того, сколько памяти может быть доступно для запуска новых приложений без свопинга. То есть это сколько памяти система также может освободить + использовать свободное пространство.
5. Как найти строку “my konfi is the best” рекурсивно в файлах каталога? (How to search for the string «my konfi is the best» in files of a directory recursively?)
Самым простым и известным способом поиска является использование утилиты grep, с ключами -r (рекурсивынй поиск) — то есть поиск по каталогам и подкаталогам и ключом -i (искать вне зависимости от регистра). Однако grep не является лучшим вариантом поиска, так как является утилитой общего назначения. Вторым вариантом является вызов связки find + grep — первой из них вы можете задать что искать надо только по файлам ( игнорируя каталоги, линки, сокеты и прочие объекты, в которых искомой строки быть точно не может) а так же указать по каким файлам искать (задать маску расширения например). Тем самым ускорив поиск. И наконец третий вариант — использовать специализированную утилиту ack или ack-grep (одно и то же — просто названия разные). Она создана для поиска среди файлов проекта с исходным кодом, поэтому понимает некоторые казалось бы очевидные вещи (не ищи среди резервных копий файлов, среди файлов метаданных git и тп), тем самым еще сильней ускоря поиск.
6. Как удаленно подключиться к серверу или что такое SSH? (How to connect to a remote server or what is SSH?)
Удаленно к серверу можно подключиться довольно большим числом способов, в зависимости от того, что есть под рукой ( то есть в зависимости от вашего окружения). Вот только некоторые из известных мне способов:
- IP-KVM —
- VNC via IPMI / iLo / iDRAC / etc…
- VNC
- VNC via Web
- Web интерфейс
- Telnet
- SSH
- RDP
Однако, в обычной ситуации когда речь заходит про удаленное подключение к Linux серверу, речь обычно идет про SSH (а если быть точнее — openssh), который де-факто является стандартом удаленного управления Linux серверами. SSH или secure socket shell — протокол, обеспечивающий защищенный при помощи криптографических средств способ подключения к удаленному командному интерпретатору. Защита представляет собой обеспечение безопасности в двух аспектах:
- Обеспечение конфиденциальности передаваемых данных — вводимых команд и получаемых ответов за счет шифрования всего трафика, передаваемого между клиентом и сервером.
- Защита от атак типа MiTM — за счет сохранения отпечатка ключа сервера на стороне клиента при первом подключении с последующей сверкой его при каждом следующем подключении
7. Как посмотреть все переменные окружения и как вы можете их использовать? (How to get all environment variables and how can you use them?)
Переменные окружения — сущность, существующая во всех unix подобных операционных системах (и отчасти в windows тоже) — это переменные, задаваемые для каждого отдельного сеанса пользователя (как интерактивный — вход в режиме графического интерфейса, запуск командного интерпретатора так и не интерактивный- запуск процесса от имени пользователя), и несущие ряд настроек- пути поиска бинарных файлов утилит, локаль и язык окружения, основной редактор и прочее.
Как посмотреть — используя например команды “printenv” или “env”. Задать — с помощью команды “export”. Использовать можно для изменения поведения системы и запускаемых приложений. Так же в некоторых ситуациях для конфигурации программ и сервисов. В моей практике была система, состоящая из нескольких сервисов, написанных на node.js. Так вот ее конфигурация задавалась через переменные окружения, а вместо конфигурационного файла использовался специальный bashrc профайл с значением переменных окружения для пользователя, из под которого запускался процесс.
8. Я получаю сообщение «command not found» когда я ввожу “ifconfig -a”, что я делаю не так? (I get «command not found» when I run ifconfig -a. What can be wrong?)
Мне известны две причина:
- Пакет, содержащий утилиту ifconfig не установлен (обычно она входит в пакет net-tools — установите его).
- Каталог “/sbin”, в котором содержится эта утилита, не добавлен в пути поиска вашей переменной окружения “$PATH” — в таком случае попробуйте ввести полный путь для этой утилиты “/sbin/ifconfig -a”. Такое например случается когда вы работаете не под учетной записью с правами суперпользователя.
9. Что происходит когда я ввожу “TAB-TAB”? (What happens if I type TAB-TAB?)
в зависимости от того где мы применяем эту комбинацию. В случае когда мы набираем команду в терминале, эта комбинация сработает как автодополнение — дописав команду за нас. В случае когда мы вводим аргументы команды — имя файла или путь, он так же будет дополнение. В обоих случаях это сработает в случае если существует однозначное соответствие.
10. Какая команда покажет доступное пространство в Unix/Linux системе? (What command will show the available disk space on the Unix/Linux system?)
df или disk free — команда, отображающее свободное место на той или иной файловой. У команды существуют различные модификаторы ее вывода- например отображение размера в человеко-читаемом формате (-h):
Источник
10 популярных вопросов и ответов на DevOps собеседовании
DevOps работает как мост между разработкой, тестированием и эксплуатацией в сфере IT, и чтобы стать таким специалистом, следует подготовиться к интервью.
А подготовиться стоит, ведь в стандартный перечень требований входит опыт системного администратора, разработчика и тестировщика. Командам с открытыми вакансиями нужен «швейцарский нож», поэтому и собеседование может носить специфический характер.
Но игра стоит свеч! Опрос, проведенный Indeed.com, показывает, что средняя годовая зарплата инженера DevOps в США составляет около $123 572.
Ну что, хотите стать сертифицированным практиком DevOps?
В1. Что вы знаете о DevOps?
A1. Ваш ответ должен быть простым и понятным. Объясните растущую популярность DevOps в сфере информационных технологий. Уточните, что такой подход направлен на объединение усилий различных специалистов и ускоренную реализацию программных продуктов, начиная этапом проектирования и заканчивая развертыванием.
В2. Почему известность специализации возросла за последние несколько лет?
A2. Обсудите текущий отраслевой сценарий. Начните с некоторых примеров того, как крупные игроки, такие как Netflix и Facebook, инвестируют в эту отрасль для автоматизации и ускорения развертывания ПО, чем успешно развивают свой бизнес. Используя Facebook в качестве примера, уточните, что сотни строк кода реализованы без ущерба для качества, стабильности и безопасности ресурса. Следующим вариантом использования должен быть Netflix. Эта развлекательная компания следует аналогичной практике с полностью автоматизированными процессами и системами.
Также упомяните пользовательскую базу обеих организаций: Facebook насчитывает 2 млрд. пользователей, в то время как Netflix предоставляет онлайн-контент более чем 100 млн. пользователей по всему миру. Лучшая иллюстрация того, как DevOps помогает организациям добиться несравнимо высоких показателей, сократив время между исправлениями ошибок, оптимизацией и непрерывной доставкой через автоматизацию. Добавьте в копилку плюсов и общее снижение затрат на рабочую силу.
В3. Какие инструменты вы знаете? У вас есть опыт работы с любым из этих инструментов?
A3. Инструментарий DevOps включает в себя:
Тщательно описывайте инструменты, которые знаете. Затрагивайте их функции и преимущества. Например, если у вас есть опыт работы с Git, вы должны сказать, что это система контроля версий (VCS), которая позволяет отслеживать изменения кода и при необходимости возвращаться к предыдущим этапам. Расскажите о том, что разработчики имеют доступ ко всей истории проекта, содержащейся в локальных хранилищах Git, которые также могут передаваться другим членам команды.
Теперь, когда вы упомянули VCS, будьте готовы к следующему очевидному вопросу.
В4. Что такое контроль версий и для чего он используется?
A4. Дайте определение контролю версий и расскажите о том, как подобные системы записывают изменения в один или несколько файлов, а после сохраняют их в централизованном хранилище. Инструменты VCS помогут заглянуть в предыдущие версии и выполнить следующие действия:
- Пройти изменения, сделанные в течение определенного времени, и проверить, что препятствует правильной работе программы.
- Вернуть проект на более раннюю стадию.
- Изучить проблемы или ошибки, которые произошли из-за определенного изменения.
Использование VCS делает работу с кодом более гибкой и менее затратной по времени, а все модификации могут быть объединены позже.
В5. Есть ли разница между Agile и DevOps? Если да, пожалуйста, объясните.
A5. Начните с описания общих черт. Затем перейдите к отличиям: Методика Agile предполагает создание и выпуск ПО, после чего разработчики за него формально не отвечают. С DevOps все обстоит иначе: эта методика направлена как раз на то, чтобы развернуть готовое ПО максимально надежным и безопасным способом.
В6. Почему так важны процессы и инструменты управления конфигурацией (CM)?
A6. Расскажите о нескольких версиях для каждого ПО на стадии разработки или тестируемого ПО. Перейдите к необходимости поддержки и хранения данных, отслеживания разработки и устранения неисправностей. Не забудьте указать ключевые инструменты CM, которые можно использовать для достижения этих целей. Расскажите о том, как Puppet, Ansible и Chef помогают автоматизировать развертывание и настройку программного обеспечения на нескольких серверах.
В7. Как Chef используется в качестве инструмента СМ?
A7. Chef считается одним из предпочтительных отраслевых инструментов Configuration Management. Например, Facebook перенесла инфраструктуру на платформу Chef. Объясните, как эта система управления конфигурациями, написанная на Ruby, поможет избежать задержек, автоматизируя процессы. Chef позволяет интегрироваться с облачными платформами, настраивать новые системы, а также предоставляет библиотеки, которые могут быть развернуты в рамках ПО.
В8. Как бы вы объяснили концепцию «инфраструктура как код» (IaC)?
A8. Опишите, как традиционный подход к управлению инфраструктурой «пасет задних», и почему ручные конфигурации, устаревшие инструменты и пользовательские сценарии становятся ненадежными. Далее подчеркните плюсы IaC и то, как изменения в IT-инфраструктуре могут реализовываться быстрее, безопаснее и проще с использованием IaC. Включите в ответ как можно больше преимуществ.
Это стандартный блок вопросов, а для AWS-сертифицированных инженеров предусмотрено еще несколько дополнительных.
В9. Какова роль AWS в DevOps?
A9. AWS – это платформа для облачных сервисов от Amazon. AWS предоставляет IT-компаниям разработку, поставку сложных продуктов и развертывание приложений в облаке. Некоторые из ключевых услуг включают Amazon CloudFront, Amazon SimpleDB, Amazon Elastic Computer Cloud и Amazon Relational Database Service. Обсудите различные облачные платформы.
В10. Как реализована IaC с использованием AWS?
A10. Подобно кодам, написанным для других сервисов, с помощью AWS IaC позволяет разработчикам писать, тестировать и поддерживать объекты инфраструктуры дескриптивным способом, используя такие форматы, как JSON или YAML. Это упрощает разработку и ускоряет развертывание изменений инфраструктуры.
Как инженер DevOps, вы должны знать процессы, инструменты, технологии, а также иметь целостное представление о продуктах, услугах и системах. Если ваши ответы по своей структуре соответствуют приведенным выше, эта должность с большой вероятностью станет вашей. Удачи!
Источник