Add a couple of new questions

This commit is contained in:
abregman 2019-10-19 23:48:17 +03:00
parent 8ce4a0d9e1
commit cf03070b43
4 changed files with 121 additions and 13 deletions

106
README.md
View File

@ -3,7 +3,7 @@
:information_source:  This repository contains interview questions on various DevOps related topics
:bar_chart:  There are currently **216** questions
:bar_chart:  There are currently **230** questions
:warning:  You don't need to know how to answer all the questions in this repo. DevOps is not about knowing all :)
@ -166,6 +166,14 @@ which follows the immutable infrastructure paradigm.
<summary>Describe the workflow of setting up some type of web server (Apache, IIS, Tomact, ...)</summary><br><b>
</b></details>
<details>
<summary>Explain monitoring. What is it? Why it's important?</summary><br><b>
</b></details>
<details>
<summary>What monitoring methods are you familiar with?</summary><br><b>
</b></details>
<a name="devops-advanced"></a>
#### :star: Advanced
@ -223,15 +231,30 @@ Note: cross-dependency is when you have two or more changes to separate projects
#### :baby: Beginner
<details>
<summary>Why are you using Jenkins? What are the advantages of Jenkins over its competitors?</summary><br><b>
<summary>What is Jenkins? What have you used it for?</summary><br><b>
</b></details>
<details>
<summary>What is a plugin?</summary><br><b>
<summary>What are the advantages of Jenkins over its competitors? Can you compare it to one of the following systems?:
* Travis
* Bamboo
* Teamcity
* CircleCI</summary><br><b>
</b></details>
<details>
<summary>What plugins are you using in Jenkins? Which do you consider to be the most useful?</summary><br><b>
<summary>Explain the following:
* Job
* Build
* Plugin
* Slave
* Executor</summary><br><b>
</b></details>
<details>
<summary>What plugins have you used in Jenkins?</summary><br><b>
</b></details>
<details>
@ -239,11 +262,15 @@ Note: cross-dependency is when you have two or more changes to separate projects
</b></details>
<details>
<summary>What type of jobs there are? what is the advantage of each type?</summary><br><b>
<summary>What type of jobs are there? Which types have you used and why?</summary><br><b>
</b></details>
<details>
<summary>What ways are you familiar with to notify users on build results?</summary><br><b>
<summary>How did you report build results to users? What ways are you familiar with?</summary><br><b>
</b></details>
<details>
<summary>You need to run unit tests every time a change submitted to a given project. Describe in details how your pipeline would look like and what will be executed in each stage</summary><br><b>
</b></details>
<details>
@ -258,7 +285,7 @@ Note: cross-dependency is when you have two or more changes to separate projects
</b></details>
<details>
<summary>There are four teams in your organization. How to prioritize the builds of each team? So the jobs of team x will always run before team y</summary><br><b>
<summary>There are four teams in your organization. How to prioritize the builds of each team? So the jobs of team x will always run before team y for example</summary><br><b>
</b></details>
<details>
@ -269,12 +296,19 @@ Note: cross-dependency is when you have two or more changes to separate projects
<summary>If you are managing a dozen of jobs, you can probably use the Jenkins UI. How do you manage the creation and deletion of hundreds of jobs every week/month?</summary><br><b>
</b></details>
<details>
<summary>What are some of Jenkins limitations?<summary><br><b>
* Testing cross-dependencies (changes from multiple projects together)
* Starting builds from any stage (although cloudbees implemented something called checkpoints)
</b></details>
<details>
<summary>How would you implement an option of a starting a build from a certain stage and not from the beginning?<summary><br><b>
</b></details>
<details>
<summary>What are some of Jenkins limitations?<summary><br><b>
<summary>Have you written Jenkins scripts? If yes, what for and how they work?</summary><br><b>
</b></details>
## AWS
@ -480,6 +514,7 @@ CSMA/CD algorithm:
* rmdir (can you achieve the same result by using <code>rm</code>?)
* grep
* wc
* touch
* df</summary><br><b>
</b></details>
@ -498,6 +533,8 @@ With cron, tasks are scheduled using the following format:
The tasks are stored in a cron file.
</b></details>
##### Permissions
<details>
<summary>How to change the permissions of a file?</summary><br><b>
</b></details>
@ -616,6 +653,10 @@ hard link can be created only within the same file system.
<summary>What RAID is used for? Can you explain the differences between RAID 0, 1, 5 and 10?</summary><br><b>
</b></details>
<details>
<summary>What is lazy umount?</summary><br><b>
</b></details>
<details>
<summary>Fix the following commands:
@ -728,21 +769,53 @@ related to the file like its size, owner, permissions, etc.
</b></details>
<details>
<summary>DNS: What is a "A record"?</summary><br><b>
<summary>What is NTP? What is it used for?</summary><br><b>
</b></details>
<details>
<summary>DNS: What is a PTR?</summary><br><b>
<summary>What is SELiunx?</summary><br><b>
</b></details>
<details>
<summary>What is nftables?</summary><br><b>
</b></details>
<details>
<summary>What firewalld daemon is responsible for?</summary><br><b>
</b></details>
##### DNS
<details>
<summary>What the file <code>/etc/resolv.conf</code> is used for? What does it include?</summary><br><b>
</b></details>
<details>
<summary>What is a "A record"?</summary><br><b>
</b></details>
<details>
<summary>What is a PTR record?</summary><br><b>
While an A record points a domain name to an IP address, a PTR record does the opposite and resolves the IP address to a domain name.
</b></details>
<details>
<summary>DNS: What is a MX record?</summary><br><b>
<summary>What is a MX record?</summary><br><b>
</b></details>
<details>
<summary>DNS: is it using TCP or UDP?</summary><br><b>
<summary>Is DNS using TCP or UDP?</summary><br><b>
</b></details>
##### Packaging
<details>
<summary>Do you have experience with packaging? Can you explain how it works?</summary><br><b>
</b></details>
<details>
<summary>RPM: explain the spec format(what it should and can include)</summary><br><b>
</b></details>
<a name="linux-advanced"></a>
@ -1101,6 +1174,9 @@ Swarm management which means you can create new swarms in Docker Cloud.
## Kubernetes
<a name="kubernetes-beginner"></a>
#### :baby: Beginner
<details>
<summary>What is Kubernetes?</summary><br><b>
</b></details>
@ -1216,6 +1292,10 @@ set([food for bro in x for food in bro['food']])
Shortest way is: <code>my_string[::-1]</code> but it doesn't mean it's the most efficient one.
</b></details>
<details>
<summary>Write a function to determine if a given string is a palindrome</summary><br><b>
</b></details>
<details>
<summary>Explain what is GIL</summary><br><b>
</b></details>
@ -1232,7 +1312,7 @@ Shortest way is: <code>my_string[::-1]</code> but it doesn't mean it's the most
</b></details>
<details>
<summmary>Are you familiar with Dataclasses? Can you explain what are they used for?</summary><br><b>
<summary>Are you familiar with Dataclasses? Can you explain what are they used for?</summary><br><b>
</b></details>
<details>

View File

@ -0,0 +1,6 @@
def jobs = Jenkins.instance.items.findAll { job -> job.name =~ /"REMOVE_ME"/ }
jobs.each { job ->
println job.name
//job.delete()
}

View File

@ -0,0 +1,16 @@
def removeOldBuilds(buildDirectory, days = 14) {
def wp = new File("${buildDirectory}")
def currentTime = new Date()
def backTime = currentTime - days
wp.list().each { fileName ->
folder = new File("${buildDirectory}/${fileName}")
if (folder.isDirectory()) {
def timeStamp = new Date(folder.lastModified())
if (timeStamp.before(backTime)) {
folder.delete()
}
}
}
}

View File

@ -3,3 +3,9 @@
Write the following scripts:
* Remove all the jobs which include the string "REMOVE_ME" in their name
* Remove builds older than 14 days
### Answer
* [Remove jobs which include specific string](jenkins/scripts/jobs_with_string.groovy)
* [Remove builds older than 14 days](jenkins/scripts/old_builds.groovy)