Skip to main content

ANSIBLE REMOTE-PROVISIONER

 NOTE:


  974  mkdir sourcepath
  975  cd sourcepath/
  976  wget https://www.free-css.com/assets/files/free-css-templates/download/page276/transportz.zip
  977  ll
  978  unzip transportz.zip
  979  ll
  980  rm -rf transportz.zip
  981  ll
  982  cp -rvf transportz/* .
  983  rm -rf transportz/


packer build aws.json
now to n.virginia region 
go to ami
launch image 
go to ec2 dashboard 
launch instance 
all traffic anywhere
use public ip of that with 8080 and see website'


vim   moo.json


{

       "builders": [

           {


           "type": "amazon-ebs",

           "access_key": "AGQ",

           "secret_key": "K1aurid",

           "region": "us-east-1",

           "instance_type": "t2.micro",

           "source_ami": "ami-02e136e904f3da870",

           "ssh_username": "ec2-user",

           "ami_name": "moonu-amiii"



           }


       ],

       "provisioners": [

             {:wq


             "type": "ansible",

             "user": "ec2-user",

             "playbook_file": "./playbook.yaml"



             }


       ]



}

=========================================================
ansible playbook
===================================

playbook.json

- name: packer project
  hosts: all
  become: true

  tasks:
     - name: install apache
       package:
           name: 'httpd'
           state: present

     - copy:
         src: /sourcepath/
         dest: /var/www/html/

     - lineinfile:
           path: /etc/httpd/conf/httpd.conf
           regexp: '^Listen'
           insertafter: '^#Listen'
           line: 'Listen 8080'


     - service:
            name: httpd
            state: started
            enabled: yes

Comments

Popular posts from this blog

Jenkins Terraform Integration | How do you integrate Terraform with Jenkins | Automate Infrastructure setup using Terraform and Jenkins Pipeline

  Pre-requistes: Jenkins  is up and running Terraform  is installed in Jenkins Terraform files already created in your SCM Make sure you have necessary IAM role created with right policy and attached to Jenkins EC2 instance. see below for the steps to create IAM role. I have provided  my public repo  as an example which you can use. Create IAM role to provision EC2 instance in AWS  Select AWS service, EC2, Click on Next Permissions Type EC2 and choose AmazonEC2FullAccess as policy Click on Next tags, Next Review give some role name and click on Create role. Assign IAM role to EC2 instance Go back to Jenkins EC2 instance, click on EC2 instance, Security, Modify IAM role Type your IAM role name  my-ec2-terraform-role  and Save to attach that role to EC2 instance. Create a new Jenkins Pipeline Give a name to the pipeline you are creating. Add parameters to the pipeline Click checkbox - This project is parameterized, choose Choice Parameter Enter name...

TIME-STAMP

NOTE: whenver we start provisioner we have to define ami_name always other it will give error  example we have already defined to install git . later i need to install tree also once i define my command and  try to buid it it give give error ami_name exist  so the solution is timestamp that we need to define in  ami_name: "dev-team-{{timestamp}}" {        "builders": [            {            "type": "amazon-ebs",            "access_key": "AVUGQ",            "secret_key": "KfVkt1aurid",            "region": "us-east-1",            "instance_type": "t2.micro",            "source_ami": "ami-02e136e904f3da870",            "ssh_username": "ec2-user",            "ami_name": "moonu-amiii-...

AWS KEY PAIR , vpc, Elastic-key, Security-group

 NOTE: once we make-instance it doesn't provide elastic IP, security group and key pair. go to docs  copy key pair code  go to the main console type ssh-keygen  type key name afreen  enter twice ls vim afreen.pub copy key  and paste in code     vim key.tf  provider "aws" {   region     = "us-east-1"   access_key = "AKIARUPJBFN6BKVUGQ"   secret_key = "KfU0tFpao0bDvc+GG63xN99jTMdfVkt1aurid" } resource "aws_instance" "web" {   ami           = "ami-02e136e904f3da870"   instance_type = "t2.micro"   key_name      = "afreen"   vpc_security_group_ids  = [aws_security_group.apple.id]   tags = {     Name = "HelloWorld"   } } resource "aws_key_pair" "moon" {   key_name   = "afreen"   public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCms+0pf8D2EEtdnVA3v+zc/P7ztVP/DrmdKOB1ZRfy2NYQ7faxKTuvVrNdzKvEdyxmnwK3+/+PrYL...