diff --git a/README.md b/README.md
index 67c9cdb..5e40c38 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
:information_source: This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE :)
-:bar_chart: There are currently **1013** questions
+:bar_chart: There are currently **1035** questions
:warning: You can use these for preparing for an interview but most of the questions and exercises don't represent an actual interview. Please read [Q&A](common-qa.md) for more details
@@ -64,6 +64,7 @@
Databases |
Regex Beginner :baby:
|
Design |
+ Hardware |
Questions you ask |
Exercises |
@@ -1873,7 +1874,15 @@ This is a great article on the topic: https://www.computerhope.com/jargon/f/file
Do you have experience with hardening servers? Can you describe the process?
-##### Network
+##### Linux - Networking
+
+
+How to list all interfaces?
+
+
+
+How to disable an interface?
+
What is a network namespace? What is it used for?
@@ -1898,6 +1907,12 @@ lsof -i -n -P | grep
What is a virtual IP? In what situation would you use it?
+
+True or False? The MAC address of an interface is assigned/set by the OS
+
+False
+
+
Can you have more than one default gateway in a given system?
@@ -2032,6 +2047,12 @@ Upstart: add Upstart init script at /etc/init/service.conf
What is CUPS?
+
+What types of web servers are you familiar with?
+
+Nginx, Apache httpd.
+
+
##### Users
@@ -2046,12 +2067,16 @@ Upstart: add Upstart init script at /etc/init/service.conf
How do you change/set the password of a user?
+
+Which file stores users passwords? Is it visible for everyone?
+
+
Do you know how to create a new user without using adduser/useradd command?
-What information is stored in /etc/passwd?
+What information is stored in /etc/passwd? explain each field
@@ -2068,6 +2093,10 @@ su command.
Use su - to switch to root
+
+What is the UID the root user? What about a regular user?
+
+
What can you do if you lost/forogt the root password?
@@ -2078,6 +2107,10 @@ Re-install the OS IS NOT the right answer :)
What is sudo? How do you set it up?
+
+What is /etc/skel?
+
+
How to see a list of who logged-in to the system?
@@ -2297,7 +2330,7 @@ These system calls are reading the file /my/file
and 5 is the file
You found there is a server with high CPU load but you didn't find a process with high CPU. How is that possible?
-##### Linux Networking
+##### Linux Advanced - Networking
When you run ip a
you see there is a device called 'lo'. What is it and why do we need it?
@@ -6027,7 +6060,7 @@ startap-script
* Manage virtual instances
- * Glance - Copy or snapshot instances
+ * Glance - Images Service. Also used for copying or snapshot instances
* Horizon - GUI for viewing and modifying resources
* Cinder - Block Storage
* Nova - Manage virtual instances
@@ -6065,8 +6098,16 @@ startap-script
How do you debug OpenStack compute issues? (tools, logs, ...)
+#### OpenStack Deployment & TripleO
+
-Are you familiar with TripleO? How is it different from Devstack?
+Have you deployed OpenStack in the past? If yes, can you describe how you did it?
+
+
+
+Are you familiar with TripleO? How is it different from Devstack or Packstack?
+
+You can read about TripleO right [here](https://docs.openstack.org/tripleo-docs/latest)
#### OpenStack Compute
@@ -6122,6 +6163,20 @@ startap-script
* neutron-server - exposes networking API and passes requests to other plugins if required
+
+Explain these network types:
+
+ * Management Network
+ * Guest Network
+ * API Network
+ * External Network
+
+ * Management Network - used for internal communication between OpenStack components. Any IP address in this network is accessible only within the datacetner
+ * Guest Network - used for communication between instances/VMs
+ * API Network - used for services API communication. Any IP address in this network is publicly accessible
+ * External Network - used for public communication. Any IP address in this network is accessible by anyone on the internet
+
+
What is a provider network?
@@ -6154,6 +6209,80 @@ startap-script
How do you debug OpenStack networking issues? (tools, logs, ...)
+#### OpenStack - Glance
+
+
+Explain Glance in detail
+
+ * Glance is the OpenStack image service
+ * It handles requests related to instances disks and images
+ * Glance also used for creating snapshots for quick instances backups
+ * Users can use Glance to create new images or upload existing ones
+
+
+
+Describe Glance architecture
+
+ * glance-api - responsible for handling image API calls such as retrieval and storage. It consists of two APIs: 1. registry-api - responsible for internal requests 2. user API - can be accessed publicly
+ * glance-registry - responsible for handling image metadata requests (e.g. size, type, etc). This component is private which means it's not available publicly
+ * metadata definition service - API for custom metadata
+ * database - for storing images metadata
+ * image repository - for storing images. This can be a filesystem, swift object storage, HTTP, etc.
+
+
+#### OpenStack - Swift
+
+
+Explain Swift in detail
+
+ * Swift is Object Store service and is an highly available, distributed and consistent store designed for storing a lot of data
+ * Swift is distributing data across multiple servers while writing it to multiple disks
+ * One can choose to add additional servers to scale the cluster. All while swift maintaining integrity of the information and data replications.
+
+
+
+Can users store by default an object of 100GB in size?
+
+Not by default. Object Storage API limits the maximum to 5GB per object but it can be adjusted.
+
+
+
+Explain the following in regards to Swift:
+
+ * Container
+ * Account
+ * Object
+
+ * Container - Defines a namespace for objects.
+ * Account - Defines a namespace for containers
+ * Object - Data content (e.g. image, document, ...)
+
+
+
+True or False? there can be two objects with the same name in the same container but not in two different containers
+
+False. Two objects can have the same name if they are in different containers.
+
+
+#### OpenStack - Swift
+
+
+Explain Cinder in detail
+
+ * Cinder is OpenStack Block Storage service
+ * It basically provides used with storage resources they can consume with other services such as Nova
+ * One of the most used implementations of storage supported by Cinder is LVM
+ * From user perspective this is transparent which means the user doesn't know where, behind the scenes, the storage is located or what type of storage is used
+
+
+
+Describe Cinder's components
+
+ * cinder-api - receives API requests
+ * cinder-volume - manages attached block devices
+ * cinder-scheduler - responsible for storing volumes
+
+
#### OpenStack - Keystone
@@ -6210,12 +6339,14 @@ A list of services and their endpoints
* Swift
* Sahara
* Ironic
+ * Trove
* Aodh
* Ceilometer
* Swift - highly available, distributed, eventually consistent object/blob store
* Sahara - Manage Hadoop Clusters
* Ironic - Bare Metal Provisioning
+ * Trove - Database as a service that runs on OpenStack
* Aodh - Alarms Service
* Ceilometer - Track and monitor usage
@@ -6223,12 +6354,14 @@ A list of services and their endpoints
Identify the service/project used for each of the following:
+ * Database as a service which runs on OpenStack
* Bare Metal Provisioning
* Track and monitor usage
* Alarms Service
* Manage Hadoop Clusters
* highly available, distributed, eventually consistent object/blob store
+ * Database as a service which runs on OpenStack - Trove
* Bare Metal Provisioning - Ironic
* Track and monitor usage - Ceilometer
* Alarms Service - Aodh
@@ -7718,6 +7851,30 @@ DNS redirection
Explain "Branch by Abstraction" technique
+## Hardware
+
+
+What is a processor?
+
+
+
+What is RAM?
+
+
+
+What is an embedded system?
+
+
+
+Can you give an example of an embedded system?
+
+Raspberry Pi
+
+
+
+What types of storage are there?
+
+
## Exercises
Exercises are all about:
@@ -7729,17 +7886,29 @@ Exercises are all about:
Below you can find several exercises
+#### Containers
* [Writing a Dockerfile and running a container](exercises/write_dockerfile_run_container.md)
+
+#### Jenkins
+
+* [Jenkins: writing scripts](exercises/jenkins_scripts.md)
+* [Jenkins: writing pipelines](exercises/jenkins_pipelines.md)
+
+#### CI
+
+* [CI for open source project](exercises/ci_for_open_source_project.md)
+
+#### Mixed
+
+* [Flask, Containers and CI](exercises/flask_container_ci/README.md)
+* [Flask, Containers and CI 2](exercises/flask_container_ci2/README.md)
+
+#### Misc
+
* [Elasticsearch & Kibana on AWS](exercises/elk_kibana_aws.md)
* [ELK & Filebeat](exercises/eflk.md)
* [Ansible, Minikube and Docker](exercises/ansible_minikube_docker.md)
* [Cloud Slack bot](exercises/cloud_slack_bot.md)
-* [Jenkins: writing scripts](exercises/jenkins_scripts.md)
-* [Jenkins: writing pipelines](exercises/jenkins_pipelines.md)
-* [CI for open source project](exercises/ci_for_open_source_project.md)
-* [Flask, Containers and CI](exercises/flask_container_ci/README.md)
-* [Flask, Containers and CI 2](exercises/flask_container_ci2/README.md)
-
## Credits
diff --git a/images/hardware.png b/images/hardware.png
new file mode 100644
index 0000000..7cc0e10
Binary files /dev/null and b/images/hardware.png differ