diff --git a/README.md b/README.md
index c30935c..9d22f19 100644
--- a/README.md
+++ b/README.md
@@ -7,9 +7,9 @@
:warning: Some answers might be only partial and shouldn't be used as they are in interviews
-:exclamation: You don't need to know how to answer all the questions here. DevOps is not about specific set of tools or technologies.
+:exclamation: You don't need to know how to answer all these questions here. DevOps is not about specific set of tools or techs
-:exclamation: Some questions are very specific and will be asked only if you are interviewing to a specialized role (e.g. Ansible Expert)
+:exclamation: Some questions are very specific and will be asked only if you are being interviewed to specialized roles
:pencil: You can add more questions & answers by submitting pull requests :)
@@ -38,6 +38,7 @@
Go Beginner :baby:
|
Mongo Beginner :baby:
|
OpenShift Beginner :baby:
|
+ Shell Scripting Beginner :baby:
|
@@ -199,6 +200,12 @@ This situation might lead to bugs which hard to identify and reproduce.
How to deal with configuration drift?
+
+Do you have experience with testing cross-projects changes? (aka cross-dependency)
+
+Note: cross-dependency is when you have two or more changes to separate projects and you would like to test them in mutual build instead of testing each change separately.
+
+
In what scenarios would you prefer to use SQL?
@@ -206,13 +213,6 @@ This situation might lead to bugs which hard to identify and reproduce.
* ACID compliance is important
-
-In what scenarios would you prefer to use NoSQL over SQL?
-
- * Heterogeneous data which changes often
- * Data consistency and integrity is not top priority
-
-
## Jenkins
@@ -266,6 +266,13 @@ This situation might lead to bugs which hard to identify and reproduce.
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?
+
+How would you implement an option of a starting a build from a certain stage and not from the beginning?
+
+
+
+What are some of Jenkins limitations?
+
## AWS
@@ -355,7 +362,7 @@ Stop the instance, the type of the instance to match the desired RAM and start t
#### :baby: Beginner
-Explain the OSI model. What layers there are? What each layer reponsible for?
+Explain the OSI model. What layers there are? What each layer is responsible for?
Application: user end (HTTP is here)
Presentation: establishes context between application-layer entities (Encryption is here)
@@ -441,6 +448,10 @@ CSMA/CD algorithm:
What is ICMP?
+
+What is NAT? How it works?
+
+
## Linux
@@ -524,16 +535,6 @@ Each number has different meaning, based on how the application was developed.
I consider this as a good blog post to read more about it: https://shapeshed.com/unix-exit-codes
-
-Explain what would be the result of each command:
-
- * echo $0
- * echo $?
- * echo $$
- * echo $@
- * echo $#
-
-
How to grep two strings?
@@ -573,7 +574,7 @@ hard link can be created only within the same file system.
How to run a process in the background and why to do that in the first place?
You can achieve that by specifying & at end of the command.
-As to Why? since some commands/processes can take a lot of time to finish
+As to why, since some commands/processes can take a lot of time to finish
execution or run forever
@@ -1267,6 +1268,13 @@ func main() {
#### :baby: Beginner
+
+In what scenarios would you prefer to use NoSQL/Mongo over SQL?
+
+ * Heterogeneous data which changes often
+ * Data consistency and integrity is not top priority
+
+
What is a document? What is a collection?
@@ -1308,6 +1316,66 @@ func main() {
Explain what is Downward API
+## Shell Scripting
+
+
+#### :baby: Beginner
+
+
+Tell me about your experience with shell scripting
+
+
+
+What this line in scripts mean?: #!/bin/bash
+
+
+
+What do you tend to include in every script you write?
+
+
+
+True or False?: when a certain command/line fails, the script, by default, will exit and will no keep running
+
+Depends on the language and settings used but in Bash for example, by default the script will keep running.
+
+
+
+Today we have tools and technologies like Ansible. Why would someone still use shell scripting?
+
+
+
+Explain what would be the result of each command:
+
+ * echo $0
+ * echo $?
+ * echo $$
+ * echo $@
+ * echo $#
+
+
+
+How do you debug shell scripts?
+
+
+
+How do you get input from the user in shell scripts?
+
+
+
+Explain conditionals and how do you use them
+
+
+
+What is a loop? What types of loops are you familiar with?
+
+
+
+Explain continue
and break
. When do you use them if at all?
+
+
+
+How do you check variable length?
+
## Scenarios
diff --git a/images/bash.png b/images/bash.png
new file mode 100644
index 0000000..874756b
Binary files /dev/null and b/images/bash.png differ
diff --git a/scenarios/jenkins_pipelines.md b/scenarios/jenkins_pipelines.md
new file mode 100644
index 0000000..f176063
--- /dev/null
+++ b/scenarios/jenkins_pipelines.md
@@ -0,0 +1,10 @@
+## Jenkins Pipelines
+
+Write/Create the following Jenkins pipelines:
+
+* A pipeline which will run unit tests upon git push to a certain repository
+* A pipeline which will do to the following:
+
+ * Provision an instance (can also be a container)
+ * Configure the instance as Apache web server
+ * Deploy a web application on the provisioned instance
diff --git a/scenarios/jenkins_scripts.md b/scenarios/jenkins_scripts.md
new file mode 100644
index 0000000..afaf96d
--- /dev/null
+++ b/scenarios/jenkins_scripts.md
@@ -0,0 +1,5 @@
+## Jenkins Scripts
+
+Write the following scripts:
+
+* Remove all the jobs which include the string "REMOVE_ME" in their name