Which is better for automation: Ansible, Chef or Puppet?

Many organizations are increasingly adopting the new collaborative culture in a way to achieve a competitive edge in modern IT domain.

Recent studies shows that the global DevOps market size reached USD 5.8 billion in 2021 and is projected to attain USD 14.97 billion by 2026 with a CAGR of 19.1% during the forecast period.

There are a number of latest DevOps configuration tools such as Chef, Puppet, and Ansible with various features available in the market. So, there is an inevitable need for the comparison of various configuration tools to identify the best tool for the success of DevOps projects.

What is Ansible?

Ansible is a latest configuration management tool which makes configuration management and coordination system of computer very easy to user.

What is Puppet?

Puppet is the oldest version of configuration management system and hard to understand for user.

What is Chef?

Chef is newer than Puppet but older version than Ansible so it is easier than Puppet but not than Ansible configuration system.

Here we do comparison of the top configuration tools including Ansible, Puppet and Chef:

First of all these tools are simple to use and robust capabilities to automate complex multi-tier IT application environment.

The differences between Ansible, Chef and Puppet are portrayed on the basis of different factors including Availability, Configuration Language, Setup and Installation, Ease of Management, Scalability, Interoperability, Tool Capabilities and Pricing:

IT departments with a strong DevOps workflow deploy software 200 times more frequently, with 2,555 times faster lead times, recover 24 times faster, and have three times lower change failure rates.

Conclusion

As you can see above, chef and puppet are the old players with the time whereas Ansible is new players in the market, and Ansible looks very promising with the growing trend. So, to conclude, all the three tools have their own advantages and categories in which they are better than the other. My only intention here is to help you in your decision making. So, it is necessary that you choose the appropriate tool which can be fitted according to your needs.

If you want to know more about Ansible, you can check out this blog on Ansible, Puppet and Chef with complete information.

If you are curious to learn and make a good career with this skill then I would suggest you please check out DevOpsschool.com.

Tagged : / / / / / /

Puppet Module Lab & Excercise – Part 1

Puppet Module Lab & Excercise – Part 1

  1. Write a puppet module to setup a webserver(httpd) only in RHEL and use the HEREDOC to craete a html code of index.html inside a directory called “/var/www/html/index.html”

  2. Write a puppet module to setup a webserver(httpd) only in RHEL and use the puppet template to create a html code of index.html inside a directory called “/var/www/html/index.html”

  3. Write a puppet module to install git, ntp and wget tools.

  4. Write a puppet module which has file named with deploy.sh under module’s files directory. the file should be copied to /opt

Tagged : / / / /

Puppet Program Lab & Excercise – Part 2

Puppet Program Lab & Excercise – Part 1

  1. Write a puppet Program to install package “git”, “ntp” and wget in RHEL.

  2. Which resource declaration can help us to deploy the “~/.ssh/authorized_keys” in 1000s of servers?

  3. Write a puppet Program to extract a tar ball in /opt

  4. Write a puppet Program to zip a directory which has multiple files.

  5. Write a puppet Program to reboot the machine?

  6. Write a puppet program to execute a shell command/script using puppet.

Tagged : / / / /

Puppet Program Lab & Excercise – Part 1

Puppet Program Lab & Excercise – Part 1

  1. Write a Puppet Program to create a file named with “file.txt” in /opt/ owner by ec2-user and execute permission?
  2. Write a Puppet Program to create a group called “scmgalaxy-admins”
  3. Write a Puppet Program to create a usser called “deploy” which should be a part of “scmgalaxy-admins” group.
  4. Wrire a Puppet Program and insert following in /etc/hosts
    10.4.5.5 test.scmgalaxy.com
  5. Write a puppet program to display following lines when Sends an arbitrary message to the agent run-time log.
    Welcome to scmGalaxy Puppet program
Tagged : / / / /

Puppet Training in Bangalore

For Puppet Training in bangalore, Pleae watch this space or email to info@scmgalaxy.com for more info.

Training Agenda – Click Here

Training Schedule – Click Here

Tagged : / / / / / /

Software Configuration Management Tools

SOFTWARE CONFIGURATION MANAGEMENT CONTROL TOOLS
Software Configuration Management Tools Blog

Welcome to the Software Configuration Management Tools Discussion Blog. Featured below are links to the most widely used SCM tools available on the market. Which tool has your origination implemented? How well does your tool funtion compared with others you have utilized in the past?

cmtoolsblog.blogspot.com/

PROJECT FOR APACHE ANT, APACHE MAVEN AND GIT
Create a three directory as below in repo as above; Directory Layout as below

harsha
…………..src
…………..test
…………..build.xml
…………..pom.xml
satya
…………..src
…………..test
…………..build.xml
…………..pom.xml
rajesh
…………..src
…………..test
…………..build.xml
…………..pom.xml
Masterbuild.xml
Masterpom.xml
lib
…………..build1
…………..build2
…………..build3
Using Ant
> Each sub directory, add 5 sample java program under “src” eg. under harsha/src.
> Each sub directory, add 5 sample junit test under “test” e.g under rajesh/test.
> Each sub directory has Apache ant build.xml and pom.xml
> Write a Masterbuild.xml which internally call 3 build.xml in the subdirectory and
> compile the source code and run the junit test cases.
> Package each subdirectory src code into jar
> Upload to github.com/microsoft-scmgalaxy/buildrelease3 under “lib/v1-2-3” folder

Using Maven
> Write a Masterpom.xml which internally call 3 pom.xml in the subdirectory and
> compile the source code and run the junit test cases.
> Package each subdirectory src code into jar
> Upload to github.com/microsoft-scmgalaxy/buildrelease3 under “lib/build1” folder
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

OFFERINGS/ACTIVITIES/PRACTICES UNDER SCM/BUILD/RELEASE/DEPLOYMENT
I am in the process of making a list of Offerings/Activities/Practices under SCM/build/release/Deployment area.

Can some someone please suggest some of those Offerings/Activities/Practices which come under SCM/build/release/Deployment.

i have attached a some of the listing in the document.

