Add 20 new questions

This commit is contained in:
abregman 2019-10-20 01:25:34 +03:00
parent cf03070b43
commit 4921318f7d

113
README.md
View File

@ -3,7 +3,7 @@
:information_source:  This repository contains interview questions on various DevOps related topics :information_source:  This repository contains interview questions on various DevOps related topics
:bar_chart:  There are currently **230** questions :bar_chart:  There are currently **250** questions
:warning:  You don't need to know how to answer all the questions in this repo. DevOps is not about knowing all :) :warning:  You don't need to know how to answer all the questions in this repo. DevOps is not about knowing all :)
@ -24,7 +24,7 @@
<td align="center"><a href="#devops"><img src="images/devops.png" width="75px;" height="75px;" alt="DevOps" /><br /><b>DevOps</b></a><br /><sub><a href="#devops-beginner">Beginner :baby:</a></sub><br><sub><a href="#devops-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#devops"><img src="images/devops.png" width="75px;" height="75px;" alt="DevOps" /><br /><b>DevOps</b></a><br /><sub><a href="#devops-beginner">Beginner :baby:</a></sub><br><sub><a href="#devops-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#jenkins"><img src="images/jenkins.png" width="75px;" height="85px;" alt="Jenkins"/><br /><b>Jenkins</b></a><br /><sub><a href="#jenkins-beginner">Beginner :baby:</a></sub><br><sub><a href="#jenkins-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#jenkins"><img src="images/jenkins.png" width="75px;" height="85px;" alt="Jenkins"/><br /><b>Jenkins</b></a><br /><sub><a href="#jenkins-beginner">Beginner :baby:</a></sub><br><sub><a href="#jenkins-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#aws"><img src="images/aws.png" width="120px;" height="75px;" alt="AWS"/><br /><b>AWS</b></a><br /><sub><a href="#aws-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#aws"><img src="images/aws.png" width="120px;" height="75px;" alt="AWS"/><br /><b>AWS</b></a><br /><sub><a href="#aws-beginner">Beginner :baby:</a></sub><br><sub></td>
<td align="center"><a href="#Network"><img src="images/network.png" width="75x;" height="75px;" alt="Network"/><br /><b>Network</b></a><br /><sub><a href="#network-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#Network"><img src="images/network.png" width="75x;" height="75px;" alt="Network"/><br /><b>Network</b></a><br /><sub><a href="#network-beginner">Beginner :baby:</a></sub><br><sub><a href="#network-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#linux"><img src="images/linux.png" width="75x;" height="75px;" alt="Linux"/><br /><b>Linux</b></a><br /><sub><a href="#linux-beginner">Beginner :baby:</a></sub><br><sub><a href="#linux-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#linux"><img src="images/linux.png" width="75x;" height="75px;" alt="Linux"/><br /><b>Linux</b></a><br /><sub><a href="#linux-beginner">Beginner :baby:</a></sub><br><sub><a href="#linux-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#ansible"><img src="images/ansible.png" width="75px;" height="75px;" alt="Ansible"/><br /><b>Ansible</b></a><br /><sub><a href="#ansible-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#ansible"><img src="images/ansible.png" width="75px;" height="75px;" alt="Ansible"/><br /><b>Ansible</b></a><br /><sub><a href="#ansible-beginner">Beginner :baby:</a></sub><br><sub></td>
<td align="center"><a href="#terraform"><img src="images/terraform.png" width="75px;" height="75px;" alt="Terraform"/><br /><b>Terraform</b></a><br /><sub><a href="#terraform-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#terraform"><img src="images/terraform.png" width="75px;" height="75px;" alt="Terraform"/><br /><b>Terraform</b></a><br /><sub><a href="#terraform-beginner">Beginner :baby:</a></sub><br><sub></td>
@ -277,6 +277,10 @@ Note: cross-dependency is when you have two or more changes to separate projects
<summary>How to secure Jenkins?</summary><br><b> <summary>How to secure Jenkins?</summary><br><b>
</b></details> </b></details>
<details>
<summary>Can you describe some of Jenkins best practices?</summary><br><b>
</b></details>
<a name="jenkins-advanced"></a> <a name="jenkins-advanced"></a>
#### :star: Advanced #### :star: Advanced
@ -297,7 +301,7 @@ Note: cross-dependency is when you have two or more changes to separate projects
</b></details> </b></details>
<details> <details>
<summary>What are some of Jenkins limitations?<summary><br><b> <summary>What are some of Jenkins limitations?</summary><br><b>
* Testing cross-dependencies (changes from multiple projects together) * Testing cross-dependencies (changes from multiple projects together)
* Starting builds from any stage (although cloudbees implemented something called checkpoints) * Starting builds from any stage (although cloudbees implemented something called checkpoints)
@ -501,6 +505,35 @@ CSMA/CD algorithm:
<summary>What is NAT? How it works?</summary><br><b> <summary>What is NAT? How it works?</summary><br><b>
</b></details> </b></details>
<a name="network-advanced"></a>
#### :star: Advanced
<details>
<summary>Explain Spanning Tree Protocol (STP)</summary><br><b>
</b></details>
<details>
<summary>What is link aggregation? Why is it used?</summary><br><b>
</b></details>
<details>
<summary>What is Asymmetric Routing? How do deal with it?</summary><br><b>
</b></details>
<details>
<summary>What is GRE? How it works?</summary><br><b>
</b></details>
<details>
<summary>Explain OSPF</summary><br><b>
</b></details>
<details>
<summary>Using Hammind code, what would be the code word for the following data word 100111010001101?</summary><br><b>
00110011110100011101
</b></details>
## Linux ## Linux
<a name="linux-beginner"></a> <a name="linux-beginner"></a>
@ -515,6 +548,7 @@ CSMA/CD algorithm:
* grep * grep
* wc * wc
* touch * touch
* man
* df</summary><br><b> * df</summary><br><b>
</b></details> </b></details>
@ -555,6 +589,10 @@ The tasks are stored in a cron file.
<summary>How to add a new user to the system without providing him the ability to log-in into the system?</summary><br><b> <summary>How to add a new user to the system without providing him the ability to log-in into the system?</summary><br><b>
</b></details> </b></details>
<details>
<summary>On a system which uses systemd, how would display the logs?</summary>
</b></details>
<details> <details>
<summary>What commands are you using for troubleshooting issues? specifically: <summary>What commands are you using for troubleshooting issues? specifically:
@ -700,6 +738,10 @@ SIGKILL - a signal which cannot caught or ignored
To view all available signals run `kill -l` To view all available signals run `kill -l`
</b></details> </b></details>
<details>
<summary>What happens when you press ctrl + c?</summary><br><b>
</b></details>
<details> <details>
<summary>What are daemons?</summary><br><b> <summary>What are daemons?</summary><br><b>
</b></details> </b></details>
@ -714,6 +756,10 @@ Terminated
Zombie Zombie
</b></details> </b></details>
<details>
<summary>What is a zombie process? How do you get rid of it?</summary>
</b></details>
<details> <details>
<summary>What is the init process?</summary><br><b> <summary>What is the init process?</summary><br><b>
</b></details> </b></details>
@ -746,7 +792,7 @@ You can use the <code>split</code> command this way: <code>split -l 25 some_file
<details> <details>
<summary>What is a file descriptor? What file descriptors are you familiar with?</summary><br><b> <summary>What is a file descriptor? What file descriptors are you familiar with?</summary><br><b>
Kerberos
File descriptor, also known as file handler, is a unique number which identifies an open file in the operating system. File descriptor, also known as file handler, is a unique number which identifies an open file in the operating system.
In Linux (and Unix) the first three file descriptors are: In Linux (and Unix) the first three file descriptors are:
@ -776,6 +822,10 @@ related to the file like its size, owner, permissions, etc.
<summary>What is SELiunx?</summary><br><b> <summary>What is SELiunx?</summary><br><b>
</b></details> </b></details>
<details>
<summary>What is Kerberos?</summary><br><b>
</b></details>
<details> <details>
<summary>What is nftables?</summary><br><b> <summary>What is nftables?</summary><br><b>
</b></details> </b></details>
@ -784,6 +834,16 @@ related to the file like its size, owner, permissions, etc.
<summary>What firewalld daemon is responsible for?</summary><br><b> <summary>What firewalld daemon is responsible for?</summary><br><b>
</b></details> </b></details>
##### Network
<details>
<summary>How can you turn your Linux server into a router?</summary><br><b>
</b></details>
<details>
<summary>What is the routing table? How do you view it?</summary><br><b>
</b></details>
##### DNS ##### DNS
<details> <details>
@ -829,6 +889,8 @@ While an A record points a domain name to an IP address, a PTR record does the o
<summary>How processes are being created?</summary><br><b> <summary>How processes are being created?</summary><br><b>
</b></details> </b></details>
##### Network
<details> <details>
<summary>When you run <code>ip a</code> you see there is a device called 'lo'. What is it and why do we need it?</summary><br><b> <summary>When you run <code>ip a</code> you see there is a device called 'lo'. What is it and why do we need it?</summary><br><b>
</b></details> </b></details>
@ -838,7 +900,7 @@ While an A record points a domain name to an IP address, a PTR record does the o
</b></details> </b></details>
<details> <details>
<summary>What is the routing table? How do you view it?</summary><br><b> <summary>What is network bonding? What types are you familiar with?</summary><br><b>
</b></details> </b></details>
<details> <details>
@ -880,6 +942,9 @@ This is a good article about the topic: https://ops.tips/blog/how-linux-creates-
## Ansible ## Ansible
<a name="ansible-beginner"></a>
#### :baby: Beginner
<details> <details>
<summary>Describe each of the following components in Ansible, including the relationship between them: <summary>Describe each of the following components in Ansible, including the relationship between them:
@ -899,6 +964,10 @@ Playbook One or more plays. Each play can be executed on the same or differe
Role Ansible roles allows you to group resources based on certain functionality/service such that they can be easily reused. In a role, you have directories for variables, defaults, files, templates, handlers, tasks, and metadata. You can then use the role by simply specifying it in your playbook. Role Ansible roles allows you to group resources based on certain functionality/service such that they can be easily reused. In a role, you have directories for variables, defaults, files, templates, handlers, tasks, and metadata. You can then use the role by simply specifying it in your playbook.
</b></details> </b></details>
<details>
<summary>What are some of Ansible best practices?</summary><br><b>
</b></details>
<details> <details>
<summary>What is an inventory file and how you define one?</summary><br><b> <summary>What is an inventory file and how you define one?</summary><br><b>
@ -1085,6 +1154,10 @@ The benefits of Terraform over the other tools:
You use it this way: <code>variable “my_var” {}</code> You use it this way: <code>variable “my_var” {}</code>
</b></details> </b></details>
<details>
<summary>Give an example of several Terraform best practices</summary><br><b>
</b></details>
## Docker ## Docker
@ -1300,6 +1373,10 @@ Shortest way is: <code>my_string[::-1]</code> but it doesn't mean it's the most
<summary>Explain what is GIL</summary><br><b> <summary>Explain what is GIL</summary><br><b>
</b></details> </b></details>
<details>
<summary>What is a generator? Why using generators?</summary>
</b></details>
<a name="python-advanced"></a> <a name="python-advanced"></a>
#### :star: Advanced #### :star: Advanced
@ -1327,13 +1404,18 @@ Shortest way is: <code>my_string[::-1]</code> but it doesn't mean it's the most
<summary>Explain Descriptors</summary><br><b> <summary>Explain Descriptors</summary><br><b>
</b></details> </b></details>
<details>
<summary>You create a web page where a user can upload a document. But the function which reads the uploaded files, runs for a long time, based on the document size. How can you overcome this?</summary><br><b>
</b></details>
## Prometheus ## Prometheus
<details> <details>
<summary>Describe the following Prometheus components: <summary>Describe the following Prometheus components:
- Prometheus server
- Push Gateway * Prometheus server
- Alert Manager</summary><br><b> * Push Gateway
* Alert Manager</summary><br><b>
Prometheus server responsible for scraping the storing the data<br> Prometheus server responsible for scraping the storing the data<br>
Push gateway is used for short-lived jobs<br> Push gateway is used for short-lived jobs<br>
@ -1601,6 +1683,9 @@ Depends on the language and settings used but in Bash for example, by default th
<summary>How do you check variable length?</summary><br><b> <summary>How do you check variable length?</summary><br><b>
</b></details> </b></details>
<details>
<summary>What is the difference between single and double quotes?</summary><br><b>
</b></details>
<a name="shell-scripting-advanced"></a> <a name="shell-scripting-advanced"></a>
#### Advanced #### Advanced
@ -1613,6 +1698,18 @@ Depends on the language and settings used but in Bash for example, by default th
</summary><br><b> </summary><br><b>
</b></details> </b></details>
<details>
<summary>Can you give an example to some Bash best practices?</summary><br><b>
</b></details>
<details>
<summary>What is the ternary operator? How do you use it in bash?</summary><br><b>
A short way of using if/else. An example:
[[ $a = 1 ]] && b="yes, equal" || b="nope"
</b></details>
## Scenarios ## Scenarios
Scenarios are questions which don't have verbal answer and require you one of the following: Scenarios are questions which don't have verbal answer and require you one of the following: