<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aravind</title>
    <description>The latest articles on DEV Community by Aravind (@aravindjeevagan).</description>
    <link>https://dev.to/aravindjeevagan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F601405%2F589ca8be-4fdb-4420-aad9-7dad0a8c8149.jpg</url>
      <title>DEV Community: Aravind</title>
      <link>https://dev.to/aravindjeevagan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aravindjeevagan"/>
    <language>en</language>
    <item>
      <title>Azure DevOps : CICD using Azure DevOps demo generator</title>
      <dc:creator>Aravind</dc:creator>
      <pubDate>Thu, 25 Mar 2021 10:05:31 +0000</pubDate>
      <link>https://dev.to/aravindjeevagan/azure-devops-cicd-using-azure-devops-demo-generator-16hn</link>
      <guid>https://dev.to/aravindjeevagan/azure-devops-cicd-using-azure-devops-demo-generator-16hn</guid>
      <description>&lt;h1&gt;
  
  
  What is Azure DevOps demo generator?
&lt;/h1&gt;

&lt;p&gt;Azure DevOps demo generator provides different templates, from which you can build and deploy different applications. These template comes which Source code , work items and pipelines&lt;/p&gt;

&lt;p&gt;In this blog I will provide all the information needed to start using Azure DevOps demo generator and Azure DevOps platform for building and deploying your application using CICD pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;1.Microsoft account&lt;/p&gt;

&lt;p&gt;2.Login to Azure Devops demo generator platform using same account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.toLink"&gt;https://azuredevopsdemogenerator.azurewebsites.net/&lt;/a&gt;   &lt;/p&gt;

&lt;p&gt;3.Login to azure DevOps as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.toLink"&gt;https://azure.microsoft.com/en-us/services/devops/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;4.Local machine having Tomcat running.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Once you login into your azure Devops platform, Create your own organization. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: All these can be done for free, no subscription needed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now go to Azure Devops demo generator, there are plenty of templates available, for this demo I will be choosing a Java based application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NgaT-4V0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664129435/s9U7My4Cc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NgaT-4V0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664129435/s9U7My4Cc.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you click on to create project , all the details along with source code and pipeline will be cloned to your DevOps platform.&lt;/p&gt;

&lt;p&gt;Now by going through Azure DevOps ,you can able to see the source code ,build and release pipeline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d50WTBKM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664216835/oI0AGRj7U.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d50WTBKM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664216835/oI0AGRj7U.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating build pipeline :
&lt;/h2&gt;

&lt;p&gt;Here you are already provided with build pipeline ,either you can modify it or you can use the same pipeline or create new pipeline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3OzWYWnx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664312937/Mkek-SQ6V.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3OzWYWnx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664312937/Mkek-SQ6V.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Tasks involved in this pipeline
&lt;/h1&gt;

&lt;p&gt;1.Getting your source code from Azure repos.&lt;/p&gt;

&lt;p&gt;2.Building your code.&lt;/p&gt;

&lt;p&gt;3.Creating and packaging your build artifacts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rlg1lTNZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664432034/yVBMd68q0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rlg1lTNZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664432034/yVBMd68q0.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Release pipeline
&lt;/h2&gt;

&lt;p&gt;For release pipeline , I will be using Deployment groups for deploying my artifacts into my local machine which has tomcat sunning in it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deployment groups
&lt;/h2&gt;

&lt;p&gt;In deployment groups you can specify your machine in which you need your application to be &lt;/p&gt;

&lt;h1&gt;
  
  
  Steps to create deployment groups
&lt;/h1&gt;

&lt;p&gt;1.Go to deployment groups in pipelines.&lt;/p&gt;

&lt;p&gt;2.Create a deployment group, select machine OS ,in my case it's windows.&lt;/p&gt;

&lt;p&gt;3.Copy and paste the given command in your machine powershell.&lt;/p&gt;

&lt;p&gt;4.powershell should be started as administrator.&lt;/p&gt;

&lt;p&gt;5.Create personal access token.&lt;/p&gt;

&lt;p&gt;Which will be prompted in powershell for Authorization.&lt;/p&gt;

&lt;p&gt;Once this steps are done , The deployment group target machine status will be shown as online as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YL9ox-FU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664597525/tP4mcKnN_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YL9ox-FU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664597525/tP4mcKnN_.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now go back to &lt;strong&gt;release pipeline&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a release pipeline , make sure it is using the artifacts we created using build pipeline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uVF-TcSD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616665246062/fKUsYbtrg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uVF-TcSD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616665246062/fKUsYbtrg.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1.Now in the tasks ,add an deployment group task as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jLaYfNcy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616665354492/T-u8jVUKR.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jLaYfNcy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616665354492/T-u8jVUKR.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Add a copy task which will copy the build artifacts to our local machine.(copy war file to tomcat webapps folder)&lt;/p&gt;