NAME OF THE TEAM WHICH HAS CM, BUILD, RELEASE, APPOPP AND DB ENGINEER
Hello Folks,

I am looking for ideal NAME OF THE TEAM which has CM, Build, Release, AppOpp Support and Database engineers. Few people Suggested that it should be DevOps and some of them voted for EnterpriceAppOps Team. What is the naming convention is being used in your company? Please comment for new name as well if you have some idea.

ESCAPING A PASSWORD USING MYSQLDUMP CONSOLE
when you use the quotes, make sure there is no space :
between -p and ‘PASSWORD’ or
between –password= and ‘PASSWORD’

correct:
mysql -u root -p’PASSWORD’
mysql -u root –password=’PASSWORD’

does not work:
mysql -u root -p ‘PASSWORD’
mysql -u root –password = ‘PASSWORD’

you can also define a variable and then use it for the command (still with no spaces in between) MSQLPWD=’PASSWORD’
mysql -u root -p$MSQLPWD
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

RELEASE VERSION PORTAL
Hi,

We have a complex product architecture having multiple integrated component making a complete solution.

Each component has its own development team and which provide their delivery to release management team

We have catered the version numbering system where all components are sent under one version in incremental manner.

Now in order to provide the high level visibility to the management about what version of which component is running in QA staging and prod i need to have url based dashboard.

How can achieve this using any simple free tool which enable the font end data form entry , and when someone click on specific version hyperlink it should redirect to release notes of that version in SharePoint.

We tried creating list in SharePoint but it didn’t work as we need environment name as columns and components as rows against which we have to enter version number in the grid table as hyperlinks.

something like

QA staging Prod
Component A 1.7.4 4.24.4 1.4.5
Component B 3.46.5 3.5.7 3.5.7
Component C 3.6.5 3.5.7 2.6.7

PUPPET
As anyone worked on puppet Configuration Management tool? Can you please provide the complete details about that or point me to any web portal which contains details except puppetlabs.com

CODE PROMOTION MODEL
Hi ,

I am looking for a code promotional model example like how to dev-> qa -> uat _ release.

How to maintain the branches ?
How to merge the code after the release if the fixes are there?

Can some give a real time example how it is maintained in other companies.

CM BEST PRACTICES WEB SITE:
www.cmbestpractices.com/

SAMPLE RESUME
Can any attache sample resume for build and release engineer.

I need for reference , not for projects but for technical data.

AUTOMATICALLY BCC ALL OUTGOING MESSAGES
automatically Bcc all outgoing messages

www.outlookcode.com/article.aspx?id=72

IBM RATIONAL CLEARCASE VERSION 7.1.1 RELEASE
TEST TOPICS
test topics

AFTER 9 YRS……………..
Hi Everyone,

If ur working as a build and release engineer what would be the growth or opportunity after 9 yrs.

Various path :

1) Can we become a release manger (do we have more opportunity )

2) Is there any certification for becoming release manager

To be clear if we work as developer or QA or System Engineer we may become architect or manager or may be any thing which have opportunity .

want clear way for build and release engineer

CANNOT OPEN THE DISK
Earlier my disk was full and my VMware stopped working.

Later when i start my VM after disk cleanup, i am getting following error. any idea?
Cannot open the disk ‘C:\Windows XP Professional-000002.vmdk’ or one of the snapshot disks it depends on.
Reason: The specified virtual disk needs repair.

BEST PRACTICE IN BRANCHING
Git does not dictate a process, so usually each project does. Common featurs:
–> Branch for features
–> Branch for fixes
–> Branch for experiments
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

SHELL OR PERL
When do we use the shell or perl scripting in build or configuration mgnt?

Any example?

Which can be preferd shell or perl for build and release carrer?

HOW TO HIRE THE BEST WEBSITE DESIGN COMPANY.
Once a business has been developed and set up properly, the need for a website arises. The website is the online identity of a company and it is necessary that you hire an experienced and professional website design company who can complete the task perfectly. While looking for the best website design company you should compare the prices as well as services offered by the various companies in the market. Before hiring a website design company, it is necessary to assemble the various ideas or thoughts of what your business needs and requirements are. Even if you have already hired a web designer, you still need your website to project your ideas. Creating a list of ideas and services that you plan to offer through your site is a good idea so that when you hire the design company, you are already prepared.

You should also make sure that the company you hire has a good track record in terms of customer satisfaction. This can be done by asking your friends who have utilized the firm’s services or by reading customer reviews online. Checking out their work portfolio can give you a better view of their work quality and their individual style. You can choose the services of a firm depending on whether or not the services offered meet your requirements and specifications and whether that design company has the ability and talent required to design your website you are thinking of.

COMPONENT OBSOLESCENCE TRACKING
Often obsolescence management is confined to availability of parts, but the issue of obsolescence management goes beyond. There are key issues related to it- design for the longest possible product life cycle, availability of electronic parts, skills to modify the product, product knowledge, system and domain, tools to modify the product and continuing Electronic Security and Support Issues. While the product is being designed it is important to identify the parts that pose the greatest obsolescence risk. Component Obsolescence Management has to be balanced against product features.

For example, opto-electronic displays (LCDs, OLEDs) commonly tend to become obsolete quickly despite big promises made by their vendors. The design phase will result in a list of parts that are at risk for obsolescence. A proactive approach must be taken to manage these at risk parts. This is possible only if the product is part of an expensive long life cycle product. An estimate is prepared for the requirement of at risk parts for the entire life cycle and these parts are procured. This is a costly process and it is important to correctly identify the risk parts and limit the procurement to them. It is also important to store the parts acquired properly. A less costly approach for handling at risk components is to do obsolescence tracking for them. For critical components, it is essential that the availability be proactively checked every month. Thus, you will want to buy enough components to make sure your product stays in production while your engineering team redesigns the product to not use the part about to go obsolete.

APPLICATION PACKAGING INTERVIEW TIPS…….
Hi,

Need advise for preparation of application packaging interview .

Currently i am working on Installshield.

What are the general questions do we expect for application packaging job ?

BUILD AND RELEASE ENGINEER JOB GROWTH ?
Hi guys,

