<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Judith &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/author/judith/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bestdevops.com</link>
	<description>Lets Learn, Do it &#38; Share! Thats a Best DevOps!!!</description>
	<lastBuildDate>Thu, 15 Jul 2021 11:07:48 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>Terraform provisioner with ansible :</title>
		<link>https://www.bestdevops.com/terraform-provisioner-with-ansible/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Thu, 15 Jul 2021 11:07:47 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17659</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>


<pre class="wp-block-code"><span><code class="hljs language-php">resource <span class="hljs-string">"aws_instance"</span> <span class="hljs-string">"judith-ec2"</span> {
  ami           = <span class="hljs-string">"ami-03d5c68bab01f3496"</span> <span class="hljs-comment"># us-west-2</span>
  instance_type = <span class="hljs-string">"t2.micro"</span>
  key_name 		= <span class="hljs-string">"judith7"</span>
  tags = {
    Name = <span class="hljs-string">"judith inst"</span>
  }
  
  connection {
      type     = <span class="hljs-string">"ssh"</span>
      user     = <span class="hljs-string">"ubuntu"</span>
      private_key = file(<span class="hljs-string">"judith7.pem"</span>)
      <span class="hljs-comment">#host = aws_instance.web.public_ip</span>
      host = <span class="hljs-keyword">self</span>.public_ip
  }

  provisioner <span class="hljs-string">"local-exec"</span> {
    command = <span class="hljs-string">"touch devopsschool-local"</span>
  }
  
  provisioner <span class="hljs-string">"remote-exec"</span> {
    inline = &#91;
      <span class="hljs-string">"sudo apt-get update"</span>,
      <span class="hljs-string">"sudo apt-get install wget -y"</span>,
      
      ]
  }
  
  provisioner <span class="hljs-string">"file"</span> {
    source      = <span class="hljs-string">"terraform.tfstate.backup"</span>
    destination = <span class="hljs-string">"/tmp/"</span>
  } 
}</code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>TERRAFORM VARIABLES WITH EXAMPLES:</title>
		<link>https://www.bestdevops.com/terraform-variables-with-examples/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Thu, 15 Jul 2021 06:28:36 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17598</guid>

					<description><![CDATA[provider.tf file: Variable number: Variable string: Variable list: map file boolean file:]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>provider.tf file:</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-php">terraform {
  required_providers {
    aws = {
      source  = <span class="hljs-string">"hashicorp/aws"</span>
      version = <span class="hljs-string">"~&gt; 3.0"</span>
    }
  }
}

<span class="hljs-comment"># Configure the AWS Provider</span>
provider <span class="hljs-string">"aws"</span> {
  region     = <span class="hljs-string">"us-west-2"</span>
  access_key = <span class="hljs-string">""</span>
  secret_key = <span class="hljs-string">""</span>
}


<span class="hljs-comment"># Configure the GitHub Provider</span>
provider <span class="hljs-string">"github"</span> {
 token = <span class="hljs-string">"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"</span> 
}</code></span></pre>


<p class="wp-block-paragraph"><strong>Variable number:</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">
variable <span class="hljs-string">"usercount"</span> {
  type = number
  description = <span class="hljs-string">"This is for demo of number variable"</span>
  <span class="hljs-keyword">default</span> = <span class="hljs-number">3</span>
}

resource <span class="hljs-string">"aws_instance"</span> <span class="hljs-string">"judith"</span> {
  count = <span class="hljs-string">"${var.usercount}"</span>
  ami = <span class="hljs-string">"ami-03d5c68bab01f3496"</span>
  instance_type = <span class="hljs-string">"t2.micro"</span>
  tags = {
    Name = <span class="hljs-string">"judith.${count.index}"</span>
  }
  
}</code></span></pre>


<p class="wp-block-paragraph"><strong>Variable string:</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-php">

variable <span class="hljs-string">"reponame"</span> {
  type = string
  description = <span class="hljs-string">"This is for demo of string variable-judith"</span>
  <span class="hljs-keyword">default</span> = <span class="hljs-string">"day3-broad"</span>
}

resource <span class="hljs-string">"github_repository"</span> <span class="hljs-string">"string variable"</span> {
  name        = <span class="hljs-string">"${var.reponame}"</span>
  description = <span class="hljs-string">"My awesome codebase"</span>
  <span class="hljs-keyword">private</span> = <span class="hljs-keyword">false</span>
}</code></span></pre>


<p class="wp-block-paragraph"><strong>Variable list:</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-php">

variable <span class="hljs-string">"users"</span> {
    type    = <span class="hljs-keyword">list</span>
    <span class="hljs-keyword">default</span> = &#91;<span class="hljs-string">"devopsschool1"</span>, <span class="hljs-string">"devopsschool2"</span>, <span class="hljs-string">"devopsschool3"</span>]
    description = <span class="hljs-string">"This is for demo of list variable"</span>
}

