Tuesday, 25 May 2021

Top DevOps Interview Questions with Answers


  1. A Pod is crashed, how you will troubleshoot it?
  2. What is difference between $*, $@,$_ and $0?
  3. What are hosted zones in AWS?
  4. How to setup Weighted routing in route 53?
  5. How to create a network load balancer?
  6. What is provisioner and provider in Terraform?
  7. What are the modules you have used in Ansible?
  8. How to setup modules in Ansible?
  9. What are hostVars and groupVars in Ansible?
  10. How to enable gather_facts in Anisble?
  11. What are j2 templates in Ansible?
  12. What are tasks and handlers in Ansible?


Adding more with answers........stay tuned !!!!

Build and Release Engineer Interview Questions

Build and Release Engineer Interview Questions
Hi All,,

Here I would like to give some Interview Questions that I have faced in Telephonic and Face to Face Interview

The Basic Questions you need to be Prepared:-
===========================================
1. Tell about yourself?
2. What are your current Roles and Responsibilities?
3. How Much experience do you have?
4. What was the flow of Software development?
5. What tools are you aware of?
6. Have you worked on LINUX?
7. Make an overview of tools that will be used in Build and Release?
8. List out Version control commands?
9. Will update more......


Technical Questions:-
===================
1. What are the version controls you have used?
2. Have you worked on any Continuous Integration Tools?
3. Do you have any experience with scripting languages?
4. Do you know shell scripting?
5. What software do you use for Installers?
6. Have you written any build files using ANT/NANT?
7. Linux Commands-->cp,df,du,ps,umount,awk,time,ls,grep,top,head
8. How to create new user in LINUX?
9. How to Configure SVN on Linux?
10. Questions on SQL?
11. Windows platforms?
12. Questions on IIS?
13. How to create a branch in SVN?
14. When you will create a branch?
15. What is the structure of branches in the repo?
16. How to create backups of the repository?
17. Commands to create New User, New branch, and code Merging?
18. How you will release products to the client?
19. Do you know about Batch files?
20. Do you know about NSIS/Installshield/WIX Installer?
21. What are the tasks you will do in daily routine?
22. What will do for repeated tasks?
23. What do you know about SVN/CVS/TFS/GIT?
24. How to migrate from SVN to GIT?
25. Questions on JOINS, HAVING, GROUP BY, Alias in SQL?
26. Difference between DROP, DELETE, Truncate?
27. Difference between branch, tag, trunk?
28. Write a shell script to find the largest of 3 numbers, while given as input from the shell command line?
29. What is the difference between export and update in SVN?
30. What is the difference between update and commit in SVN?
31. What are the basic svn commands frequently used?
32. How to revert to a specific revision in svn without loosing the local changes?
33. What happens if a directory is deleted from server suddenly? How will you get the directory back?
34. What is the difference between  checkout and export in SVN?
35. How to tag a branch?
36. Salve config
37. How to create backup in SVN?
38. Commands for grep, Find, dr, du?
39. How to copy error logs > Dev/Null?
40. What are Jenkins plugins?
41. What are different Jenkins jobs?
42. Mail command?
43. How to post build in Jenkins?
44. Msbuild
45. Explain P4 commands
46. What is difference between $*, $@ , $_and $0?
47.  Explain p4 client command.
48. How to find files under sub directories?
49. How to get first column values?
50. Which port is free?
51. What is process on back ground? how to get it foreground?
52. How to get last column on ls-l?
53. What you need to login onto p4 client?
54. Which is the default p4 port?
55. What are installsheild conditions?
56. What are different multilanguages in IS?
57. How to create upgrade Installer?
58. What are the registry entry values?
59. How to know which services are running?
60. How to differentiate between Service and process?
61. How to create symbolic link?
62. Explain nslookup command.
63. How to configure UAC settings?
64. What are different SVN commands?
65. How to set up cron job in Jenkins?
66. How to grep only filenames that match?
67. Explain Teamcity.
68. What are file properties in SVN?
69. How to get started with SVN externals?
70. Explain relocate and switch in SVN.
71. What are the different backup types in SVN?
72. What is the maximum revision SVN will support?
73. What are the 4 ways of executing a shell script in Unix/Linux?
74. How to create jobs in Jenkins?
75. What are the plugins used?
76. What is the difference between target and task?
77. How you setup slave?
78. How you launch slave?
79. How to run slave as specific user?
80. How to run a specific job on slave?
81. What is the connection between master and slave?
82. What are the environment variables you set on slave?
83. Explain about view map.
84. How to create p4 client spec ?
85. How you exclude some files from using view map?
86. Explain p4 branch spec .
87.What are different types of views?Explain the difference.
88. What is default spec?
89. What is the command to edit config spec?
90. How to set view using script?
91. Explain clearcase spec.
92. Explain  extended view path in clearcase.

Will update more.....










AWS How to setup weighted routing in route53

Routing policy is one of the important AWS feature, it determines how Amazon Route53 responds to queries when you create a record.


Routing policies let you choose how Route 53 routes traffic to you resources. If you have multiple resources that perform the same operation, such as serve content for a website, choose a routing policy other than simple. Here's a brief comparison:

There are 7 types of routing policy in AWS. The top 4 routing policy are mostly used ones based on requirement.

  1. Simple: Simple records use standard DNS functionality.
  2. Weighted: Weighted records let you specify what portion of traffic to send to each resource.
  3. Geolocation: Geolocation records let you route traffic to your resources based on the geographic location of your users.
  4. Latency: Latency records let you route traffic to resources in the AWS Region that provides the lowest latency. All resources must be in AWS Regions.
  5. Failover: Failover records let you route traffic to a resource when the resource is healthy or to a different resource when the first resource is unhealthy.
  6. Multivalue answer: Multivalue answer records let you configure Route 53 to return multiple values, such as IP addresses for your web servers, in response to DNS queries.
  7. Geoproximity routing:  when you want to route traffic based on the location of your resources and, optionally, shift traffic from resources in one location to resources in another.



Weighted routing

Weighted routing lets you associate multiple resources with a single domain name (devopsvm.com) or subdomain name (dev.devopsvm.com,) and choose how much traffic is routed to each resource. This can be useful for a variety of purposes, including load balancing and testing new versions of software.

To configure weighted routing, you create records that have the same name and type for each of your resources. You assign each record a relative weight that corresponds with how much traffic you want to send to each resource. Amazon Route 53 sends traffic to a resource based on the weight that you assign to the record as a proportion of the total weight for all records in the group:


Formula for how much traffic is routed to a given resource: 
weight for a specified record / sum of the weights for all records.

For example, if you want to send a tiny portion of your traffic to one resource and the rest to another resource, you might specify weights of 1 and 255. The resource with a weight of 1 gets 1/256th of the traffic (1/(1+255)), and the other resource gets 255/256ths (255/(1+255)). You can gradually change the balance by changing the weights. If you want to stop sending traffic to a resource, you can change the weight for that record to 0.



Once you have records in hosted zones, select a record you want to add routing policy. Then you get an option to Edit Record, at the bottom you can see Routing policy select the policy you want to use based on your requirement.





Monday, 24 May 2021

AWS Hosted Zones

 

Hosted zones is one of the top feature of Route53, it tells Route 53 how to respond to DNS queries for a domain such as example.com.

It has records and those records contains information about how you want to route traffic for a specific domain, such as from example.com, and its subdomains (dev.example.com, qa.example.com). A hosted zone and the corresponding domain will have the same name. 

There are two types of hosted zones:

  1. Public hosted zones 
  2. Private hosted zones
Public hosted zones

It Contain records that specify how you want to route traffic on the internet

Private hosted zones

It contain records that specify how you want to route traffic in an Amazon VPC





Search for Route 53 in search, then click on Hosted Zones which is under DNS management.

Provide domain name like example.com, devopsvm.com, a bit of description and select which type of hosted zone is needed either public or private. Then click on create hosted zone button.
















Kubernetes - How to check logs of a running and crashed pods

 This is the most common issue that every DevOps guy faces, while working on Kubernetes. One day suddenly you will find that one of the pod you are working is in bad state. And you dont know what went wrong. So as a DevOps engineer you need to be aware of how to view logs of running pod or crashed pod.


First you need to know which pod you want see logs for, to do that

Get the pods

kubectl get pods -A      To list all pods irrespective of namespace

kubectl get pods -n <namespace>  To get list of pods from a specific namespace

kubectl get pods  To get list of pods from default namespace


[devopsvm@dev ~]$ kubectl get pods 

NAMESPACE     NAME                                                    READY   STATUS      RESTARTS   AGE

default       jenkins-master-wed66fcfc-kasdas                      1/1     Running           1               18d

default       nfs-client-provisioner-6756-75vc5q                 1/1     Running         0               86d


Get logs of running pods

If pod running in default namespace

kubectl log jenkins-master-wed66fcfc-kasdas  


if pod running in a different namespace

kubectl log jenkins-master-wed66fcfc-kasdas  -n <namespace>


To see logs in realtime (use -f option)

-f option gives you logs in real time on your screen, to exit press CTRL+C or CTRL+Z

kubectl logs -f jenkins-master-wed66fcfc-kasdas  


Get logs of crashed pods (use -p option)

-p or --previous option give option to see logs of a pod which got restarted or crashed. In above case you see jenkins is restarted 1 time..so if you want to see like why it got restarted, use either of the option.


kubectl logs jenkins-master-wed66fcfc-kasdas -p 

This will show logs of pod before it got crashed, best usage in realtime to troubleshoot why a pod is restarted.


Get logs a specific container inside a pod having multiple containers

When you have a pod having multiple containers running in it, then this way we can find logs of that specific container.

[devopsvm@dev ~]$ kubectl get pods 

NAMESPACE     NAME                                                    READY   STATUS      RESTARTS   AGE

default       jenkins-master-wed66fcfc-kasdas                      2/2     Running           1               18d


If you see 2/2 in under READY , it means that pod is having two containers inside it.

so if you try to run just kubectl logs jenkins-master-wed66fcfc-kasdas it will throw you an error saying "container name must be specified"

error: a container name must be specified for pod  jenkins-master-wed66fcfc-kasdas 
choose one of: [master slave]

From above error you got to know two containers are running master and slave.

use -c option to pass container name like

kubectl logs  jenkins-master-wed66fcfc-kasdas  -c slave

kubectl logs  jenkins-master-wed66fcfc-kasdas  -c slave -n <namespace>

kubectl logs  jenkins-master-wed66fcfc-kasdas  -c slave -p


you can pass namespace and -p options as well to get previous logs.


Above commands are mostly used in troubleshooting pod while running and crashed state.


Tricks and Tips