I am working on build and release from past 1.5 years (70%) on installshield cruisecontrol,maven,finalbuilder,hudson on windows platform.

Apart form these i am working on .net (bug fixing).

I am in a confusion whether to change my designation to build and release engineer or software engineer.

How will be growth in build and release ?

UNIX COMMAND
Hi All,

What is the command to find error line in a file and 10 lines above abd 10 lines below error line?

Say if I have a error text at line 35, I want 10 lines above 35th line and below 10 lines below 35th line.

EC2 FTP CONNECTION PROBLEM – WINDOWS INSTANCE –
We’re trying ftp connection from EC2 ftp client to external our server.
But we encounterd the following ftp connection problem.

We need to solve this problem.
We are very much appreciated if you could give us the solutions.

1. Problem
EC2 ftp client fail to conect to ftp Server ,
pwd or cd command can work, but ls, put and get comand cannot work.
We need to use Windows ftp command for connection.
ftp client is EC2 and have Elastic IP address
ftp server is on our office side and have grobal IP address.

2. ftp client Environment
Amazon EC2
Windows 2003 Server Instance
Windows ftp command
EC2 Elastic IP address – zz.zz.zz.zz
EC2 Internal IP address – aa.aa.aa.aa
We used EC2 as ftp client, not ftp server.

3. ftp Server Environment
ftp server is on our office Japan.
it have a grobal IP address xx.xx.xx.xx.

4. firewall security on our office
Our office -> EC2(internet) : all tcp permitted
EC2(internet) -> Our office: tcp20/21 permitted.

5. EC2 security group setting.
tcp20/21 from any IP permitted

6. EC2 ftp client Log
ftp> open xx.xx.xx.xx
Connected to xx.xx.xx.xx
220 ftp server ready.
User (xx.xx.xx.xx:(none)):
—> USER yyyyy
331 Password.
—> PASS ecopass
230 User yyyyy logged in super!
ftp> cd LogFiles\DayLog
—> CWD LogFiles\DayLog
250 CWD command succesful.
ftp> ls
—> PORT aa,aa,aa,aa,9,134
200 PORT command successful.
—> NLST
150 ASCII data.

xx.xx.xx.xx means that ftp Server grobal IP address
aa,aa,aa,aa means that EC2 Internal IP address

7. ftp Server ftp log
Session 7, Peer xx.xx.xx.xx ftp Server session started
Session 7, Peer xx.xx.xx.xx ftp Server session started
Session 7, Peer xx.xx.xx.xx USER xxxx
Session 7, Peer xx.xx.xx.xx 331 User name ok, need password
Session 7, Peer xx.xx.xx.xx ftp: Login attempt by: xxxx
Session 7, Peer xx.xx.xx.xx PASS XXXXXXX
Session 7, Peer xx.xx.xx.xx 230 User logged in
Session 7, Peer xx.xx.xx.xx ftp: Login successful
Session 7, Peer xx.xx.xx.xx PORT aa,aa,aa,aa ,5,106 <- EC2 Internal IP Address Session 7, Peer xx.xx.xx.xx 200 PORT command successful. Session 7, Peer xx.xx.xx.xx NLST Session 7, Peer xx.xx.xx.xx Could not connect to peer. Aborting transfer. Session 7, Peer xx.xx.xx.xx 226 Closing data connection Session 7, Peer xx.xx.xx.xx QUIT Session 7, Peer xx.xx.xx.xx 221 Service closing control connection Session 7, Peer xx.xx.xx.xx ftp: Connection closed. 8. reason why It seems that EC2 Internal IP address is used when ftp Server tried to tansfer data to EC2 ftp client by TCP20. We tried ftp PASSIVE mode by literal command, but rejected by ftp Server. ftp> literal pasv
—> pasv
502 [pasv] Command not implemented.

W need to solve this problem.

Thank you for reading.

Message was edited by: mgcloud
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

DIRECTLY SUPPORTED BUILD TOOLS
Shell / command script
Ant
Groovy
OpenMake Meister
Maven
Maven2
Make
MsBuild
NAnt
Rake (Ruby)
Visual Studio (‘devenv’)
FinalBuilder
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

LIST OF TEST TOOLS
Agitar
CppUnit result rendering
JUnit result rendering
NUnit result rendering
QualityCenter test rendering
PHPUnit result rendering
PMD result rendering
Clover result rendering
Selenium result rendering
SilkCentral
MSTest result rendering
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

LIST OF ISSUE & PM INTEGRATIONS
Bugzilla
ClearQuest
Confluence
JIRA
Mingle
QualityCenter
Rally
Rubyforge.org
Scarab
Sourceforge.net
Trac
VersionOne
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

LIST OF SCM TOOLS
List of SCM Tools (Version Control Tools / Configuration Management Tools)

AccuRev
AlienBrain
Bazaar
BitKeeper
ClearCase
CA Harvest
CM Synergy
CVS
Dimensions
File system SCM
Git
HTTP file
MKS
Perforce (p4)
PVCS
SourceGear Vault
StarTeam
Subversion
Surround
Team Foundation Server
VSS
VSS Journal
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

QUESTION FROM RELEASE ENGINEER SCM PERSPECTIVE
1. How many major, minor releases a year per project?
2. How many customers per release per project?
3. How do you deliver the releases to the customers? – Is it physical media
4. distribution or Push/Pull mechanism from web or any other process?
5. Is the distribution CD/DVD creation process automated?
6. What is the size of the release deliverable?
7. What are the contents of a release?
8. How is the release bundle tested?
9. How many platforms are certified? How different are the release packages?
10. Is there any release check-list for cross-check?
11. Is any part of the release process automated?
12. Is there a need for i18n? If yes, is the i18n release handled separately?
13. In case of installers, is there installer testing? Is it automated?
14. Is the release schedule well-planned?
15. Are you delivering patches in well constructed and cost effective way?
16. Is there any release audit process in place?
17. How are you tracking your releases?
18. Is there any legal compliance in place while shipping the release to the customers?
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

