DevOps | Вопросы собесов
Open in Telegram
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+2P7cpjeyfDVlZjcy Вакансии t.me/+i5KFWEWJ21hhYWEy
Show more5 498
Subscribers
-724 hours
-127 days
-1630 days
Posts Archive
🤔 По какой причине inode могут закончиться
Inodes заканчиваются, когда файловая система достигает максимального количества файлов, которые можно создать, даже если еще есть свободное место на диске. Это может произойти при наличии большого количества мелких файлов, которые занимают inodes, особенно в файловых системах с ограниченным количеством inodes. Когда inodes исчерпаны, создание новых файлов становится невозможным, несмотря на наличие доступного дискового пространства.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 На каких ключевых особенностях базируется докер?
🟠Контейнеризация:
Контейнеры Docker предоставляют легковесную и изолированную среду для выполнения приложений. Контейнеры включают все необходимые для работы приложения зависимости и библиотеки, обеспечивая портативность и консистентность между различными средами (разработка, тестирование, производство).
🟠Образы (Images):
Docker образы представляют собой неизменяемые шаблоны, содержащие все, что необходимо для запуска приложения: код, библиотеки, конфигурационные файлы, настройки среды и т.д. Образы можно легко версионировать, передавать и повторно использовать.
🟠Регистры (Registries):
Docker использует регистры для хранения и распространения образов. Docker Hub — это публичный регистр, предоставляемый Docker, но также можно создавать собственные приватные регистры. Это упрощает совместное использование и управление образами.
🟠Изоляция и безопасность:
Docker использует пространства имен (namespaces) и контрольные группы (cgroups) для изоляции процессов и управления ресурсами. Это обеспечивает контейнерам высокий уровень безопасности и предотвращает конфликт между приложениями, работающими в разных контейнерах.
🟠Легковесность и производительность:
В отличие от виртуальных машин, контейнеры не требуют отдельной операционной системы, что делает их намного более легковесными и быстрыми. Это позволяет запускать большее количество контейнеров на одном хосте с меньшими накладными расходами.
🟠Масштабируемость и оркестрация:
Docker предоставляет инструменты для управления контейнерами в масштабе, такие как Docker Swarm и интеграция с Kubernetes. Эти инструменты позволяют автоматизировать развертывание, управление, масштабирование и мониторинг контейнеров в распределенных системах.
🟠Управление жизненным циклом приложений:
Docker упрощает создание, тестирование и развертывание приложений через контейнеры. Это способствует интеграции и непрерывной доставке (CI/CD), так как контейнеры гарантируют, что приложение будет работать одинаково во всех средах.
🚩Создание образа и запуска контейнера
1⃣Dockerfile
# Используем базовый образ
FROM ubuntu:latest
# Устанавливаем необходимые пакеты
RUN apt-get update && apt-get install -y python3
# Копируем файлы приложения в контейнер
COPY . /app
# Устанавливаем рабочую директорию
WORKDIR /app
# Определяем команду для запуска приложения
CMD ["python3", "app.py"]
2⃣Сборка образа:
docker build -t my-python-app .
3⃣Запуск контейнера:
docker run -d --name python-app-container my-python-app
Ставь 👍 и забирай 📚 Базу знаний🤔 В чём разница между TCP и UDP
TCP — это протокол с установлением соединения, который гарантирует надежную доставку данных с подтверждением и контролем последовательности. UDP — это протокол без установления соединения, передающий данные быстрее, но без гарантии доставки и контроля порядка. TCP подходит для приложений, требующих надежности (например, HTTP), тогда как UDP используется для быстрой передачи данных, где небольшая потеря пакетов допустима (например, видео- и аудиопотоки).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔Что такое системные вызовы и системные сигналы?
🚩Системные вызовы
Это интерфейс между прикладными программами и ядром операционной системы. Они позволяют программам запрашивать услуги у операционной системы, такие как управление файлами, управление процессами, сетевое взаимодействие и управление памятью.
🚩Зачем нужны системные вызовы?
🟠Доступ к ресурсам
Программы могут получить доступ к аппаратным ресурсам, таким как диски, сеть, память и устройства ввода/вывода.
🟠Изоляция
Обеспечивают изоляцию между прикладными программами и аппаратными ресурсами, что повышает безопасность и стабильность системы.
🟠Управление процессами
Позволяют создавать, завершать и управлять процессами.
🚩Примеры системных вызовов
open - Открытие файла.
read - Чтение данных из файла или устройства.
write - Запись данных в файл или устройство.
fork - Создание нового процесса.
exec - Выполнение программы.
kill - Отправка сигнала процессу.
wait - Ожидание завершения дочернего процесса.
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main() {
int fd = open("example.txt", O_RDONLY);
if (fd == -1) {
perror("open");
return 1;
}
char buffer[100];
ssize_t bytesRead = read(fd, buffer, sizeof(buffer));
if (bytesRead == -1) {
perror("read");
return 1;
}
write(STDOUT_FILENO, buffer, bytesRead);
close(fd);
return 0;
}
🚩Системные сигналы
Это механизмы, используемые в Unix-подобных операционных системах для уведомления процессов о различных событиях. Сигналы могут быть отправлены процессом, ядром ОС или пользователем для уведомления о системных событиях или управления процессами.
🚩Зачем нужны системные сигналы?
🟠Уведомление о событиях
Уведомляют процессы о событиях, таких как завершение программы, ошибки, прерывания и другие.
🟠Управление процессами
Позволяют приостанавливать, возобновлять или завершать процессы.
🟠Обработка исключений
Предоставляют механизм для обработки исключительных ситуаций, таких как деление на ноль или доступ к недопустимым адресам памяти.
🚩Примеры системных сигналов
SIGINT (2) - Прерывание (обычно отправляется при нажатии Ctrl+C в терминале).
SIGTERM (15) - Завершение процесса.
SIGKILL (9) - Немедленное завершение процесса.
SIGSTOP (19)- Приостановка процесса.
SIGCONT (18) - Возобновление приостановленного процесса.
SIGSEGV (11) - Сегментационная ошибка (доступ к несуществующей памяти).
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
void handle_signal(int signal) {
if (signal == SIGINT) {
printf("Caught SIGINT, exiting...\n");
_exit(0);
}
}
int main() {
signal(SIGINT, handle_signal);
while (1) {
printf("Running...\n");
sleep(1);
}
return 0;
}
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое и нужен ли swap
Swap — это область диска, которую операционная система использует как виртуальную память, расширяя возможности оперативной памяти. Он помогает системе работать стабильно, когда физической памяти не хватает, перенося неактивные данные из RAM на диск. Swap полезен для поддержания работы системы под нагрузкой, но его чрезмерное использование может замедлить производительность из-за более медленного доступа к данным на диске.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Курс по frontend-разработке с junior до middle
Стань специалистом по frontend-разработке с помощью менторов. Оставь заявку!
Узнать больше
#реклама 16+
ykul.ru
О рекламодателе
🤔 Из чего состоит роль из каких папок из каких файлов?
Роль в Ansible состоит из набора папок и файлов, которые организуют задачи, переменные, файлы конфигурации, шаблоны и другие ресурсы, необходимые для выполнения конкретной роли.
🚩Описание каждой папки и файла
🟠defaults/main.yml
Содержит переменные по умолчанию для роли.
# roles/role_name/defaults/main.yml
some_default_variable: "default_value"
🟠files/
Содержит статические файлы, которые можно копировать на удаленные хосты. Пример: roles/role_name/files/myfile.conf
🟠handlers/main.yml
Содержит хендлеры, которые можно вызывать для выполнения действий, таких как перезапуск службы.
# roles/role_name/handlers/main.yml
- name: restart nginx
service:
name: nginx
state: restarted
🟠meta/main.yml
Содержит метаинформацию о роли, такую как зависимости от других ролей.
# roles/role_name/meta/main.yml
dependencies:
- role: another_role
🟠tasks/main.yml
Содержит основной список задач, которые выполняются при использовании роли.
# roles/role_name/tasks/main.yml
- name: Install nginx
apt:
name: nginx
state: present
🟠templates/
Содержит шаблоны Jinja2, которые могут быть использованы для создания конфигурационных файлов с динамическими значениями.
# roles/role_name/templates/nginx.conf.j2
server {
listen 80;
server_name {{ nginx_server_name }};
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
🟠tests/
Содержит файлы для тестирования роли.
# roles/role_name/tests/test.yml
- hosts: localhost
roles:
- role_name
🟠vars/main.yml
Содержит переменные с высоким приоритетом, используемые в роли.
# roles/role_name/vars/main.yml
some_variable: "value"
🟠README.md
Документация роли, содержащая информацию о том, как использовать роль, примеры и описание переменных.
🚩Пример структуры роли
defaults/main.yml
# roles/nginx/defaults/main.yml
nginx_port: 80
vars/main.yml
# roles/nginx/vars/main.yml
nginx_user: "www-data"
tasks/main.yml
# roles/nginx/tasks/main.yml
- name: Install Nginx
apt:
name: nginx
state: present
- name: Configure Nginx
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
- name: Start Nginx
service:
name: nginx
state: started
enabled: true
templates/nginx.conf.j2
# roles/nginx/templates/nginx.conf.j2
user {{ nginx_user }};
worker_processes auto;
events {
worker_connections 1024;
}
http {
server {
listen {{ nginx_port }};
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое ELK?
ELK — это стек программ, состоящий из Elasticsearch, Logstash и Kibana, предназначенный для сбора, хранения и визуализации логов. Elasticsearch хранит и индексирует данные, Logstash собирает и обрабатывает их, а Kibana позволяет визуализировать и анализировать. ELK часто используется для мониторинга и анализа больших объемов данных в реальном времени.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Получите грант на обучение в Центральном университете
Прояви себя, получи грант до 2,8 млн на обучение ИТ и бизнесу в вузе.
Для школьников 10-х и 11-х классов, СПО.
Подать заявку
#реклама
apply.centraluniversity.ru
О рекламодателе
🤔 Какая иерархия переменных в ролях?
🚩Иерархия переменных в ролях
🟠defaults/main.yml
Переменные с самым низким приоритетом. Используются для значений по умолчанию, которые могут быть переопределены.
🟠vars/main.yml
Переменные с более высоким приоритетом, чем
defaults. Используются для значений, которые не должны быть легко изменены пользователем.
🟠Переменные в задачах (tasks)
Переменные, заданные с помощью set_fact в задачах, имеют более высокий приоритет. Также переменные, определенные в локальном контексте задачи.
🚩Общая иерархия переменных
🟠Переменные из роли
defaults/main.yml в роли.
🟠Переменные плейбука
Переменные из vars плейбука.
🟠Переменные инвентаря
Переменные из статического или динамического инвентаря.
🟠Факты Ansible (gathered facts)
Динамически собранные данные о хостах.
🟠Переменные командной строки
Переменные, переданные через командную строку с помощью флага -e.
🚩Пример
defaults/main.yml
# roles/example/defaults/main.yml
example_variable: "default_value"
vars/main.yml
# roles/example/vars/main.yml
example_variable: "vars_value"
Переменная в плейбуке
# playbook.yml
- hosts: all
roles:
- role: example
example_variable: "playbook_value"
Переменная командной строки
ansible-playbook playbook.yml -e "example_variable=command_line_value"
🚩Приоритет переменных
1⃣defaults/main.yml задает example_variable как "default_value".
2⃣vars/main.yml переопределяет это значение на "vars_value".
3⃣Переменная, указанная в плейбуке, переопределяет это значение на "playbook_value".
4⃣Переменная командной строки, переданная при запуске плейбука, переопределяет все предыдущие значения на "command_line_value".
Ставь 👍 и забирай 📚 Базу знаний+4
RE Design Buro – уникальные интерьеры для IT-специалистов!
Более 15 лет создаем уникальные проекты международного уровня, которые не только отражают ваш стиль, но и удовлетворяют все ваши потребности.
Что мы предлагаем?
⭐️ Полный дизайн-проект: от идеи до реализации – разработаем концепцию, подготовим детальные чертежи и подберем лучшие материалы.
💡 Оперативность и комфорт: начинаем работу ещё до получения ключей, чтобы вы могли въехать в новый дом как можно скорее!
❗️ Прозрачность и честность: фиксируем стоимость работ и сроки, предлагаем удобную поэтапную оплату.
🔥 Специальные условия для IT-специалистов.
👉 Выполненные работы
👉 Подписывайтесь на канал
👉 Бесплатная консультация дизайнера
🤔 Чем отличаются HTTP и HTTPS
HTTP (HyperText Transfer Protocol) передаёт данные без шифрования, что делает соединение уязвимым для перехвата. HTTPS (HyperText Transfer Protocol Secure) использует SSL/TLS для шифрования данных, обеспечивая защиту конфиденциальной информации. Таким образом, HTTPS более безопасен и предпочтителен для передачи чувствительных данных, например, паролей и финансовой информации.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Только полезный контент для системных аналитиков!
Устали от лишней теории?
На канале Ольги Пономаревой только практическая информация: советы по проектированию и интеграции, шаги по созданию эффективных решений, навыки работы с Postman и Swagger, а также уникальные шаблоны для упрощения работы. Каждый пост — это кладезь знаний для аналитиков, стремящихся стать профессионалами.
Переходите в канал и получите доступ к полезным материалам от топового эксперта. Не упустите шанс и присоединяйтесь к сообществу профессионалов!
Подписаться
#реклама 16+
О рекламодателе
🤔 Где можно указать переменные в ролях?
В Ansible переменные могут быть определены в нескольких местах, включая роли. Роли в Ansible организуют задачи и файлы, делая плейбуки более модульными и повторно используемыми.
🟠defaults/main.yml
Переменные, определенные здесь, имеют самый низкий приоритет. Обычно используются для определения значений по умолчанию.
# roles/role_name/defaults/main.yml
some_variable: "default_value"
🟠vars/main.yml
Переменные, определенные здесь, имеют более высокий приоритет, чем переменные из defaults/main.yml. Используются для переменных, которые не должны быть изменены пользователем.
# roles/role_name/vars/main.yml
some_variable: "fixed_value"
🟠tasks/main.yml
Переменные могут быть определены непосредственно в задачах. Переменные, определенные таким образом, будут видны только в контексте этой задачи.
# roles/role_name/tasks/main.yml
- name: Set a variable
set_fact:
temporary_variable: "value"
🟠meta/main.yml
В файле метаданных можно определять зависимости ролей и использовать переменные для их настройки.
# roles/role_name/meta/main.yml
dependencies:
- role: dependency_role
some_variable: "value"
🟠templates/
Переменные могут использоваться в шаблонах Jinja2.
# roles/role_name/templates/template.j2
The value of some_variable is {{ some_variable }}
🟠handlers/main.yml
Переменные могут использоваться в хендлерах для настройки условий запуска.
# roles/role_name/handlers/main.yml
- name: restart service
service:
name: "{{ service_name }}"
state: restarted
🟠files/
В файлах, используемых в задачах копирования или шаблонизации, можно использовать переменные для указания пути к файлам или другим параметрам.
🚩Пример использования
defaults/main.yml
# roles/nginx/defaults/main.yml
nginx_port: 80
vars/main.yml
# roles/nginx/vars/main.yml
nginx_user: "www-data"
tasks/main.yml
# roles/nginx/tasks/main.yml
- name: Install Nginx
apt:
name: nginx
state: present
- name: Configure Nginx
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
- name: Start Nginx
service:
name: nginx
state: started
enabled: true
templates/nginx.conf.j2
# roles/nginx/templates/nginx.conf.j2
user {{ nginx_user }};
worker_processes auto;
events {
worker_connections 1024;
}
http {
server {
listen {{ nginx_port }};
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}
Ставь 👍 и забирай 📚 Базу знанийRepost from Идущий к IT
Твое резюме на HeadHunter — ОК, если ты видишь это.
HeadHunter сравнивает ключевые навыки в твоем резюме и в вакансии и в момент отклика отображает, насколько % ты соответствуешь требованиям.
Специальный бейджик «Подходит по навыкам на 100%» отображается, если соответствие составляет более 60%.
Если при просмотре вакансий ты видишь такой бейджик, это значит, что список навыков в твоем резюме качественно составлен.
Это важный параметр, так как рекрутерам чаще показываются резюме с лучшим соответствием.
О том, как правильно указывать ключевые навыки и оптимизировать свое резюме я уже рассказывал в этом видео
🤔 Что такое Helm и Helm Charts?
Helm — это менеджер пакетов для Kubernetes, который упрощает развертывание и управление приложениями в кластерах. Helm Charts — это пакеты, содержащие все необходимые ресурсы и конфигурации для развертывания приложений в Kubernetes. Они позволяют параметризовать установку и обеспечивать повторное использование конфигураций через шаблоны.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Дарим подписку на Яндекс Музыку
Ответьте на 1 вопрос и Яндекс Музыка для вас и 3-х ваших близких до конца года бесплатно.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте сейчас❤️
Попробовать
#реклама 18+
music.yandex.ru
О рекламодателе
Реклама на Яндексе
🤔 Как решить конфликты в гите?
Конфликты в Git возникают, когда два или более коммитов изменяют одну и ту же часть файла по-разному, и система контроля версий не может автоматически объединить эти изменения. Решение конфликтов требует ручного вмешательства.
🚩Шаги для разрешения конфликтов
1⃣Идентификация конфликтов
Когда возникает конфликт, Git сообщает о конфликтных файлах после выполнения команды слияния (
git merge) или ребейза (git rebase).
git merge feature-branch
Вывод:
Auto-merging filename
CONFLICT (content): Merge conflict in filename
Automatic merge failed; fix conflicts and then commit the result.
2⃣Разрешение конфликтов вручную
Откройте конфликтный файл в текстовом редакторе. Конфликтные изменения помечены специальными маркерами. Удалите маркеры и решите, какие изменения сохранить. Это может быть одно из изменений или комбинация обоих.
<<<<<<< HEAD
# Изменения из текущей ветки
=======
# Изменения из сливаемой ветки
>>>>>>> feature-branch
Пример разрешения конфликта:
# До разрешения конфликта
<<<<<<< HEAD
Старый текст из текущей ветки
=======
Новый текст из feature-branch
>>>>>>> feature-branch
# После разрешения конфликта
Старый текст из текущей ветки
Новый текст из feature-branch
3⃣Добавление исправленных файлов в индекс
После разрешения конфликтов сохраните изменения и добавьте исправленные файлы в индекс:
git add filename
4⃣Завершение слияния или ребейза
🟠Завершение слияния
После добавления исправленных файлов в индекс завершите слияние, выполнив коммит:
git commit
🟠Завершение ребейза
Если вы выполняли ребейз, завершите процесс
git rebase --continue
Если необходимо прервать процесс ребейза
git rebase --abort
🚩Инструменты для упрощения разрешения конфликтов
🟠Встроенные инструменты редакторов
Многие текстовые редакторы, такие как Visual Studio Code, имеют встроенные инструменты для разрешения конфликтов, которые делают процесс более визуальным и удобным.
🟠Инструменты визуального сравнения (Merge tools)
KDiff3, Meld, Beyond Compare и другие инструменты могут помочь визуально сравнить и разрешить конфликты. Установка и настройка инструмента для слияния
git config --global merge.tool meld
Запуск инструмента для разрешения конфликтов
git mergetool
🚩Примеры
1⃣Идентификация конфликта
git merge feature-branch
Вывод
Auto-merging filename
CONFLICT (content): Merge conflict in filename
Automatic merge failed; fix conflicts and then commit the result.
2⃣Откройте файл filename в текстовом редакторе и разрешите конфликт:
# До разрешения конфликта
<<<<<<< HEAD
Старый текст из текущей ветки
=======
Новый текст из feature-branch
>>>>>>> feature-branch
# После разрешения конфликта
Старый текст из текущей ветки
Новый текст из feature-branch
3⃣Добавление исправленного файла в индекс
git add filename
4⃣Завершение слияния
git commit
Ставь 👍 и забирай 📚 Базу знаний🤔 Зачем эта работа?
Этот вопрос может иметь различные ответы в зависимости от контекста. Если речь идет о DevOps, то такая работа нужна для упрощения процессов разработки, тестирования, развертывания и мониторинга приложений, что в конечном итоге увеличивает скорость и качество выпуска продуктов, а также повышает удовлетворенность и продуктивность команды.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
+9
Помощь в трудоустройстве в IT-сфере!
В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно!
Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита.
Для этого нужно:
- Перейти по ссылке
- Заполнить анкету и ответить на вопросы (занимает менее 3 минут)
- На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать
Перейти на сайт
#реклама 16+
urban-university.ru
О рекламодателе
Available now! Telegram Research 2025 — the year's key insights 
