Question: The Nautilus DevOps team has zipped data on all app servers in Stratos DC that they want to extract to all app servers in the same data center. However, they want to extract that data in a different directory in the app servers. Perform the task using a Puppet programming file as per requirements mentioned below:
Create a puppet programming file games.pp under /etc/puppetlabs/code/environments/production/manifests on master node i.e on Jump Server. Using Puppet, archive resource and perform the tasks below:
There is a zip archive /usr/src/games/games.zip on all app servers. Unzip the archive to location /opt/games on each app server.
Note: Please perform this task using games.pp only, do not create any separate inventory file.
Please Note :- Perform the below commands based on your question server, user name & other details might differ . So please read task carefully before executing. All the Best 👍
root@jump_host
/# cd /etc/puppetlabs/code/environments/production/manifests/ root@jump_host
/etc/puppetlabs/code/environments/production/manifests# ll total 0 root@jump_host
/etc/puppetlabs/code/environments/production/manifests# root@jump_host
/etc/puppetlabs/code/environments/production/manifests# vi games.pp root@jump_host
/etc/puppetlabs/code/environments/production/manifests# cat games.pp class
archive_extractor { # Copy games.zip to /tmp directory to
extract and then cleanup afterwards archive { '/tmp/games.zip': source => '/usr/src/games/games.zip', extract => true, extract_path => '/opt/games', cleanup => true, }
} node
'stapp01.stratos.xfusioncorp.com', 'stapp02.stratos.xfusioncorp.com',
'stapp03.stratos.xfusioncorp.com' { include archive_extractor } root@jump_host
/etc/puppetlabs/code/environments/production/manifests# |
2. Validate the puppet files by below command.( refer Video below for clarity )
root@jump_host
/etc/puppetlabs/code/environments/production/manifests# puppet parser
validate games.pp root@jump_host
/etc/puppetlabs/code/environments/production/manifests# |
3. Login on all App server (stapp01, stapp02, stapp03 ) & switch to root user
root@jump_host
/# ssh tony@stapp01 The authenticity
of host 'stapp01 (172.16.238.10)' can't be established. ECDSA key
fingerprint is SHA256:w9cDRojDoclOxdu1W23Ns2HPyANPrDzhk9VfqtTDoJQ. ECDSA key
fingerprint is MD5:a8:3b:55:35:c2:5c:56:76:c8:d0:78:13:7a:4d:8b:e1. Are you sure you
want to continue connecting (yes/no)? yes Warning:
Permanently added 'stapp01,172.16.238.10' (ECDSA) to the list of known hosts. tony@stapp01's
password: [tony@stapp01
~]$ sudo su - We trust you
have received the usual lecture from the local System Administrator.
It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great
responsibility. [sudo] password
for tony: [root@stapp01
~]# |
4. Run Puppet agent to pull the configuration from puppet server
[root@stapp01
~]# puppet agent -tv Info: Using
configured environment 'production' Info: Retrieving
pluginfacts Info: Retrieving
plugin Info: Retrieving
locales Info: Loading
facts Info: Caching
catalog for stapp01.stratos.xfusioncorp.com Info: Applying
configuration version '1624860136' Notice:
/Stage[main]/Archive_extractor/Archive[/tmp/games.zip]/ensure: download
archive from /usr/src/games/games.zip to /tmp/games.zip and extracted in
/opt/games with cleanup Notice: Applied
catalog in 0.09 seconds [root@stapp01
~]# |
5. Validate the task by listing the destination folder
[root@stapp01
~]# ll /opt/games/ total 8 -rw-r--r-- 1
root root 33 Jun 28 05:53 games2.txt -rw-r--r-- 1
root root 54 Jun 28 05:53 games.txt [root@stapp01
~]# |
Happy Learning!!!!
0 Comments