QUESTION FROM BUILD ENGINEER SCM PERSPECTIVE
1. What is the build process adopted (automated/manual)?
2. Are there nightly builds?
3. Is there continuous integration?
4. Are there smoke and sanity tests at the end of the build?
5. What is the build acceptance criterion (BAT)?
6. What is the build duration? Is it optimal?
7. How are pre-conditions to the build verified?
8. Are there any build environment integrated automated unit test-cases?
9. Is there any enforcement tool on coding standards?
10. Is there any code coverage tool being used?
11. Are the post build activities automated?
12. Any additional practices (like checksum generation, signing the build artifacts) in place as part of the build?
13. Are there any scripting technologies used in automating build process?
14. Is Labeling strategy well-defined?
15. If any third party tool is being used for packaging, is that package creation process automated?
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

QUESTION FROM CONFIGURATION MANAGER SCM PERSPECTIVE
1. Do you know what files/documents should be delivered?
2. How do you track who changed what, when, where, and why?
3. How long does a build or release take?
4. Is there a Configuration Management Plan document?
5. Is there a tight integration between Version control tool and Bug/Change tracking tool?
6. How the parallel (if any) development is enabled? Any limitations with the current branching strategy?
7. Is this project development spanned across multiple sites? If so, what is your multi-site strategy?
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

QUESTION FROM TESTERS SCM PERSPECTIVE
1. Do you know what files/documents should be delivered?
2. How do you assess, and track the impact of a proposed change?
3. Can you show me what artifact versions went into a certain release?
4. How comfortable are you working with Bug/Change management tool?
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

QUESTIONS FROM DEVELOPERS IN SCM PERSPECTIVE
1. How do you baseline project artifacts?
2. Can you build your system reliably and repeatedly?
3. Explain your labeling scheme?
4. Can you show me what versions went into a certain release?
5. What does the version tree for this file look like?
6. How many product versions are you supporting at the moment?
7. What is the version control tool being used? Is it user friendly?
8. What is the bug tracking/change management tool being used? Is it user friendly?
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

QUESTION FROM PROJECT/DEVELOPMENT MANAGERS SCM PERSPECTIVE
How do you maintain all the artifacts together and version them?
Where are the people working on the project located?
What’s the difference between Developer CM and Release CM?
How do you assess, and track the impact of a proposed change?
How do you manage system integration of modules developed by individual developers?
How many product versions are you supporting at this moment?
Who is the designated Configuration Manager?
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

QUESTIONS TO IDENTIFY THE SUPPORTING TOOLS
What are the tools that you currently use in your work?
How is the integration among the above tools?
Are we using the tool features the way they are designed or intended?
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

QUESTIONS TO CHARACTERIZE THE PROJECT APPLICATION

  • What is the size of each project (duration, persons, person years, LOC)
  • What type (maintenance / enhancement / new development / prototype / feasibility)
  • What type of development model is being used?
  • Are we using any process models like UCM, RUP or any other?
  • Any industry/domain specific standards (like CMMI, ITIL etc.) to be followed?

Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

MIGRATION OF CLEARCASE TO GIT
Could anyone help me in this case, migrating CC vob to GIT.

Thanks & Regards,
Vijay

LOOKING FOR SUGGESTIONS FOR BUILD JOBS
Looking for suggestions for build jobs using Mercurial MQ

Hello

I’ve recently setup matrix projects to test Py libs (so far axis are
the version of the interpreter and versions of dependencies) .
Considering the fact that Hudson Mercurial plugin doesn’t provide
explicit support for MQ (AFAIK) I’m looking for suggestions so as to
find ways to work around this limitation in order to achieve the
following

1. First of all I’d like to test each and every revision
committed to the repository . I think this could be
achieved by parameterizing the build job and
supplying individual revision number
to the build in the Hg hook that triggers it
from remote (is there a better way to do this ?)
2. I’d like to start a variable number of jobs , more
precisely one job for each patch in the queue .
The goal is to ensure that every patch will work
if applied against repository trunk (have
no idea of how to do this …)
3. I need to copy some (script) files to the workspace
before starting the build (and I don’t use neither Ant
nor Maven, nor MSBuild, nor … I just need to copy
static files ;o) .
4. I need to publish in the build results page
some files generated
during the build (binaries, logs, … ) and browse
(some of) them inside Hudson site . They should
be accessible from the page showing build results
e.g. myserver.com/job/jobname/49

(I suppose this is the «Archive the artifacts» +
«Files to archive» combination … isn’t it ? )
5. I need to execute custom scripts only if the build
succeds.

Please ideas and suggestions about how to do this (and probably
plugins that need to be installed, …) will be very welcomed.

Thnx in advance !

FINDING COMPUTER NAME USING IP
I need to find the computer name of one PC connected in LAN (joined to domain).
I have the IP address of terminal. how i will find the computername?

kindly advice
Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

ARTICLE FORMATTING
Where can I find the help for formatting the articles? Like syntax for adding code, images, url etc.

Thanks,
-Tushar

UNPUBLISHED ARTICLES
I have posted 2 articles but looks like not published yet.

Please let me know if these requires any modifications.

HOW TO LESSEN DEPLOYMENT TIME?
Hi All,

Can anyone please let me know any technique in which we can reduce the deployment time from Dev environment to other environment, we currently use robocopy for copying files.

Please share your ideas/ suggestions.

A FORUM TO DISCUSS APPLICATION PACKAGING
A Forum to discuss Application packaging related issues, troubleshoot, queries, tools and share knowledge. Covers all installer software.

www.packaginggalaxy.com

www.packaginggalaxy.com – A Forum to discuss Application packaging related issues, troubleshoot, queries, tools and share knowledge. Covers all installer software such as