variable <span class="hljs-string">"gitrepos"</span> {
    type    = <span class="hljs-keyword">list</span>
    <span class="hljs-keyword">default</span> = &#91;<span class="hljs-string">"devopsschool1"</span>, <span class="hljs-string">"devopsschool2"</span>, <span class="hljs-string">"devopsschool3"</span>]
    description = <span class="hljs-string">"This is for demo of list variable"</span>
}

resource <span class="hljs-string">"aws_iam_user"</span> <span class="hljs-string">"judith"</span> {
  name = <span class="hljs-string">"${var.users&#91;0]}"</span>
}

resource <span class="hljs-string">"github_repository"</span> <span class="hljs-string">"repo1"</span> {
  name = <span class="hljs-string">"${var.gitrepos&#91;0]}"</span>
  description = <span class="hljs-string">"My awesome codebase"</span>
  <span class="hljs-keyword">private</span> = <span class="hljs-keyword">false</span>
}

resource <span class="hljs-string">"github_repository"</span> <span class="hljs-string">"repo2"</span> {
  name = <span class="hljs-string">"${var.gitrepos&#91;1]}"</span>
  description = <span class="hljs-string">"My awesome codebase"</span>
  <span class="hljs-keyword">private</span> = <span class="hljs-keyword">false</span>
}

resource <span class="hljs-string">"github_repository"</span> <span class="hljs-string">"repo3"</span> {
  name = <span class="hljs-string">"${var.gitrepos&#91;2]}"</span>
  description = <span class="hljs-string">"My awesome codebase"</span>
  <span class="hljs-keyword">private</span> = <span class="hljs-keyword">false</span>
}</code></span></pre>


<p class="wp-block-paragraph"><strong>map file</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-php">variable <span class="hljs-string">"account_name"</span> {
   type = map
  <span class="hljs-keyword">default</span> = {
      <span class="hljs-string">"account1"</span> = <span class="hljs-string">"devops1"</span>
      <span class="hljs-string">"account2"</span> = <span class="hljs-string">"devops2"</span>
      <span class="hljs-string">"account3"</span> = <span class="hljs-string">"devops3"</span>
}
}
resource <span class="hljs-string">"aws_iam_user"</span> <span class="hljs-string">"iamuser"</span> {
  for_each = <span class="hljs-keyword">var</span>.account_name
  name = <span class="hljs-string">"${each.value}-iam"</span>
}
resource <span class="hljs-string">"aws_instance"</span> <span class="hljs-string">"judith-ec2"</span> {
  ami           = <span class="hljs-string">"0fb0225bafc2f76c5"</span> <span class="hljs-comment"># us-west-2</span>
  instance_type = <span class="hljs-string">"t2.micro"</span>
 
  tags = {
    Name = <span class="hljs-string">"judith"</span>
  } 
}</code></span></pre>


<p class="wp-block-paragraph"><strong>boolean file:</strong></p>


