DevOps Course Training FAQs | Online | Classroom | scmGalaxy


scmGalaxy Training FAQ

Can I attend a Demo Session?

You can go through the sample class recording and it would give you a clear insight about how the classes are conducted, quality of instructors and inter-activeness in a class.
Can we have a demo class?
We do not have any demo class of concept. In case if you want to get familiar with our training methodology and process, you can request a pre recorded sessions videos before attending a live class?
Who are the training Instructors?
All our instructors are working professionals from the Industry and have at least 10-12 yrs of relevant experience in various domains. They are subject matter experts and are trained for providing online training so that participants get a great learning experience.
Do you provide placement assistance?
No, But we help you to get prepared for the interview. Since there is a big demand for this skill, we help our students for resumes preparations, work on real life projects and provide assistance for interview preparation.
What are the system requirements for this course?
The system requirements include Windows / Mac / Linux PC, Minimum 2GB RAM and 20 GB HDD Storage with Windows/CentOS/Redhat/Ubuntu/Fedora.
How will I execute the Practicals?
In Cloud, We can help you setup the instance in cloud (AWS, Cloudshare & Azure), the same VMs can be used in this training.
Also, We will provide you with step-wise installation guide to set up the Virtual Box Cent OS environment on your system which will be used for doing the hands-on exercises, assignments, etc.
What are the payment options?
You can pay using NetBanking from all the leading banks. For USD payment, you can pay by Paypal or Wired.
What if I have more queries?
Please email to
What if I miss a class?
You will never lose any lecture. You can choose either of the two options:
1. View the class presentation and recordings that are available for online viewing through our site.
2. You can attend the missed session, in any other live batch free of cost. Please note, access to the course material will be available for lifetime once you have enrolled into the course. If we provide only one time enrollment and you can attend our training any number of times of that specific course free of cost in future
Do we have classroom training?
We can provide class room training only if number of participants are more than 6 in that specific city.
What is the location of the training?
Its virtual led training so the training can be attended using Webex | GoToMeeting
How is the virtual led online training place?
What is difference between DevOps and Build/Release courses?
Do you provide any certificates of the training?
We are not authorized for providing any officials certificates but we help all the students to get official certificates through proper assistant.
What if you do not like to continue the class due to personal reason?
You can attend the missed session, in any other live batch free of cost. Please note, access to the course material will be available for lifetime once you have enrolled into the course. If we provide only one time enrollment and you can attend our training any number of times of that specific course free of cost in future
Do we have any discount in the fees?
Our fees are very competitive. Having said that if we get courses enrollment in groups, we do provide following discount
One Students – 5% Flat discount
Two to Three students – 10% Flat discount
Four to Six Student – 15% Flat discount
Seven & More – 25% Flat Discount
Refund Policy

If you are reaching to us that means you have a genuine need of this training, but if you feel that the training does not fit to your expectation level, You may share your feedback with trainer and try to resolve the concern. We have no refund policy once the training is confirmed.

Why we should trust scmGalaxy for online training
You can know more about us on Web, Twitter, Facebook and linkedin and take your own decision. Also, you can email us to know more about us. We will call you back and help you more about the trusting scmGalaxy for your online training.

How to get fees receipt?
You can avail the online training reciept if you pay us via Paypal or Elance. You can also ask for send you the scan of the fees receipt.


Mode of Payment – Online Bank Transfer using NEFT | Paypal | | Wired Transfer | TransferWise

Registration is based on First Come basis and only confirmed registration would be considered.

Course Materials – Would be shared everyday end of the session every day

Lab – 70% of the training consist of lab.

Demo Class –  ScmGlaxy team does not believe in demo class concept as this is very difficult to evaluate any training/trainer very first day in 90 mins. Still, if you want to experience our training before enrollment, we may add you in any on-going live class based on your special request. If you want to know more about us – Click here

What if you miss the scheduled class? – If you miss the scheduled class, you can be a part of other ongoing batches any time in future free of cost.

scmGalaxy Advantage – If you enroll for our courses, you can attend for our training any number of times of that specific course free of cost