wyBuild & wyUpdate
WiX
Wise Package Studio
Wise Installation Express 7
Wise Installation Studio 7
Windows Installer
VISE X
Tarma QuickInstall 2
Tarma Installer 5
Tarma ExpertInstall 3
Smart Install Maker
Setup Factory
SetupBuilder Professional Edition
Scriptlogic Desktop Authority MSI Studio
Scriptlogic Desktop Authority MSI Studio
Remote Install Mac OS X
QSetup
Nullsoft Scriptable Install System (NSIS)
MSI Package Builder
LANrev InstallEase
JExpress
Instyler Setup
Installer VISE
InstallShield
InstallAnywhere
InstallAce
Install Creator (Pro)
InstallBuilder
InstallAware
Inno Setup
Iceberg
Excelsior Delivery
Excelsior Installer
DreamShield
DeployMaster
CreateInstall Free
CreateInstall Light
CreateInstall
ClickInstall
Advanced Installer

Tagged : /

Top Questions on Server Configuration Management Tools Chef, Puppet, and Ansible

 

server-configuration-management-tools-chef-puppet-and-ansible

Source – http://hub.scalr.com/blog/top-questions-on-server-configuration-management-tools-chef-puppet-and-ansible-2

As a quick recap, configuration management tools enable companies to standardize and automate their infrastructure. Through standardization, you can build systems that are platform independent (i.e. instead of relying on AMIs or provider specific toolsets). These tools also make it easy reproduce servers for scaling or testing, and recover from disaster quickly by defining a proper application state. For example, if servers are not in that defined state when each server is checked, they are restored to their proper state. In addition, this standardization makes it easy to onboard new developers.

While the language across configuration management tools is different, the concepts are the same. At the fundamental level in each configuration tool, a resource represents a part of the system and its desired state, such as a package that should be installed, a service that should be running, or a file that should be generated.

In Chef, a recipe is a collection of resources that describes a particular configuration or policy. These collections are called playbooks in Ansible, and manifests in Puppet. These collections describe everything that is required to configure part of a system. Collections install and configure software components, manage files, deploy applications, and execute other recipes. We go into more detail in our blog post here.

Here are the top questions we got from the community:

How is the concept of master/agent configuration better (or not) than agentless, when it comes to infrastructure as code?

Chef and Puppet are master/agent configuration systems, while Ansible is an agentless system. The historic argument is that the agent-based installation process is difficult –  you have to set up the master, and then set up the agents on your nodes so that they know about the master. If you’ve got servers with diverse linux distros, on different versions of Windows, etc., installation can get tricky. Though, because they’re logging every few minutes, agent-based systems are powerful for advanced monitoring. At the end of the day this really is based on personal preference and what company requires. If your infrastructure is beefy and heavily standardized, installation on nodes isn’t complicated so use agent-based systems. If you have servers that run Python, try agentless.

Are these configuration management systems like MicroSoft System Center Configuration Manager (SCCM) but used for local and cloud?

This is like MS SCCM, but open-source and paid for per node. For those who haven’t used it, MicroSoft System Center Configuration Manager (SCCM) is used for infrastructure provisioning, monitoring, and automating workflow processes (usually sysadmin stuff). SCCM is a powerhouse in the enterprise space. While it can manage end clients on non-Windows servers, the server console portion of SCCM must be hosted and run on a Windows server machine. The reason other orchestration/configuration systems win here is that you pay on a per-node basis and you’re not totally tied into Windows Server’s licensing agreements. In other words, open-source vs proprietary. And with Chef/Puppet/Ansible the thinking is more in resources as opposed to SCCM, which is more in files and terminal commands.

An attendee commented on using SCCM:

 We really like Ansible because of the none-agent requirement. For Windows patching we utilize System Center Configuration Manager, and even though System Center can provide patching to Linux we have run into issues with SCCM agent staying healthy and running on our Linux systems. We have also run into when the SCCM admins have made changes it broke SCCM agent on a majority of our Linux servers. Our Linux patching process has been highly manual up to this point but we are seeking to automate this to free up staff time to be better directed at other support tasks, which is why were are reviewing several solutions. The non-agent aspect is highly desirable in our situation because of past experience with SCCM agent. I just wanted to provide that feedback so others that have not experienced agent issues with other deployment solutions may want to keep that in mind.”

If we have to pick a tool dependent on whether we deploy on cloud or on-premise – which of these tools would be a better choice?

We would recommend looking into network access requirements for each tool. If you have an agent that checks in periodically with a central master management piece, that is likely to work better then SSH which requires direct path / path through lots of proxies. 

One attendee mentioned in the comments: “[In regards to] SSH vs Agent – Agent is more secure where SSH not an option.

What happened to cfengine? This tool used to be mentioned alongside Chef and Puppet. 
Version 3 of cfengine is a complete revamp, but it compared to other configuration management tools the brand and community outreach isn’t strong, and does little the others don’t do better.

How does StackStorm compare to the other orchestrators being reviewed?
StackStorm labels itself more of an automation platform, or a DevOps workflow tool that handles provisioning and configuring servers but also leans on automatic and event driven services that plugs into Jenkins and other CI/CD workflows.

From one attendee that had used all three: “For us, getting the Server engineers to adopt Chef has been very difficult. It grew organically on the Dev side of the house. Ansible appears to be something that guys without Dev skills could pick up more easily. Just [my] perception.”

Can I run tasks in parallel with Ansible rather than running it serially (say 50 servers being updated with a patch)?

The default method is to run each task across all servers in parallel, meaning that it will run the first task (e.g. installing Git) on all servers in a group, and once all servers respond with a success, failure, or unchanged response, Ansible will move to the next task on all servers. It doesn’t run on a server, wait, move on to the next, it will run on all servers at once over SSH. If you want to deploy updates in batches, you can run a percentage of servers in a group (e.g. 50%, by listing it in the playbook as serial: 50%).

An attendee made this comment as we mentioned Ansible:

I have attended a presentation from RedHat regarding Ansible that states [that Ansible scales well]. They have large scale hosting companies that on the fly spin up servers and perform patching for their servers via Ansible. The one mentioned had over 50,000 servers and it seemed to handle the volume / scale fine. I of course don’t know everything about Puppet or Chef or Salt, but one thing I find really nice about Ansible is the ability to perform rolling updates / tasks. So if you say had 1000 servers you can say you want to run 10% or 100 at a time and keep it rolling until all 1000 are done. It can be stated by percentage or defined number…I am sure I sound a bit biased but one of the main reasons Ansible is high on our list right now is the fact that it is agentless and does not really consume resources.”

