Ansible quick notes

Ansible is an IT automation tool to fulfill DevOps requirements. Ansible is written in Ruby, python, and powershell.

Ansible is used for cloud provisioning, application deployments, server patching , rebooting, configuration management, and many more IT tasks fulfillment.

Ansible Scripts are written in ansible playbook(s). I will include few sample playbooks and explain the its own declarative language below in this article.


What’s make Ansible so unique and top winner?

The main feature of Ansible is that it does not need Agents or any other special security infrastructure unlike other IT automation tools in the market.
Ansible just needs its automation jobs written in YAML file called as Ansible playbooks. 


What is Ansible Role directory structure ?

Role directory structure contains tasks, handlers, vars, files, templates etc. Roles helps to automatically load these. Ansible playbook is a mapping between hosts and Roles. E.g. are site.yml, webserbers.yml etc. While roles are set of tasks and variables.
Typical ansible directory layout contains inventory files to represent production and other staging environments.There will be master playbook yml files, webserver, dbserver yml files, other libraries representing custom modules like utility, plugins yml files, group and host representatives yml files, then roles as discussed above contains set of yml files and finally if needed monitoring yml files can also be added to a playbook.

 

-name: install a package
    yum:
      name: nginx
      state: installed
      validate_certs: no
      skip_broken: yes


Vagrant quick notes

Vagrant is highly useful to build and maintain portable virtual software development environment by doing software configuration management.
Vagrant is developed using Ruby. Vagrant uses provisioners like puppet or chef. Also Vagrat natively supports comes providers like Docker, VMware.
Vagrant acts as a middle layer between virtualization software and providers like Docker containers.

VbscriptSample

On Error Resume Next