&lt;p&gt;3.Add a command line task to stop and start tomcat.&lt;/p&gt;

&lt;p&gt;(Make sure you have tomcat setup done in your local machine)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---sa6YSH2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664757830/2smMlltxI.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---sa6YSH2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664757830/2smMlltxI.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once this is done  and pipeline succeeds,&lt;/p&gt;

&lt;p&gt;You will be able to visit your application using&lt;/p&gt;

&lt;p&gt;localhost:8080/warfileprefix&lt;/p&gt;

&lt;p&gt;In my case it is localhost:8080/myshuttledev&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mohvR-xt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664867287/uFwjngdU_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mohvR-xt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1616664867287/uFwjngdU_.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>azuredevops</category>
      <category>devops</category>
      <category>cicd</category>
    </item>
    <item>
      <title>Linux Basics</title>
      <dc:creator>Aravind</dc:creator>
      <pubDate>Mon, 22 Mar 2021 12:27:37 +0000</pubDate>
      <link>https://dev.to/aravindjeevagan/linux-basics-10d6</link>
      <guid>https://dev.to/aravindjeevagan/linux-basics-10d6</guid>
      <description>&lt;h1&gt;
  
  
  What is LINUX ?
&lt;/h1&gt;

&lt;p&gt;--Linux is open source &amp;amp; free - Derived from UNIX, written in C - low level language &lt;/p&gt;

&lt;p&gt;--Terminal - It's the place where you can interact with OS using commands.&lt;/p&gt;

&lt;p&gt;--All the distributions providers [ ubuntu, linux mint, Centos, Fedora, Redhat, Kali linux, etc] they will take the kernal &amp;amp; they will modify &amp;amp; release  their own linux version. That means "ubuntu, linux mint, Centos, Fedora, Redhat,Kali linux, etc ] all are Linux only&lt;/p&gt;

&lt;h1&gt;
  
  
  Basics Linux commands:
&lt;/h1&gt;

&lt;p&gt;cd -- moves to home directory (change directory) , used to move to different directory.&lt;/p&gt;

&lt;p&gt;man   -- manual (like an user manual)&lt;br&gt;
help  -- provide information about each command&lt;br&gt;
ls    -- To list files and directories under a folder.&lt;br&gt;
ls -lh -- human readable&lt;/p&gt;

&lt;h1&gt;
  
  
  Wildcards:
&lt;/h1&gt;

&lt;p&gt;ls *.Txt - - list all the Txt files&lt;br&gt;
ls ?.Txt  -- list only Txt file which has one character &lt;br&gt;
eg:  a.txt b.txt&lt;br&gt;
ls file[1234].txt &lt;/p&gt;

&lt;p&gt;mkdir -p nee/folder/subfolder -- To create directory under specified path&lt;/p&gt;

&lt;p&gt;-p    --  to create subfolders&lt;/p&gt;

&lt;h1&gt;
  
  
  create and delete (File/Directory)
&lt;/h1&gt;

&lt;p&gt;touch filename --create a file&lt;br&gt;
rm filename    --remove a file&lt;/p&gt;

&lt;p&gt;mkdir "Hello world"  --creates a dir&lt;br&gt;
To include space in folder name&lt;br&gt;
rmdir           -- empty directory&lt;br&gt;
rm -r           -- to remove directory that has files&lt;br&gt;
rm -ri folder   -- interactive &lt;/p&gt;

&lt;h1&gt;
  
  
  To edit a file user nano or vi editor:
&lt;/h1&gt;

&lt;p&gt;NANO:&lt;/p&gt;

&lt;p&gt;nano filename -- brings you to editor&lt;/p&gt;

&lt;p&gt;^ ctrl&lt;br&gt;
M - alt&lt;/p&gt;

&lt;h1&gt;
  
  
  FIND:
&lt;/h1&gt;

&lt;p&gt;find -name "&lt;em&gt;.Txt"&lt;br&gt;
find -iname "&lt;/em&gt;.TXT"&lt;br&gt;
find -type f       --file&lt;br&gt;
find -type d       --dir&lt;br&gt;
find -maxdepth 2   --levels to search&lt;br&gt;
-i                 -- case insensitive&lt;/p&gt;

&lt;h1&gt;
  
  
  Viewing files:
&lt;/h1&gt;

&lt;p&gt;cat file.txt&lt;br&gt;
tac           ----- reverse order vertically&lt;br&gt;
rev           ------ reverse horizontally&lt;br&gt;
less file.txt -----when file size is big &lt;br&gt;
head -n 20 test.txt -----first 20 lines&lt;br&gt;
tail -n 20 -----last 20 lines&lt;/p&gt;

&lt;h1&gt;
  
  
  Sorting:
&lt;/h1&gt;

&lt;p&gt;sort test.txt&lt;br&gt;
sort -n test.txt ------&amp;gt; for numbers&lt;br&gt;
sort -r          -----&amp;gt; for reverse order&lt;br&gt;
sort -u          -----&amp;gt; for unique list&lt;/p&gt;

&lt;h1&gt;
  
  
  ARCHIVING-COMPRESSING:
&lt;/h1&gt;

&lt;p&gt;It involves two steps: &lt;/p&gt;

&lt;p&gt;1.creating tar balls&lt;br&gt;
tar -cvf tarballname file1.txt file2.txt&lt;br&gt;
C- creating tar&lt;br&gt;
V - verbose&lt;br&gt;
F ----file&lt;/p&gt;

&lt;p&gt;Extracting ----x&lt;/p&gt;

&lt;p&gt;tar -xvf tarballname&lt;/p&gt;

&lt;p&gt;2.zip tarball using gzip or bzip2&lt;/p&gt;

&lt;p&gt;gzip name.tar --&amp;gt; this will give --&amp;gt; name.tar.gz&lt;br&gt;
gunzip name.tar.gz&lt;/p&gt;

&lt;p&gt;creating Zip file:&lt;br&gt;
zip name.zip file1 file 2&lt;br&gt;
Unzip name.zip&lt;/p&gt;

&lt;p&gt;To make file executable&lt;br&gt;
chmod +x file.txt&lt;/p&gt;

&lt;h1&gt;
  
  
  CRONTAB:
&lt;/h1&gt;

&lt;p&gt;To auto schedule jobs/commands&lt;/p&gt;

&lt;p&gt;crontab -e ------- take u to crontab,where you can view cronjobs and can add new cron jobs&lt;/p&gt;

&lt;p&gt;To find about the machine like Version, flavor:&lt;/p&gt;

&lt;p&gt;uname -o&lt;br&gt;
Uname -r&lt;br&gt;
hostnamectl&lt;br&gt;
cat /etc/os-release&lt;/p&gt;

&lt;p&gt;Installation and Removal&lt;br&gt;
rpm -i --install (install new RPM; error if already installed)&lt;br&gt;
rpm -U --upgrade (delete existing RPM, if any; install new)&lt;br&gt;
rpm -F --freshen (update RPM only if package already installed)&lt;br&gt;
rpm -e --erase (remove, delete, expunge)&lt;/p&gt;

&lt;p&gt;PACKAGE&lt;br&gt;
rpm -q [packages] [information]&lt;br&gt;
rpm -qa (all installed packages)&lt;br&gt;
rpm -q package_name&lt;br&gt;
rpm -qf (filename)&lt;br&gt;
rpm -qp (package filename)&lt;br&gt;
rpm -qa | grep foo&lt;/p&gt;

&lt;h1&gt;
  
  
  Tee
&lt;/h1&gt;

&lt;p&gt;ls -l | tee new.txt | cat &amp;gt; t.txt&lt;/p&gt;

&lt;p&gt;Tee command is literally a "T"&lt;/p&gt;

&lt;p&gt;COMMAND flows from left to right &lt;/p&gt;

&lt;p&gt;It will spit out the result of command in new.txt&lt;/p&gt;

&lt;h1&gt;
  
  
  File Permissions
&lt;/h1&gt;

&lt;p&gt;Owner : Group : Others&lt;br&gt;
    Read - 4&lt;br&gt;
    Write - 2&lt;br&gt;
    Execute - 1 [ Clicking the directory &amp;amp; going inside]&lt;br&gt;
    ls test.txt shows 10 indexs -rw-rw-r--&lt;br&gt;
        1st index -&amp;gt; Indicates file if it is a Directory it will show as d&lt;br&gt;
        2nd,3rd,4th -&amp;gt; Indicates Owner has read,write,execute permission&lt;br&gt;
    5th,6th,7th -&amp;gt; Indicates Group has read,write,execute permission&lt;br&gt;
    8th,9th,10th -&amp;gt; Indicates Others has read,write,execute permission&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