With Ansible, how can we handle the security implications about allowing passwordless ssh to a root account on all systems? What mechanisms are there for access control and auditing?

There are definitely security implications if you are going to allow passwordless ssh. So it’s on the company to ensure that security groups or NSGs are well defined. We should also mention that the passwordless ssh is only enabled on the machine you are running Ansible commands and playbooks from, so if anything consider that workstation to be your weak point. Make sure SSH access is only permissible through your IP. As an alternative solution to connecting via SSH, if you use docker, Ansible allows you to deploy playbooks directly into Docker containers using the local Docker client. All you need is a user inside that container.

Does ansible run single-threaded or is it addressing multiple servers in a group asynchronously?
Ansible runs on each host in parallel. This means that it attempts to run your tasks on all servers defined at the top of the playbook before moving on to the next task.

One user said in regards to all three tools: “Ansible seems better for “orchestration” and Puppet/Chef are really good for “Configuration Management”.  Ansible can be used to stop applications and databases and then run Puppet and then start applications and databases.

Lastly, we got a surprise question from the audience on Jenkins, a CI/CD pipeline tool that can be used in conjunction with tools like Chef to completely automate the infrastructure behind your applications.

What is the alternative of Jenkins?
While we recommend Jenkins, If you’re a Ruby shop, Capistrano is geared towards your deployments. If you live in the AWS world, you can try using the CodeCommit/CodeDeploy/CodePipeline toolset. If you’re looking for a provider agnostic solution, CircleCI is great. If your workflows revolve around Atlassian, try Bamboo. 

If you are unsure of what CI/CD pipeline tool to use, or how they work, we will be hosting a webinar on Jenkins as part of our on-going series on infrastructure-as-code.

Tagged : / / / / / / /

Top 10 Scripting Languages in DevOps | List of Best Scripting Languages

top-10-scripting-languages-in-devops
This is the time of DevOps in software industry and DevOps uses different different languages for deployment automation and for software development. This is the reason if you are a DevOps professional and want to be succeed in DevOps role than command on scripting languages is must. But, one can not be a master of all. Right? Therefore, In this article I am going to share a list of top 10 scripting languages which will be useful for your DevOps journey.
But before that let’s have a quick look on Scripting language.
Scripting languages are programming languages that communicate and integrate with other programming languages. In other words, scripting languages controlls interactive programs operations by giving it sequence of work to execute by one command at a time.
Now, let’s look on to the list of top 10 scripting languages

1. Microsoft PowerShell

Microsoft PowerShell

Microsoft powershell or powershell is belongs to Microsoft and an open source cross platform scripting language. If you have application infrastructure with windows than powershell is must for you. This scripting language is designed for system admins.
2. Puppet

Puppet

Puppet is a configuration management tool and it has it’s own declarative language to describe system configuration. It runs on Linux, Unix-like and also on Windows. This one is available under Apache 2.7.0 and General Pubic license.  Puppet uses a custom declarative language, it just needs to specify ‘what’ action needs to be performed on the resources.
3. Chef

Chef

Chef is basically known as configuration management which belongs to chef is also a scripting language which is designed by David Morgan. It makes programs look like cooking any food.
4. Bash

Bash

Bash is basically a command language which is available in open source and written by Brian Fox in the year 1989. It can read scripts and Bash is the most commonly used Unix shell. Bash supports Linux, Windows and Mac OS.
5. Ruby

Ruby

Ruby is amongst one of the best programming language but it is also a scripting language which is written by Yukihiro Matsumoto in the year 1995. Ruby supports cross platforms and it is available under GPL and BSD license. It supports multiple programming paradigms, including functional, object-oriented, and imperative.
6. Ansible

Ansible

Ansible is known as configuration management and application deployment tool but it is also amongst top scripting languages. This language is belongs to Ansible Inc. and written by their community members. It supports Linux, Unix-like and Windows operating system.
7. Perl

Perl

Perl is a scripting language which is used for advanced web applications development. Perl is written by Larry Wall and first released in the year 1987. Perl supports cross platforms. Perl is available under general public license.
8. Python

Python

Python is also amongst the top scripting languages which is used for high level of programming. It was first released in the year 1991 by Guido van Rossum. python is available under Python Software Foundation License. It’s supports Cross-platform.
9. Go language

Go language

Go scripting language belongs to the Internet giant Google. This scripting language is written by Robert Griesemer, Rob Pike and Ken Thompson and it was released in the year 2009. It supports  Linux, macOS, FreeBSD, NetBSD, OpenBSD, Windows, Plan 9, DragonFly BSD and Solaris operating systems. It is available in open source.
10. Groovy

Groovy

Groovy can be used as a scripting language and it is also consider as a top scripting languages for DevOps professionals. It was designed by James Strachan and developed by Guillaume Laforge, Jochen Theodorou, Paul King and Cedric Champeau. It was first released in the year 2003 and available under Apache license. It supports Java platform.
Do you agree with this list? If not than feel free to respond in the comment box with your own take on the most essential scripting languages. One more thing, I would like to add here, if you need help to learn all these scripting languages and DevOps courses than scmGalaxy can help you in this. scmGalaxy is a community of DevOps professionals who are well experienced in this domain.
Tagged : / / / / / / / / / / / / / / / / / / /

Top 10 DevOps Tools which is mostly used by DevOps Engineers | scmGalaxy

top-10-devops-tools
DevOps is an important component for software industry today. Developing and implementing a DevOps culture helps to focus IT results and to save time and money as the gap between developers and IT operations teams closes. Just as the term and culture are new, so are many of the best DevOps tools these DevOps engineers use to do their jobs efficiently and productively. To help you in your DevOps process, we have searched and created this list of DevOps tools which is mostly used by DevOps Engineers in their projects.

1. Chef

devops-tool-chef

Chef is an extremely popular tool among DevOps engineers. From IT automation to configuration management, Chef relies on recipes and resources so you can manage unique configurations and feel secure knowing Chef is checking your nodes and bringing them up to date for you.
Key Features:
  • Manage nodes from a single server
  • Cross-platform management for Linux, Windows, Mac OS, and more
  • Integrates with major cloud providers
  • Premium features available