strComputer = "."
Const Quote = """"
Dim Result


' Store the arguments in a variable:
Set Args = Wscript.Arguments

Result = 0

'check usage
If 2 <> Args.Count Then
	Wscript.Quit 1
End If


If 2 = Args.Count Then
	Dim FilePath, strLine,stringToFind, strIndex, strTemp
	FilePath = Args(0)
	StringToFind = Args(1)
	Set objFSO=CreateObject("Scripting.FileSystemObject")
	if Not objFSO.FileExists(FilePath) Then
		WScript.Echo StringToFind
		WScript.Echo "FileReadError!"
		Wscript.Quit 1
	Else		
		Set objFile = objFSO.OpenTextFile(FilePath)	

		Do Until objFile.AtEndOfStream
			strLine = objFile.ReadLine
			'WScript.Echo strLine
			strIndex = InStr(1, strLine, StringToFind,1) 
			If strIndex = 1  Then				
				strTemp=Replace(strLine," ","",Len(StringToFind)+1)
				WScript.Echo StringToFind&"#"&strTemp									
			End If
		Loop
		objFile.Close
	End If

End If
Wscript.Quit Result


Salesforce Visualforce Pages

Visualforce Pages- Similar to HTML page. Uses unique tag based markup language. VF page can be accessed using url.

Example for simple Visualforce page. 

Visualforce page code is shown below

Visualforce Page- Output

Visualforce page in lightning interface

What is Dockerfile, image, container !

What is Dockerfile, Docker Image and container ?

When I started reading about Docker, I was confused about the relationship between Docker file vs docker image vs docker container !

Short answer to my question is:

  • Docker file is where I need to script my steps on what actions to be done before I make a docker image.
  • A sample docker file as below:
  • here below in the code, I am pulling JDK environment in line 1.
  • copying a java class to app directory in line 2,
  • setting app as working directory in line 3 for my docker container after i convert image to container.
  • Then finally running my app in line 4.
    FROM java:8-jdk-alpine
    COPY HelloWorld.class /app/
    WORKDIR /app
    ENTRYPOINT [“java”,”HelloWorld”]
  • Docker image is created using the above docker file by building it. (command : docker build -t myhelloworldapp . )
  • then spin up the container by using command : docker run myhelloworldapp

Docker Basics

Docker build command is used to generate docker images out of dockerfile line by line instructions.
Docker build is managed by docker daemon and not by CLI.

Docker build context can be a set of files in a specified directory or a git repository.

PATH is for directory and URL is for git

dockerignore file is used to ignore not required files.

Docker daemon runs each instructions from Dockerfile and commits each instructions to new Image.

Docker has build cache to speed up build process.

What is a Docker file, image, container !

What is Dockerfile, Docker image and Docker container?

When I started reading about Docker, I was confused about the relationship between Docker file vs docker image vs docker container !

  • Docker file is where I need to script my steps on what actions to be done before I make a docker image.
    a sample docker file as below: here below in the code,
  • I am pulling JDK environment in line 1.
  • Then copying a java class to app directory in line 2,
  • Then setting app as working directory in line 3 for my docker container after i convert image to container.
  • Then finally running my app in line 4.
    FROM java:8-jdk-alpine
    COPY HelloWorl.class /app/
    WORKDIR /app
    ENTRYPOINT [“java”,”HelloWorld”]
  • Docker image is created using the above docker file by building it. (command : docker build -t myhelloworldapp . )
    • Note: dockerfile generates read only layers during the image conversion. These read only layers are created based the dockerfile commandline instructions. Images are considered as executable packages and is predefined. Once it is made, it can not be changed unless new dockerfile is created.
  • then spin up the container by using command : docker run myhelloworldapp

What is Amazon S3

Amazon S3 enables companies to store massive amount of data in a secure way. S3 enables companies to store, retrieve data. 

Benefits:

  • High durability, availability, and scalability. S3 provides the most comprehensive compliance capabilities.
  • S3 allows  data storage up to 5 terabytes 
  • S3 provides a REST web services interface supporting any internet development tool kit.
  • S3 is available in any AWS region worldwide

 

 

 

 

Components of 3 tier architecture – Web server vs Application server vs Database server

  • Web server serves a web content (HTML and static content) over the HTTP protocol.
  • Application server is a container on which one can build and expose business logic and processes to client applications through various protocols like HTTP. Some cases it will have internal web server. Application server is heavy in terms of resource usage.
  • Database server refers to the back-end system of a database application using client/server architecture. The database server performs tasks such as data analysis, storage, data manipulation, archiving, and other non-user specific tasks

 

What is amazon aws

amazon-aws

Amazon Web Services (AWS) is a subsidiary of amazon.com. AWS currently provides more than 100 services and helps to setup high computing power, data storage, queuing, notification, machine learning, security, monitoring services available under AWS management console.

AWS Free Tier includes 750 hours of Linux and Windows t2.micro instances each month for one year as per Amazon website. Please check  //aws.amazon.com or //aws.amazon.com/ec2/ website for more accurate details and to confirm this.
 
The quickest way to learn AWS is by creating free tier aws account by clicking below link.
 

Different AWS cloud services?

VPC, EC2, S3, SNS, SQS,  ML, Developer tools, Analytics, IAM, Media services etc.
 

VPC

What is VPC?

VPC lets us to place our AWS resources in a virtual network the way we wanted. As you can see below VPC 3 tier architecture holds the resources and makes a secure communication between the internet and your VPC.
 
VPC 3 tier architecture using AWS cloud services as below:
 

Amazon VPC – 3 tier architecture

here in the above diagram, Availability zone 1 has Web server 1, App server 1 and DB server 1 orchestrated 

Similarly, Availability zone 1 has Web server 2, App server 2 and DB server 2 orchestrated. 

The load balancer is placed to handle the load between the servers

EC2

 

What is EC2?

EC2 stands for Amazon Elastic Compute Cloud is a cloud service provides secure, resizable compute capacity. In simple terms it allows us to setup a windows, Linux servers in 2-3 minutes.

How to setup a Windows server and Linux server?

Steps:
AWS Free account gives access to AWS console.
Create a free account and select Linux and Windows t2.micro instances under EC2 option under AWS Dashboard.
Follow the instructions and make sure select “Free Tier Eligible servers” and after learning the process, terminate servers as to avoid the usage of computing services and storage.
 
 
Benefits?
Quick – easy to create/terminate servers.
Inexpensive – Gives an option to select the matching server configurations to reduce cost.   
Secure – EC2 works along with VPC to provide high security with robust networking features.
Elastic Web scale computing – enable to increase/decrease server capacity in minutes by adding/removing 100 of servers simultaneously. 
Integration – easy integration to VPC, S3, RDS etc.
 
Please click on S3Amazon Simple Storage Service (Amazon S3) 
 
Please click on RDS Amazon Relational Database Service (Amazon RDS)
 
Please click on VPC– Amazon Virtual Private Cloud (Amazon VPC)
 
Please click on RPA Amazon Relational Database Service (Amazon RDS)