Skip to content

Instantly share code, notes, and snippets.

View rohitg00's full-sized avatar
:octocat:
Working from home

Rohit Ghumare rohitg00

:octocat:
Working from home
View GitHub Profile
@rohitg00
rohitg00 / main_code.py
Created May 28, 2020 21:23
Fashion_mnist code for automation with Jenkins and Docker.
# keras imports for the dataset and building our neural network
from keras.datasets import fashion_mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Conv2D, MaxPool2D, Flatten
from keras.utils import np_utils
from keras.callbacks import Callback
# to calculate accuracy
from sklearn.metrics import accuracy_score
import numpy as np
//Describing Provider
provider "aws" {
region = "ap-south-1"
profile = "rg"
}
//Creating Key
resource "tls_private_key" "tls_key" {
algorithm = "RSA"
}
//Generating Key-Value Pair
resource "aws_key_pair" "generated_key" {
key_name = "rg-env-key"
public_key = "${tls_private_key.tls_key.public_key_openssh}"
//Creating Variable for AMI_ID
variable "ami_id" {
type = string
default = "ami-0447a12f28fddb066"
}
//Creating Variable for AMI_Type
variable "ami_type" {
type = string
default = "t2.micro"
//Creating Security Group
resource "aws_security_group" "web-SG" {
name = "Terraform-SG"
description = "Web Environment Security Group"
//Adding Rules to Security Group
ingress {
description = "SSH Rule"
from_port = 22
//Creating a S3 Bucket for Terraform Integration
resource "aws_s3_bucket" "rg-bucket" {
bucket = "rg-static-data-bucket"
acl = "public-read"
}
//Putting Objects in S3 Bucket
resource "aws_s3_bucket_object" "web-object1" {
bucket = "${aws_s3_bucket.rg-bucket.bucket}"
key = "rg.jpg"
//Creating CloutFront with S3 Bucket Origin
resource "aws_cloudfront_distribution" "s3-web-distribution" {
origin {
domain_name = "${aws_s3_bucket.rg-bucket.bucket_regional_domain_name}"
origin_id = "${aws_s3_bucket.rg-bucket.id}"
}
enabled = true
is_ipv6_enabled = true
//Launching EC2 Instance
resource "aws_instance" "web" {
ami = "${var.ami_id}"
instance_type = "${var.ami_type}"
key_name = "${aws_key_pair.generated_key.key_name}"
security_groups = ["${aws_security_group.web-SG.name}","default"]
//Labelling the Instance
tags = {
Name = "Web-Env"
resource "null_resource" "remote1" {
depends_on = [ aws_instance.web, ]
//Executing Commands to initiate WebServer in Instance Over SSH
provisioner "remote-exec" {
connection {
agent = "false"
type = "ssh"
user = "ec2-user"
private_key = "${tls_private_key.tls_key.private_key_pem}"
//Creating EBS Snapshot
resource "aws_ebs_snapshot" "ebs_snapshot" {
volume_id = "${aws_ebs_volume.web-vol.id}"
description = "Snapshot of our EBS volume"
tags = {
env = "Production"
}
depends_on = [
aws_volume_attachment.ebs_att