<pre class="wp-block-code"><span><code class="hljs"></code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Terraform:</title>
		<link>https://www.bestdevops.com/terraform-2/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Wed, 14 Jul 2021 11:09:30 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17557</guid>

					<description><![CDATA[A comparison between Ansible Vs Docker Vs Terraform: Docker is platform as a service whereas terraform and ansible are infrastructure [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>A comparison between Ansible Vs Docker Vs Terraform</strong>:</p>



<p class="wp-block-paragraph">                              Docker is platform as a service whereas terraform and ansible are infrastructure as a service</p>



<p class="wp-block-paragraph">                               <strong>Ansible</strong> is suitable for small, temporary, <strong>and</strong> fast deployments.</p>



<p class="wp-block-paragraph">                               Terraform is better when it comes <strong>to</strong> managing cloud services below the server.</p>



<p class="wp-block-paragraph">                                <a href="https://searchitoperations.techtarget.com/definition/Terraform">Terraform</a> is an open source, IaC platform. Whereas, <a href="https://searchitoperations.techtarget.com/definition/Ansible">Ansible</a> is an open source configuration management tool. Developers can use Ansible and Terraform at the same time</p>



<p class="wp-block-paragraph">                                 Terraform uses HCL,Ansible uses Yaml,Docker uses namespaces ,images</p>



<p class="wp-block-paragraph">                                 Terraform uses to create resources and services .ansible to configure resourses </p>



<p class="wp-block-paragraph">                               </p>



<p class="wp-block-paragraph">         </p>



<p class="wp-block-paragraph"><strong>Write a terraform script where you create a linux ec2 instance with Security group and key defined so you should be able to use key to login to ec2 instance.</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-php">terraform {
  required_providers {
    aws = {
      source  = <span class="hljs-string">"hashicorp/aws"</span>
      version = <span class="hljs-string">"~&gt; 3.0"</span>
    }
  }
}

<span class="hljs-comment"># Configure the AWS Provider</span>
provider <span class="hljs-string">"aws"</span>  {
  region     = <span class="hljs-string">"us-west-2"</span>
  access_key = <span class="hljs-string">"()"</span>
  secret_key = <span class="hljs-string">"()"</span>
}
resource <span class="hljs-string">"aws_key_pair"</span> <span class="hljs-string">"deployer"</span> {
  key_name   = <span class="hljs-string">"deployer-key"</span>
  public_key = <span class="hljs-string">"ssh-rsa 
}
resource "</span>aws_security_group<span class="hljs-string">" "</span>instance<span class="hljs-string">" {
  name = "</span>terraform-example-instance<span class="hljs-string">"
  ingress {
    from_port   = 8080
    to_port     = 8080
    protocol    = "</span>tcp<span class="hljs-string">"
    cidr_blocks = &#91;"</span><span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>/<span class="hljs-number">0</span><span class="hljs-string">"]
  }
}
variable "</span>security_group_id<span class="hljs-string">" {}

data "</span>aws_security_group<span class="hljs-string">" "</span>selected<span class="hljs-string">" {
  id = var.security_group_id
}

</span></code></span></pre>


<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>JENKINS-self notes:</title>
		<link>https://www.bestdevops.com/jenkins-self-notes/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Tue, 13 Jul 2021 11:40:07 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17504</guid>

					<description><![CDATA[open source automation server continuous integration (CI) tool it can automate all the process of design,development and testing phases of [&#8230;]]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list"><li>open source automation server</li><li>continuous integration (CI) tool </li><li>it can automate all the process of design,development and testing phases of the project</li><li>built in java environment and so it is platform independent</li><li>powered by very strong community </li><li>powered by plugins where it has 1800+ features</li><li>latest version is jenkins 2.289.2</li><li>prerequsite for installing is java (JDK where JRE is embedded)</li><li>jenkins are available in various releases <ul><li>jenkins(free)</li><li>enterprise jenkins</li><li>jenkinsx</li><li>blueocean</li></ul></li></ul>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>10 popular jenkins plugins:</strong></p>



<h4 class="wp-block-heading"><strong>1.&nbsp;</strong><a href="https://plugins.jenkins.io/kubernetes" target="_blank" rel="noreferrer noopener"><strong>Kubernetes</strong></a></h4>



<p class="wp-block-paragraph"><strong>The “Kubernetes” plugin is great for automating build agents on a Kubernetes cluster</strong>. Essentially, the plugin will dynamically create Kubernetes Pods that house a build agent that has started and will stop the agent once the build has completed.</p>



<h4 class="wp-block-heading"><strong>2.&nbsp;</strong><a href="https://plugins.jenkins.io/swarm" target="_blank" rel="noreferrer noopener"><strong>Swarm</strong></a></h4>



<p class="wp-block-paragraph">This interesting plugin is useful if you plan on using Docker Swarm. <strong>It helps make life easier by allowing you to add worker nodes to a Jenkins master node effectively creating a cluster</strong> and making scalability much easier.</p>



<h4 class="wp-block-heading"><strong>3.&nbsp;</strong><a href="https://plugins.jenkins.io/amazon-ecs" target="_blank" rel="noreferrer noopener"><strong>Amazon Elastic Container Service</strong></a></h4>



<p class="wp-block-paragraph"><strong>A plugin that deploys build agents to an existing Amazon ECS cluster</strong>. These builds run within separate Docker containers that are removed upon completion of the build.</p>



<h4 class="wp-block-heading"><strong>4.&nbsp;</strong><a href="https://plugins.jenkins.io/azure-acs" target="_blank" rel="noreferrer noopener"><strong>Azure Container Service</strong></a></h4>



<p class="wp-block-paragraph">Similar to Amazon ECS, this plugin requires an existing cluster on Azure. Keep in mind that <strong>Azure Container Services is being deprecated by Microsoft, but this plugin still supports it as well as Azure Kubernetes Service</strong>.</p>



<h4 class="wp-block-heading"><strong>5.&nbsp;</strong><a href="https://plugins.jenkins.io/dashboard-view" target="_blank" rel="noreferrer noopener"><strong>Dashboard View</strong></a></h4>



<p class="wp-block-paragraph"><strong>Dashboard View enables you to create a customized view within the Jenkins dashboard</strong>. The user is able to select which jobs they want to include in the view as well as the different portlets.</p>



<h4 class="wp-block-heading"><strong>6.&nbsp;</strong><a href="https://plugins.jenkins.io/view-job-filters" target="_blank" rel="noreferrer noopener"><strong>View Job Filters</strong></a></h4>



<p class="wp-block-paragraph"><strong>The “View Job Filters” plugin lets you choose from a wide range of filters to help manage lots of jobs</strong>. Basically, this lets you see only the jobs you want to see within a view.</p>



<h4 class="wp-block-heading"><strong>7.&nbsp;</strong><a href="https://plugins.jenkins.io/cloudbees-folder" target="_blank" rel="noreferrer noopener"><strong>Folders</strong></a></h4>



<p class="wp-block-paragraph">Tired of looking at a giant list of jobs? The “Folders” plugin allows you to organize them into your own customized folder structure. </p>



<h4 class="wp-block-heading"><strong>8.&nbsp;</strong><a href="https://plugins.jenkins.io/jira/" target="_blank" rel="noreferrer noopener"><strong>Jira</strong></a></h4>



<p class="wp-block-paragraph">“Jira” is an open source plugin that does exactly what it says. <strong>Once installed, you can integrate your Jenkins instance with Atlassian Jira Software</strong>.</p>



<h4 class="wp-block-heading"><strong>9.&nbsp;</strong><a href="https://plugins.jenkins.io/performance" target="_blank" rel="noreferrer noopener"><strong>Performance</strong></a></h4>



<p class="wp-block-paragraph"><strong>With this free plugin, you can run performance reports for your favorite test suites</strong>. Supported suites include JUnit, JMeter, Taurus, and others. </p>



<h4 class="wp-block-heading"><strong>10.&nbsp;</strong><a href="https://plugins.jenkins.io/perfpublisher" target="_blank" rel="noreferrer noopener"><strong>Performance Publisher</strong></a></h4>



<p class="wp-block-paragraph"><strong>The “Performance Publisher” plugin generates global and trend reports that can be used for test result analysis.</strong>&nbsp;The really cool part is that it works with any test suite.&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Introduction to Prometheus:</title>
		<link>https://www.bestdevops.com/introduction-to-prometheus/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Mon, 12 Jul 2021 10:34:12 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17459</guid>

					<description><![CDATA[Prometheus: Prometheus is an open-source systems monitoring and alerting toolkit. Time Series database: designed to store and retrieve data records that are part [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Prometheus:</strong></p>



<p class="wp-block-paragraph">                       Prometheus is an open-source systems monitoring and alerting toolkit.                     </p>



<p class="wp-block-paragraph"> <strong>Time Series database:</strong></p>



<p class="wp-block-paragraph">                     designed to store and retrieve <strong>data</strong> records that are part of a “<strong>time series</strong>,” </p>



<p class="wp-block-paragraph">Time series is a set of <strong>data</strong> points that are associated with timestamps which provide a critical context for each of the <strong>data</strong> points in how they are related to others.</p>



<p class="wp-block-paragraph"><strong>Prometheus is good for time series metrix:</strong></p>



<p class="wp-block-paragraph">                      sophisticated local <strong>storage</strong> subsystem. For indexes, it uses Level DB</p>



<p class="wp-block-paragraph">                       for bulk data it has own custom storage layers, which organizes sample data in chunks of constant size.</p>



<p class="wp-block-paragraph"><strong>Components of Prometheus:</strong></p>



<p class="wp-block-paragraph">                       </p>



<ul class="wp-block-list"><li>Prometheus server :which scrapes and stores time series data</li><li>Client libraries::for instrumenting application code</li><li>Push gateway :for supporting short-lived jobs</li><li>Exporters::for services like HAProxy, StatsD, Graphite, etc.</li><li>Alert manager: to handle alerts</li><li>various support tools</li></ul>



<p class="wp-block-paragraph">Most Prometheus components are written in Go, making them easy to build and deploy as static binaries.</p>



<figure class="wp-block-image is-resized"><img fetchpriority="high" decoding="async" src="https://prometheus.io/assets/architecture.png" alt="" width="605" height="363" /></figure>



<p class="wp-block-paragraph"><strong> Prometheus working:</strong></p>



<p class="wp-block-paragraph">                                   <strong>Prometheus</strong> scrapes metrics from instrumented <strong>jobs</strong>, either directly or via an intermediary push gateway for short-lived <strong>jobs</strong>. It stores all scraped samples locally and runs rules over this data to either aggregate and record new time series from existing data or generate alerts.</p>



<p class="wp-block-paragraph">It scrapes metrics by any of the following ways:</p>



<ul class="wp-block-list"><li>By instrumenting</li><li>By using the prebuilt exporters</li><li>By using the Pathgateway</li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Single Playbook for previous exercise:</title>
		<link>https://www.bestdevops.com/single-playbook-for-previous-exercise/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Fri, 09 Jul 2021 12:09:09 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17401</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>


<pre class="wp-block-code"><span><code class="hljs language-php">Build many sub-playbooks <span class="hljs-keyword">and</span> aggregate them via <span class="hljs-keyword">include</span> statements.
- <span class="hljs-keyword">include</span>: playbook<span class="hljs-number">-1.</span>yml
- <span class="hljs-keyword">include</span>: playbook<span class="hljs-number">-2.</span>yml

Note - 
<span class="hljs-keyword">include</span> is deprecated. docs.ansible.com/ansible/latest/playbooks_reuse.html import_playbook: foo is the right way to go

<span class="hljs-keyword">For</span> newer versions of Ansilbe, you can build many sub-playbooks <span class="hljs-keyword">and</span> aggregate them via import_playbook statements:
---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml</code></span></pre>

<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>playbook1.yaml:group <span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>                                ---create group
- name: Deploying group
  hosts: web

  tasks:
  - name: create group
    group:
      name: deploy
      state: present
  
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>playbook-2:httpd<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>                                  -----install http package
- name: Start the first play
  hosts: web
  
  tasks:
  - name: Install the latest version of Apache
    yum:
      name: httpd
      state: latest
  - name: Copy file with owner and permissions
    copy:
      src: index.html
      dest: /var/www/html/index.html
  - name: Start service httpd, if not started
    service:
      name: httpd
      state: started

<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>playbook-3:mysql <span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>                                  ------install mysql package
- name: Start the first play      
  hosts: db
  tasks:
  - name: Install the latest version of Apache
    yum:
      name: mysql
      state: latest
  - name: Start service httpd, if not started
    service:
      name: mysqld
      state: started

<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>playbook4:installgit<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>                              ------install git
- name: Update web servers
  hosts: web
  vars:
    myname: gitinstalled
    age: "18"
    packagename: github
    servicename: github
  vars_files:
    - "vars.yaml"
  vars_prompt:
    - name: "version"
      prompt: "Which version Do you want to install?"
      private: no

<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>playbook-5:gropinsidegroup <span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>                            ----create group in another group with /bin/bash
- name: Deploying user
  hosts: web

  tasks:
  - name: create user
    user:
      name: deploy-user

      shell:/bin/bash
      group: deploy

<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>playbook-6:httpd service<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>                                 ------enable http service
- name: Starting the service
  hosts: webservers

  tasks:
  - name: start service
    service:
      name: httpd

      state: started

<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>playbook-7:createfile  <span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>                                       ----create dummy index.html file
- name: Initiating File Creation
  hosts: webservers

  tasks:
  - name: creating a file
    copy:
      src: index.html

      dest: index1.html

<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>playbook-8:copyfile<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>                                          ------copy second.html 
- name: Copying File
  hosts: webservers

  tasks:
  - name: copy a file
    copy:
      src: seecond.html

      dest: /var/www/html/second.html</code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ANSIBLE ADHOC EXAMPLE COMMANDS:</title>
		<link>https://www.bestdevops.com/ansible-adhoc-example-commands/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Fri, 09 Jul 2021 09:59:32 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17342</guid>

					<description><![CDATA[Program 1 – Write a Ansible Adhoc Commands to create a group called “deploy&#8220;: ## $ ansible all -m ansible.builtin.user [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Program 1 – Write a Ansible Adhoc Commands to create a group called “deploy</strong>&#8220;:</p>



<pre class="wp-block-preformatted">##   $ ansible all -m ansible.builtin.user -a "name=deploy password=&lt;crypted password here&gt;"

          (or)

##   $ ansible all -m ansible.builtin.user -a "name=deploy state=absent"</pre>



<p class="wp-block-paragraph">How to verify?<br>$ more /etc/ansible/group | grep deploy</p>



<p class="wp-block-paragraph"><strong>Program 2 – Write a Ansible Adhoc Commands to create a user called “deploy-user” which is part of group called “deploy” and with /bin/bash shell</strong>.</p>



<pre id="block-66652a1e-43d6-4543-8f49-9222ef10125a" class="wp-block-preformatted">##   $ ansible all -m ansible.builtin.user -a"name=deploy-user shell=/bin/bash group=deploy"</pre>



<p class="wp-block-paragraph">How to verify?<br>$ more /etc/ansible/passwd | grep deploy-user</p>



<p class="wp-block-paragraph"><strong>Program 3 – Write a Ansible Adhoc commands install package named “httpd” in RHEL/centos.</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$   ansible localhost -m yum -a<span class="hljs-string">"name=httpd state=present"</span>


(localhost is RHEL/centos)</code></span></pre>


<p class="wp-block-paragraph"><br>How to verify?</p>



<p class="wp-block-paragraph">which httpd</p>



<p class="wp-block-paragraph"><strong>Program 4 – Write a Ansible Adhoc commands to start and enable the service named “httpd”</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$  ansible localhost -m service -a<span class="hljs-string">"name=httpd state=present"</span></code></span></pre>


<p class="wp-block-paragraph"><br>how to verify?</p>



<p class="wp-block-paragraph">$ ps -eaf | grep httpd</p>



<p class="wp-block-paragraph"><strong>Program 5 – Write a Ansible commands to create a file called “index.html” in /var/www/html with some dummy html contents</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-php">$   ansible localhost -m copy -a<span class="hljs-string">"src=index.html destination=/var/www/html/index.html"</span>  

(should create a <span class="hljs-keyword">empty</span> index.html)</code></span></pre>


<p class="wp-block-paragraph">How to verify?<br>curl http://x.x.x.x:80(ip of localhost)</p>



<p class="wp-block-paragraph"><strong>Program 6 – Write a Ansible commands to copy a file called “second.html” in /var/www/html/second.html with some dummy html contents</strong>.</p>


<pre class="wp-block-code"><span><code class="hljs language-php">$ ansible localhost -m copy -a<span class="hljs-string">"src=index.html destination=/var/www/html/index.html"</span>

(should create a <span class="hljs-keyword">empty</span> index.html)</code></span></pre>


<p class="wp-block-paragraph">How to verify?</p>



<p class="wp-block-paragraph">curl http://x.x.x.x/second.html(ip of localhost)</p>



<p class="wp-block-paragraph"><strong>Program 7 – Write a Ansible commands to install a package called “git”, “wget”.</strong></p>



<p class="wp-block-paragraph"><a href="https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html">https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html</a> &#8212;&#8212;-website to install packages and etc..</p>


<pre class="wp-block-code"><span><code class="hljs language-php"> name: this playbook install pacakges
  hosts: webservers 
  become: <span class="hljs-keyword">true</span>
  tasks:
  - name: install package
    yum: 
    <span class="hljs-comment">#      name: &#91;'git', 'make', 'gcc', 'wget', 'telnet', 'gzip'] </span>
      name: <span class="hljs-string">"{{ item }}"</span>
      state: installed
    with_items: 
      - git
      - make
      - gcc
      - wget
      - telnet
      - gzip</code></span></pre>

<pre class="wp-block-code"><span><code class="hljs language-javascript">(or) $ ansible all -m ansible.builtin.git -a<span class="hljs-string">"name=git"</span></code></span></pre>


<p class="wp-block-paragraph">How to verify?<br>$ which git<br>$ which wget</p>



<p class="wp-block-paragraph"><strong>Program 8 – Write a Ansible Adhoc commands to clone git repo. https://github.com/scmgalaxy/ansible-role-template.</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$ ansible all -m ansible.builtin.git -a<span class="hljs-string">"repo=https://github.com/scmgalaxy/ansible-role-template clone=yes"</span></code></span></pre>


<p class="wp-block-paragraph"><br>$ ls</p>



<p class="wp-block-paragraph"><strong>Program 9 – Write a Ansible commands to reboot a self machine.</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$ ansible all -m ansible.builtin.reboot -a<span class="hljs-string">"name=reboot the machine"</span></code></span></pre>


<p class="wp-block-paragraph">Program 10 – Write a Ansible commands to touch a file called “devopsschool.txt” in /opt/ and delete after using ansible adhoc command.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Services in Kubernetes:</title>
		<link>https://www.bestdevops.com/services-in-kubernetes-2/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Thu, 08 Jul 2021 12:15:09 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17299</guid>

					<description><![CDATA[what is service: *normally service is used to balance traffic among pods in a cluster .this can be done with [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>what is service:</strong></p>



<p class="wp-block-paragraph">*normally service is used to balance traffic among pods in a cluster .this can be done with the help of load balancer</p>



<p class="wp-block-paragraph">*enables network access from either within the cluster or between external processes and the service.</p>



<p class="wp-block-paragraph"><strong>TYPES OF SERVICE:</strong></p>



<p class="wp-block-paragraph"> ClusterIP :only accessible from within the cluster</p>



<p class="wp-block-paragraph"> NodePort:expose via a port on each node IP&#8217;s and can be accessed from outside</p>



<p class="wp-block-paragraph">LoadBalancer:via cloud</p>



<p class="wp-block-paragraph">ExternalName:map to predefined namefield</p>



<p class="wp-block-paragraph"><strong>Use Of Service named Kubernetes in default Namespace</strong>:</p>



<p class="wp-block-paragraph">*Used to forward the request to the master(APIServer) So all the requests to the Kubernetes default service from the cluster will be routed to the configured Endpoint IP.</p>



<p class="wp-block-paragraph"><strong>service work process</strong>:</p>



<p class="wp-block-paragraph">That has proxy to be configured to forward to the resources</p>



<p class="wp-block-paragraph">create a service</p>



<p class="wp-block-paragraph">describe the service and you can see there is no endpoint</p>



<p class="wp-block-paragraph">Inorder to enable endpoint: edit in a way that label selector at the load balancer should match the label selector of the pod</p>



<p class="wp-block-paragraph">then you can see endpoints.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>POD WITH NGNIX AND MYSQL CONTAINERS</title>
		<link>https://www.bestdevops.com/17251-2/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Thu, 08 Jul 2021 06:33:21 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17251</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<pre class="wp-block-code"><span><code class="hljs">apiVersion:v1
kind: Pod
metadata:
  name: ngnix-mysql

  labels:
    app: helloworld
spec:
  containers:
  - name: devopsschoolngnix
    image: scmgalaxy/nginx-devopsschoolv1

    ports:
    - name: nginx-port
      containerPort: 80

  - name: devopsschoolmysql
    image: mysql-5.6 

    ports:
    - name: mysql-port
      containerPort: 3306</code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Learning Declarative languages:</title>
		<link>https://www.bestdevops.com/learning-declarative-languages/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Wed, 07 Jul 2021 10:15:44 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17124</guid>

					<description><![CDATA[Understanding languages known Compiled language: *translators that generate machine code from source code directly. example :c, Fortran ,COBOL Interpreted language: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Understanding languages known </p>



<p class="wp-block-paragraph"><strong>Compiled language:</strong></p>



<p class="wp-block-paragraph">*translators that generate machine code from source code directly.</p>



<p class="wp-block-paragraph">example :c, Fortran ,COBOL</p>



<p class="wp-block-paragraph"><strong>Interpreted language:</strong></p>



<p class="wp-block-paragraph">*It is one where the instructions are not directly executed by the target machine, but instead read and executed by some other program.</p>



<p class="wp-block-paragraph">example: Perl, Python and MATLAB.</p>



<p class="wp-block-paragraph"><strong>Declarative language:</strong></p>



<p class="wp-block-paragraph">*High level language where desire is specified in simple terms </p>



<p class="wp-block-paragraph">*specifies what to do rather how to do </p>



<p class="wp-block-paragraph">example:JSON,YAML,</p>



<p class="wp-block-paragraph">example:JSON,YAML,</p>



<p class="wp-block-paragraph">example: JSON, YAML, Erlang.</p>



<p class="wp-block-paragraph"><strong>ADVANTAGES OF DECLARATIVE LANGUAGE:</strong></p>



<p class="wp-block-paragraph">*high level of abstraction(complex programs in a compressed form)</p>



<p class="wp-block-paragraph">*maintenance can be performed independently of application development. </p>



<p class="wp-block-paragraph">*Easy optimization as implementation is controlled by an algorithm</p>



<p class="wp-block-paragraph"><strong>DISADVANTAGES:</strong></p>



<p class="wp-block-paragraph">*Hard to understand by people who gains new access to it</p>



<p class="wp-block-paragraph">*Hard to take characteristics of individual applications into account during programming</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>INSIDE KUBERNETES ABOUT POD</title>
		<link>https://www.bestdevops.com/inside-kubernetes-about-pod/</link>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Wed, 07 Jul 2021 09:57:18 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17101</guid>

					<description><![CDATA[POD: *is the smallest building block. Within a cluster, a pod represents a process that&#8217;s running *A&#160;Pod&#160; is a group [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>POD:</strong></p>



<p class="wp-block-paragraph">*is the smallest building block. Within a cluster, a pod represents a process that&#8217;s running</p>



<p class="wp-block-paragraph">*A&nbsp;<em>Pod</em>&nbsp; is a group of one or more&nbsp;containers with shared storage and network resources</p>



<p class="wp-block-paragraph">*is in worker node there can be many pods  and each pod has one or more containers</p>



<p class="wp-block-paragraph">*instantiated by kubelet</p>



<p class="wp-block-paragraph">*containers share same IP address</p>



<p class="wp-block-paragraph">*ATOMIC UNIT OF SCHEDULING</p>



<p class="wp-block-paragraph">*pod is running as long as all the containers inside pod is running (must)</p>



<p class="wp-block-paragraph">*all namespaces assigned to pod are available to all container</p>



<p class="wp-block-paragraph">*two inside pod they are main container and side container</p>



<p class="wp-block-paragraph">*scaling is easy</p>



<p class="wp-block-paragraph">*communicate outside through pod IP address .</p>



<figure class="wp-block-image is-resized"><img decoding="async" src="https://eadn-wc03-4064062.nxedge.io/cdn/wp-content/uploads/2020/09/Screenshot-258.png" alt="Pods | Kubernetes Pods |- Cloud Training Program" width="553" height="312" /></figure>



<p class="wp-block-paragraph"><strong>Types of POD:</strong></p>



<ul class="wp-block-list"><li> Single-container-per-pod.</li><li> Multi-container-pod.</li></ul>



<p class="wp-block-paragraph"><strong>INSIDE POD:</strong></p>



<p class="wp-block-paragraph">*one or more application containers  share same IP address which are relatively tightly coupled.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.katacoda.com/contino/courses/kubernetes/pods/assets/pod.png" alt="Pods | contino | Katacoda" /></figure>



<p class="wp-block-paragraph"><strong>POD LIFECYCLE:</strong></p>



<p class="wp-block-paragraph">*Pending state</p>



<p class="wp-block-paragraph">*Running state</p>



<p class="wp-block-paragraph">*Succeeded state</p>



<p class="wp-block-paragraph">*Failed state</p>



<figure class="wp-block-image"><img decoding="async" src="https://drek4537l1klr.cloudfront.net/luksa3/v-4/Figures/6.1.png" alt="6 Managing the lifecycle of the Pod's containers - Kubernetes in Action,  Second Edition MEAP V07" /></figure>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fun learning with Kubernetes</title>
		<link>https://www.bestdevops.com/basics-of-kubernetes/</link>
					<comments>https://www.bestdevops.com/basics-of-kubernetes/#respond</comments>
		
		<dc:creator><![CDATA[Judith]]></dc:creator>
		<pubDate>Wed, 07 Jul 2021 07:48:12 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=16969</guid>

					<description><![CDATA[About kubernetes: #an open-source container orchestration platform # enables the operation of an elastic web server framework for cloud applications. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><strong>About kubernetes:</strong></h2>



<p class="wp-block-paragraph">#an open-source container orchestration platform                                                     </p>



<p class="wp-block-paragraph"># enables the operation of an elastic web server framework for cloud applications.</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.bestdevops.com/wp-content/uploads/2021/07/image.png" alt="Download Kubernetes (k8s) Logo in SVG Vector or PNG File Format - Logo.wine" /></figure>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>Why Kubernetes:</strong></h2>



<p class="wp-block-paragraph">#It allows us to manage containers in an efficient way </p>



<p class="wp-block-paragraph">#easy container scaling across many servers in a cluster.</p>



<figure class="wp-block-image is-resized"><img decoding="async" src="https://res.infoq.com/presentations/shopify-kubernetes/en/slides/sl17-1533751579558.jpg" alt="Forced Evolution: Shopify's Journey to Kubernetes" width="638" height="358" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>Kubernetes Architecture:</strong></h2>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"># offers a loosely coupled mechanism for service discovery across a cluster.</p>



<p class="wp-block-paragraph"># A&nbsp;Kubernetes cluster&nbsp;has many nodes .each of the compute nodes runs a container runtime like Docker along with an agent, kubelet, which communicates with the control plane.</p>



<p class="wp-block-paragraph"># The control plane is responsible for managing the overall cluster, exposing the application program interface (API), and for scheduling the initiation and shutdown of compute nodes based on a desired configuration.  </p>



<h2 class="wp-block-heading"><strong>Componenets:</strong></h2>



<p class="wp-block-paragraph"><strong>Kubernetes API Server</strong>:</p>



<p class="wp-block-paragraph">#front end of the control  plane where we interact </p>



<p class="wp-block-paragraph"><strong>Kubernetes Scheduler</strong>:</p>



<p class="wp-block-paragraph">#assigns received requests to heathy nodes from API server</p>



<p class="wp-block-paragraph"><strong>Kubernetes Controller Manager:</strong></p>



<p class="wp-block-paragraph"># obtain the desired state from the API Server. </p>



<p class="wp-block-paragraph"><strong>etcd:</strong></p>



<p class="wp-block-paragraph">#storage of api</p>



<p class="wp-block-paragraph"><strong>Container Runtime Engine</strong>:</p>



<p class="wp-block-paragraph">The&nbsp;<strong>container runtime</strong>&nbsp;pulls images from a&nbsp;<strong>container image registry</strong>&nbsp;and starts and stops containers. A 3<sup>rd</sup>&nbsp;party software or plugin, such as Docker, usually performs this function.</p>



<p class="wp-block-paragraph"><strong>Kube-proxy service</strong>:</p>



<p class="wp-block-paragraph"># assign IP address to each node, implements local&nbsp;<em>iptables</em>&nbsp;and rules to handle routing and&nbsp;traffic load balancing.</p>



<p class="wp-block-paragraph"><strong>Pods</strong>:</p>



<p class="wp-block-paragraph">#A&nbsp;<strong>pod</strong>&nbsp;is the smallest element of scheduling in Kubernetes.</p>



<p class="wp-block-paragraph">#it has all container services running within it which can&#8217;t be accessed. </p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image"><img decoding="async" src="https://phoenixnap.com/kb/wp-content/uploads/2021/04/full-kubernetes-model-architecture.png" alt="Understanding Kubernetes Architecture with Diagrams" /></figure>



<h2 class="wp-block-heading"><strong>Working with images:</strong></h2>



<p class="wp-block-paragraph">#A&nbsp;container image is a ready-to-run software package, containing everything needed to run an application:</p>



<p class="wp-block-paragraph">#By design, a container is immutable: you cannot change the code of a container that is already running. </p>



<p class="wp-block-paragraph"><strong>For more information:</strong>https://kubernetes.io/</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading" id="container-runtimes"></h2>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/basics-of-kubernetes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