2. Jenkins

devops-tool-jenkins

 

An extensible continuous integration engine, Jenkins is a top tool for DevOps engineers who want to monitor executions of repeated jobs. With Jenkins, DevOps engineers have an easier time integrating changes to projects and have access to outputs to easily notice when something goes wrong.
Key Features:
  • Permanent links
  • RSS/email/IM integration
  • After-the-fact tagging
  • JUnit/TestNG test reporting
  • Distributed builds
3. Puppet

devops-tool-puppet

Puppet is an open-source configuration management tool. It runs on many Unix-like systems as well as on Microsoft Windows, and includes its own declarative language to describe system configuration. DevOps engineers often rely on Puppet for IT automation. Get a handle on configuration management and software while making rapid, repeatable changes with Puppet.
Key Features:
  • Automatically enforce consistency of environments
  • Works across physical and virtual machines
  • A common tool-chain
  • Support key DevOps best practices, including continuous delivery

4. Ant

 

devops-tool-ant

A Java library and command-line tool, Apache Ant looks “to drive processes described in build files as targets and extension points dependent upon each other.” This build automation tool is one that saves DevOps engineers a great deal of time.
Key Features:
  • Supplies a number of built-in tasks for compiling, assembling, testing, and running Java applications
  • Builds non-Java applications, such as C or C++ applications
  • Pilot any type of process which can be described in terms of targets and tasks
  • Extremely flexible and does not impose coding conventions or directory layouts to the Java projects which adopt it as a build tool

5. Apache Maven

devops-tool-apache-maven

DevOps engineers can manage a project’s build, reporting, and documentation from a central piece of information with Apache Maven. A software project management and comprehension tool, Maven has been a reliable tool for DevOps engineers.
Key Features:
  • Simple project setup follows best practices
  • Easily work with multiple projects at one time
  • Large repository of libraries and metadata that continue to grow
  • Extensible, with the ability to write plugins in Java or scripting languages
6. Logstash

devops-tool-logstash

For open source log processing, search, and analytics, Logstash is a popular tool among DevOps engineers. Because Logstash is licensed under Apache 2.0, you can use it in the way that best suits your needs.

Key Features:
  • Collects, parses, and stores logs for later use
  • Includes a web interface for searching and drilling into all of your logs
  • Ship logs from any source, parse them, timestamp them correctly, index them, and search them

7. Docker

devops-tool-docker

 

An open platform for distributed applications, Docker is an application for DevOps engineers who want to “build, ship, and run any app, anywhere.” With Docker, you can quickly assemble apps from components and work collaboratively.
Key Features:
  • Assemble multi-container apps and run on any infrastructure
  • Compose an app using both proprietary containers and Docker Hub Official Repos
  • Manage all containers of an app as a single group
  • Cluster an app’s containers to optimize resources and provide high-availability
8. New Relic

devops-tool-new-relic

With New Relic APM, DevOps engineers spend less time monitoring applications and more time on building and deploying. A popular, reliable tool, New Relic APM is a great choice for DevOps engineers.
Key Features:
  • Helps in the build, deployment, and maintenance of web software
  • Application monitoring in one place
  • Cross application and transaction tracing
  • Database and availability and error monitoring
9. Gradle

devops-tool-gradle

 

Gradle is a robust tool for automating building, testing, publishing, and deploying software packages and other projects. With the combined power and flexibility of Ant and Maven, Gradle is an open source build automation system which is perfect and very useful for DevOps engineers.
Key Features:
  • Declarative builds and build-by-convention
  • Language for dependency-based programming
  • Structure your build
  • Deep API
  • Multi-project builds
  • Ease of migration
10. Git 

devops-tool-git 

 

Git is a mature, actively maintained open source project originally developed in 2005 by Linus Torvalds, the famous creator of the Linux operating system kernel. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Key Features:
  • Working offline
  • Fast to Work With
  • Repositories Are Smaller
  • Moving or Adding files
  • Ignore Certain Files
  • Branches
  • Check the Status of Your Changes
  • Stash Branches
  • Cherry Pick Changes from Branches
  • Find version that Introduced a bug using Binary Search
These are the most popular DevOps tools which are used by DevOps engineers or practitioners these days. But to make most out of these tools you need to have proper knowledge of these tools like installation process, implementation process, where to you use, how to use, troubleshooting and much more. So, if you think you need help or training for these tools or for DevOps related helps than we are here to assist you with our industry expertise professionals.
Tagged : / / / / / / / / / / / / / / / / / / / /

How to Setup Puppet Learning VM – Complete Process/Guide

setup-a-puppet-learning-vm
Download the VM(Zip File here)

 

Minimum requirements

  • Internet-enabled Windows, OS X, or Linux computer with 10GB free space and a VT-x/AMD-V enabled processor.
  • Up to date virtualization software. See the setup instructions below for details.

