The puppet is a configuration management tool used by system administrators and devops engineers to build and configure IT infrastructure. To understand it we should know a bit of history about how information technology evolved.
Make sure you either set your puppet's xScale to -100 or even better, click the option to mirror your webcam in Zoom. This way the puppet will turn the same way the performer's head turns and won't feel so backwards. On Mac you can use an app called CamTwist to create the virtual camera. Mac OS version: 10.6.4 or later Connection and power: Any available USB port on a Mac Software: GarageBand, Logic Pro, MainStage, Pro Tools (v. 9 or higher) or any Core Audio compatible application. The work is composed of a total of 4 acts with about 15 minutes. The images and characters of this work are based on one of China's intangible cultural heritage: Shadow Puppets, and the story and music of the game are based on another China's intangible cultural heritage: Beijing Opera.
- OSX Defaults Module for Puppet Provides classes for setting various defaults in Mac OS X. Also provides a means to set a 'recovery message' to be displayed on the login and lock screens.
- Punch, in full Punchinello, Italian Pulcinella, hooknosed, humpbacked character, the most popular of marionettes and glove puppets and the chief figure in the Punch-and-Judy puppet show. Brutal, vindictive, and deceitful, he is usually at odds with authority. His character had roots in the Roman clown and the comic country bumpkin.
Initials days of computers, machines are independent and time shared based with limited resources to work with. The DARPA aimed to develop a distributed network of computers which are independent of single point of failure to sustain attacks form USSR. They inter connected machines from different locations to communicate for reduction of single point of failure and effectively utilizing other system resources such as printers, scanners or for communicating with each other. From this idea networking of computers was evolved. What we are seeing as Internet today is all because of DARPA. And next version of internet is Internet of Things which started a decade back.
Sequence of things led to IoT:
Making most of the electronic devices intelligent is the work of IoT. Where I work now we build smart water meters which are intelligent enough to detect overflows and leaks in water system and report to us on real-time.
Punchy Puppets Mac Os 11
Similarly naming of hosts in a network too have a similar story. Where initially people used hosts file to communicate with other machines effectively. That is the reason this file is present in Windows, Mac and Linux as well. But as systems grows people came to a conclusion to implement centralizing naming for hosts as well and that is how Domain naming system came.
Sequence of things led to LDAP/AD:
If you see pattern, there was always accomplishing things locally in initial stages but at the end we have to improve by collaborating with other machines. 'Team work is great when compared to Individual work'
Similarly system administration is no exception to this evolution. As systems grow in number, the demand for system administration grows but they are limited by many short comings. Till cfengine(The first configuration management and orchestration tool) came no one thought about centralizing system administration. Most of system administration work is local to a machine by editing a configuration file or starting a service or even installing an application. Some Sr. Admins depends on some scripting languages to automate some of the system tasks using Shell and now a days with Python/Ruby/Go etc. If you are Python person in to system administration by this time you should know fabric.
Sequence led to centralized system administration:
Why we need configuration management tools?
As a system administrator our job is a tedious one with repetitive tasks. As infrastructure grows these tedious tasks will take a big chunk of our time. This is where automation comes in to picture. Many people started using scripting languages like Shell scripting, Perl scripting, Python scripting, Ruby, PHP or even new language Go to automate repeated tasks. But our infrastructure growth did not stopped to just couple of 100 machines and growing exponentially with the advent of Cloud. This is where we require centralized configuration management tools like Puppet and Ansible. These tools allows us to configure any server or even multiple servers remotly and with ease. This is a kind of big brother to fabric module in Python. Below are some advantages.
With puppet like tools we can build entire infrastructure without manual intervention in hours time which normally takes weeks or even months to set-up with huge financial inputs.
Ok what are disadvantages of scripting?
A scripting language can be used to automate simple to medium tasks but if you want to build complete infrastructure we have to take help from configuration management tools which can talk to different parts of an infrastructure. As these tools implemented different modules to talk to different parts of IT infra structure.
Why we require puppet?
Though cfengine is the first configuration tool it did not capture market. Puppet did that and most companies uses it now. But from my experience puppet is good for devops and Ansible is good for system administrators.
Who developed Puppet?
Luke Kanies is a system admin who thought scripting is limiting factor to automate system admin tasks and developed puppet as an open source project.
Whom puppet is meant for?
Puppet is meant for all the people who like to automate infrastructure tasks(devops) or orchestration tasks(sysops).
Where we can/can not use Puppet?
Ok, is puppet/Ansible only solution for system administration? The answer is no. There are still some tasks which we have to depend on manual system administration or scripting.
Is puppet/Ansible is only path to system admins?
Partially yes, IT is evolving and if you do not change your system administration skills you will be last in the row.
In our next post we will see how puppet works, again that will be an intro to Puppet. Keep looking at this space for more Puppet updates.
The following two tabs change content below.- Docker: How to copy files to/from docker container - June 30, 2020
- Anisble: ERROR! unexpected parameter type in action:
The recommendation for the VM download which is an OVA archive is to use either VMWare or Virtual Box as the host. As I have a Mac the VM Ware product is VM Ware Fusion which is not free. Virtual Box is free for personal use so I decided to use that.
I imported the OVA into Virtual Box (version 5) but found that when I started the VM it threw errors about not finding the scsi disk. I played around with different hardware configs in the Virtual Box settings but it didn't seem to make any difference.
UPDATE: I emailed the Puppet Learning Team to let them know about my issues and they asked me to gather some stats from the problem. However wouldn't you know it, I re-ran the import and it all worked fine in Virtual Box. Looking into it I think running the VM as 2 CPUs on my 2 core iMac was just a bit too much of a strain for it so it was losing CPU cycles and lost connection with the virtual disk.
As I normally use Parallels for VM hosting on my Mac I decided to see if there was a way to import the Puppet Learning VM into Parallels.
Parallels isn't free either but as I have already paid for it and use it to run other systems it made sense for me to try it once Virtual Box failed.
Converting OVA files into Parallels
There is a very handy knowledge Base article here on how to convert OVA files to vmx files for Parallels to then convert.
Following that KB article as a guide I first downloaded the OVF Conversion tools from the VMWare site (You'll need to register for an account on the VMWare site but it is free).
Punchy Puppets Mac Os X
Run the installer for the OVF tool and you are then ready to create the VMX and VMDK files from the OVA archive you have previously downloaded and unzipped.
Open a Terminal session and change directory to where the ova file is. Then run the following command.
Punchy Puppets Mac Os Catalina
/Applications/VMware OVF Tool/ovftool --lax puppet-2015.2.0-learning-2.30.ova puppet.vmx
Opening OVA source: puppet-2015.2.0-learning-2.30.ova
The manifest validates
Opening VMX target: puppet.vmx
Warning:
- Hardware compatibility check is disabled.
Writing VMX file: puppet.vmx
Transfer Completed
Warning:
- No manifest entry found for: 'puppet-2015.2.0-learning-2.30.ovf'.
- File is missing from the manifest: 'puppet-2015.2.0-learning-2.30.ovf'.
Completed successfully
Then launch Parallels Desktop and go to File -> Open and chose the puppet.vmx file. A message comes up saying it needs to convert the file. (Click the pic to embiggen)
From here click Convert and then choose the location where you want to store the converted VM.
You will see a warning like the one below saying Parallels cannot determine the VM Guest O/S but you can ignore that and just continue.
The conversion process takes a few minutes and at the end you will be asked if you want to start the VM to complete the conversion i.e. installed Parallels Tools.
Click No here as you want to change some settings on the network card before starting the VM.
Then choose Actions->Configure from the Puppet VM window (or click on the Gear in the top right, or go to the Parallels Desktop Control Center (sic) and click the gear there).
This will bring up the hardware config window for the VM. Confirm it has 2 CPUs and 2048Mb of memory and then click the Network tab and change the network card to be 'virtio' and the network type to be Bridged to the default adapter ( or choose a specific adapter if you know what you need for your Mac). Finally click on the Generate button by the mac address and generate a new one just to be on the safe side.
You can now start your VM and it should pick up its own IP address from your default DHCP using the same network settings as your Mac.
When the VM has started it will display the IP address it has and you can use this in a browser to access the first quest. You can also ssh into it from another terminal session on your Mac.
If there is no IP address shown after the http:// on the screen then double check the network settings in Parallels for the VM as it means it hasn't acquired an IP address. (You'll need to shutdown the VM to change most settings).
At this point you could ( and maybe should ) install Parallels Tools however as I don't want to mess with the VM I have left it until I feel it really needs them.