Tagged : / / / / / / / /

Top 5 git version control software in cloud


  1. Cloud Based
  2. cloudforge
  3. Assembla
  4. github
  5. bitbucket
  6. beanstalk
  7. Gitlab

Some of them can be hosted behind the firewall as well in your company premises.

  1. Gerrit
  2. Gitlab
  3. Github
Tagged : / / / / / / / / / / / / /

Chef Code Analysis using Foodcritic | Foodcritic Tutorial


What is Foodcritic? Foodcritic is a static linting tool that analyzes all of the Ruby code that is authored in a cookbook against a number of rules, and then returns a list of violations. In another word, Foodcritic is a helpful lint tool you can use to check your Chef cookbooks for common problems.

We use Foodcritic to check cookbooks for common problems:
Best practices
Common mistakes

Foodcritic does not
Foodcritic does not validate the intention of a recipe, rather it evaluates the structure of the code, and helps enforce specific behavior, detect portability of recipes, identify potential run-time failures, and spot common anti-patterns.

When Foodcritic returns a violation, this does not automatically mean the code needs to be changed. It is important to first understand the intention of the rule before making the changes it suggests.

Foodcritic has two goals:

To make it easier to flag problems in your Chef cookbooks that will cause Chef to blow up when you attempt to converge. This is about faster feedback. If you automate checks for common problems you can save a lot of time.

To encourage discussion within the Chef community on the more subjective stuff – what does a good cookbook look like? Opscode have avoided being overly prescriptive which by and large I think is a good thing. Having a set of rules to base discussion on helps drive out what we as a community think is good style.

Foodcritic built-in Rules
It comes with 47 built-in rules that identify problems ranging from simple style inconsistencies to difficult to diagnose issues that will hurt in production. If you want to see the list of rules, please navigate the url as below;

Foodcritic runs on Ruby (MRI) 1.9.2+ which depending on your workstation setup may be a more recent version of Ruby than you have installed. The Ruby Version Manager (RVM) is a popular choice for running multiple versions of ruby on the same workstation, so you can try foodcritic out without running the risk of damaging your main install

Foodcritic installation

Method 1
Install RVM as non-root user

$ sudo /etc/init.d/iptables stop OR sudo start ufw

$ curl -s | bash -s stable
$ sudo bash -s stable < <(curl -s )
$ curl -s | sudo bash -s stable
$ gpg –keyserver hkp:// –recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
$ command curl -sSL | gpg –import –

$ rvm get stable
$ rvm install ruby-2.2.3
$ gem install foodcritic

Method 2
Install ruby

$ sudo apt-get install ruby-2.2.3 (Ubantu)
$ sudo yum install ruby-2.2.3 (rhel)

Install foodcritic
> gem install foodcritic

Method 3
Alternatively install ChefDK which already includes foodcritic:

How to run Foodcritic?
You should now find you have a foodcritic command on your PATH. Run foodcritic to see what arguments it supports:

foodcritic [cookbook_path]
-r, –[no-]repl Drop into a REPL for interactive rule editing.
-t, –tags TAGS Only check against rules with the specified tags.
-f, –epic-fail TAGS Fail the build if any of the specified tags are matched.
-C, –[no-]context Show lines matched against rather than the default summary.
-I, –include PATH Additional rule file path(s) to load.
-S, –search-grammar PATH Specify grammar to use when validating search syntax.
-V, –version Display version.

How to setup Foodcritic with Jenkins