Setting up the Learning VM

  1. Before beginning, you may want to use the MD5 sum provided at the VM download page to verify your download. On Mac OS X and *nix systems, you can use the command md5 learning_puppet_vm.zip and compare the output to the text contents of thelearning_puppet_vm.zip.md5 file provided on the download page. On Windows systems, you will need to download and use a tool such as the Microsoft File Checksum Integrity Verifier.

  2. Get an up-to-date version of your virtualization software. We suggest using either VirtualBox or a VMware application appropriate for your platform. VirtualBox is free and available for Linux, OS X, and Windows. VMware has several desktop virtualization applications, including VMWare Fusion for Mac and VMware Workstation for Windows.

  3. The Learning VM’s Open Virtualization Archive format must be imported rather than opened directly. Launch your virtualization software and find an option for Import or Import Appliance. (This will usually be in a File menu. If you cannot locate an Import option, please refer to your virtualization software’s documentation.)

  4. Before starting the VM for the first time, you will need to adjust its settings. We recommend allocating 4GB of memory for the best performance. If you don’t have enough memory on your host machine, you may leave the allocation at 3GB or lower it to 2GB, though you may encounter stability and performance issues. Set the Network Adapter to Bridged. Use an Autodetect setting if available, or accept the default Network Adapter name. (If you started the VM before making these changes, you may need to restart the VM before the settings will be applied correctly.) If you are unable to use a bridged network, we suggest using the port-forwarding instructions provided in the troubleshooting guide.

  5. Start the VM. When it is started, make a note of the IP address and password displayed on the splash page. Rather than logging in directly, we highly recommend using SSH. On OS X, you can use the default Terminal application or a third-party application like iTerm. For Windows, we suggest the free SSH client PuTTY. Connect to the Learning VM with the login root and password you noted from the splash page. (e.g. ssh root@<IPADDRESS>) Be aware that it might take several minutes for the services in the PE stack to fully start after the VM boots. Once you’re connected to the VM, we suggest updating the clock with ntpdate pool.ntp.org.

  6. You can access this Quest Guide via a webserver running on the Learning VM itself. Open a web broswer on your host and enter the Learning VM’s IP address in the address bar. (Be sure to use http://<ADDRESS> for the Quest Guide, as https://<ADDRESS> will take you to the PE console.

 

Troubleshooting

For the most up-to-date version of this troubleshooting information, check the GitHub repository. If nothing here resolves your issue, feel free to email us at learningvm@puppetlabs.com and we’ll do our best to address your issue.

For issues with Puppet Enterprise that are not specific to the Learning VM, see the Puppet Enterprise Known Issues page.

The cowsay package won’t install

The Learning VM version 2.29 has an error in the instructions for this quest. The cowsay package declaration should includeprovider => 'gem', rather than ensure => 'gem'.

If you continue to get puppet run failures related to the gem, you can install the cached version manually: gem install /var/cache/rubygems/gems/cowsay-0.2.0.gem

I completed a task, but the quest tool doesn’t show it as complete

The quest tool uses a series of Serverspec tests for each quest to track task progress. Certain tasks simply check your bash history for an entered command. In some cases, the /root/.bash_history won’t be properly initialized, causing these tests to fail. Exiting the VM and logging in again will fix this issue.

It is also possible that we have written the test for a task in a way that is too restrictive and doesn’t correctly capture a valid syntactical variation in your Puppet code or another relevant file. You can check the specific matchers by looking at a quest’s spec file in the ~/.testing/spec/localhost/ directory. If you find an issue here, please let us know by sending an email tolearningvm@puppetlabs.com.

Password Required for the Quest Guide

The Learning VM’s Quest Guide is accessible at http://<VM's IP Address>. Note that this is http and not https which is reserved for the PE console. The PE console will prompt you for a password, while no password is required for the Quest Guide. (The Quest Guide includes a password for the PE console in the Power of Puppet quest: admin/puppetlabs)

I can’t find the VM password

The password to log in to the VM is generated randomly and will be displayed on the splash page displayed on the terminal of your virtualization software when you start the VM.

If you are already logged in via your virtualization software’s terminal, you can use the following command to view the password: cat /var/local/password.

Does the Learning VM work on vSphere, ESXi, etc.?

Possibly, but we don’t currently have the resources to test or support the Learning VM on these platforms.

My puppet run fails and/or I cannot connect to the PE console

It may take some time after the VM is started before all the Puppet services are fully started. If you recently started or restarted the VM, please wait a few minutes and try to access the console or trigger your puppet run again.

Also, because the Learning VM’s puppet services are configured to run in an environment with restricted resources, they are more prone to crashes than a default installation with dedicated resources.

You can check the status of puppet services with the following command:

systemctl --all | grep pe- 

If you notice any stopped puppet-related services (e.g. pe-puppetdb), double check that you have sufficient memory allocated to the VM and available on your host before you try starting them (e.g. service pe-puppetdb start).

If you get an error along the lines of Error 400 on SERVER: Unknown function union... it is likely because the puppetlabs-stdlib module has not been installed. This module is a dependency for many modules, and provides a set of common functions. If you are running the Learning VM offline, you cannot rely on the Puppet Forge’s dependency resolution. We have this module and all other modules required for the Learning VM cached, with instructions to install them in the Power of Puppet quest. If that installation fails, you may try adding the --force flag after the --ignore-dependencies flag.

I can’t import the OVA

First, ensure that you have an up-to-date version of your virtualization software installed. Note that the “check for updates” feature of VirtualBox may not always work as expected, so check the website for the most recent version.

The Learning VM has no IP address or the IP address will not respond.

If your network connection has changed since you loaded the VM, it’s possible that your IP address is different from that displayed on the Learning VM splash screen. Log in to the VM via the virtualization directly (rather than SSH) and use thefacter ipaddress command the check the current address.

Some network configurations may still prevent you from accessing the Learning VM. If this is the case, you can still access the Learning VM by configuring port forwarding.

Change your VM’s network adapter to NAT, and configure port forwarding as follows:

Name   -   Protocol - HostIP -   HostPort - GuestIP - GuestPort SSH        TCP        127.0.0.1  2222                 22 HTTP       TCP        127.0.0.1  8080                 80 HTTPS      TCP        127.0.0.1  8443                 443 GRAPHITE   TCP        127.0.0.1  8090                 90 

Once you have set up port forwarding, you can use those ports to access the VM via ssh (ssh -p 2222 root@localhost) and access the Quest Guide and PE console by entering http://localhost:8080 and https://localhost:8443 in your browser address bar.

I can’t scroll up in my terminal

The Learning VM uses a tool called tmux to allow us to display the quest status. You can scroll in tmux by first hitting control-b, then [ (left bracket). You will then be able to use the arrow keys to scroll. Press q to exit scrolling.

Running the VM in VirtualBox, I encounter a series of “Rejecting I/O input from offline devices”

Reduce the VM’s processors to 1 and disable the “I/O APIC” option in the system section of the settings menu.

Still need help?

If your puppet runs still fail after trying the steps above, feel free to contact us at learningvm@puppetlabs.com or check the Puppet Enterprise Known Issues page.

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