Configuring Jenkins to run foodcritic
To manually add a new job to Jenkins to check your cookbooks with foodcritic do the following:

  1. Ensure you have Ruby 1.9.2+ and the foodcritic gem installed on the box running Jenkins.
  2. You’ll probably need to install the Git plugin. In Jenkins select “Manage Jenkins” -> “Manage Plugins”. Select the “Available” tab. Check the checkbox next to the Git Plugin and click the “Install without restart” button.
  3. In Jenkins select “New Job”. Enter a name for the job “my-cookbook”, select “Build a free-style software project” and click “OK”.
  4. On the resulting page select “Git” under “Source Code Management” and enter the URL for your repo.
  5. Check the checkbox “Poll SCM” under “Build Triggers”.
  6. Click “Add Build Step” -> “Execute shell” under “Build”. This is where we will call foodcritic.
  7. Assuming you are using rvm enter the following as the command:
  8. #!/usr/bin/env rvm-shell 1.9.3
    foodcritic .
  9. Click “Save”.
  10. Cool, we’ve created your new job. Now lets see if it works. Click “Build Now” on the left-hand side.
  11. You can click the build progress bar to be taken directly to the console output.
  12. After a moment you should see that the build has been successful and foodcritic warnings (if any) are shown in your console output.
  13. Yes, for maximum goodness you should be automating all this with Chef. 🙂
  14. For more information refer to the instructions for building a “free-style software project” here:
  15. See also this blog post about rvm-shell which ensures you have the right version of Ruby loaded when trying to build with foodcritic:

Failing the build
The above is a start, but we’d also like to fail the build if there are any warnings that might stop the cookbook from working.

CI is only useful if people will act on it. Lets start by only failing the build when there is a correctness problem that would likely break our Chef run. We’ll continue to have the other warnings available for reference in the console log but only correctness issues will fail the build.

Select the “my-cookbook” job in Jenkins and click “Configure”.

Scroll down to our “Execute shell” command and change it to look like the following:

#!/usr/bin/env rvm-shell 1.9.3
foodcritic -f correctness .
Click “Save” and then “Build Now”.

More complex expressions
Foodcritic supports more complex expressions with the standard Cucumber tag syntax. For example:

#!/usr/bin/env rvm-shell 1.9.3
foodcritic -f any -f ~FC014 .
Here we use any to fail the build on any warning, but then use the tilde ~ to exclude FC014. The build will fail on any warning raised, except FC014.

You can find more detail on Cucumber tag expressions at the Cucumber wiki:

Tracking warnings over time
The Jenkins Warnings plugin can be configured to understand foodcritic output and track your cookbook warnings over time.

You’ll need to install the Warnings plugin. In Jenkins select “Manage Jenkins” -> “Manage Plugins”. Select the “Available” tab. Check the checkbox next to the Warnings Plugin and click the “Install without restart” button.

From “Manage Jenkins” select “Configure System”. Scroll down to the “Compiler Warnings” section and click the “Add” button next to “Parsers”.

Enter “Foodcritic” in the Name field.

Enter the following regex in the “Regular Expression” field:

^(FC[0-9]+): (.*): ([^:]+):([0-9]+)$

Enter the following Groovy script into the “Mapping Script” field:

import hudson.plugins.warnings.parser.Warning

String fileName =
String lineNumber =
String category =
String message =

return new Warning(fileName, Integer.parseInt(lineNumber), “Chef Lint Warning”, category, message);

To test the match, enter the following example message in the “Example Log Message” field:

FC001: Use strings in preference to symbols to access node attributes: ./recipes/innostore.rb:30
Click in the “Mapping Script” field and you should see the following appear below the Example Log Message:

One warning found
file name: ./recipes/innostore.rb
line number: 30
priority: Normal Priority
category: FC001
type: Chef Lint Warning
message: Use strings in prefe[…]ols to access node attributes
Cool, it’s parsed our example message successfully. Click “Save” to save the parser.

Select the “my-cookbook” job in Jenkins and click “Configure”.

Check the checkbox next to “Scan for compiler warnings” underneath “Post-build Actions”.

Click the “Add” button next to “Scan console log” and select our “Foodcritic” parser from the drop-down list.

Click the “Advanced…” button and check the “Run always” checkbox.

Click “Save” and then “Build Now”.

Add the bottom of the console log you should see something similar to this:

[WARNINGS] Parsing warnings in console log with parsers [Foodcritic]
[WARNINGS] Foodcritic : Found 48 warnings.
Click “Back to Project”. Once you have built the project a couple of times the warnings trend will appear here.


Tagged : / / / / / / / / / / /