Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

1- Create an VM on AWS ( can use terraform )

2- Install the missing packages

3- run the contrail installation playbook

contrail-container-deployer:   https://github.com/Juniper/contrail-ansible-deployer

...

ami-d27709aa    US-WEST-2


With Terraform

Code Block
titleTerraform code to create VM
collapsetrue
#AWS access and securty key
# 1- create an VPC
# 1a- create an Internet Gateway
# 1b- create an Route in the RT
# 1c- create Security Groups
# 2- create subnet
# 3- Create an Key pair to access the VM
# 4- create an instance

# define variables and point to terraform.tfvars
variable "access_key" {}
variable "secret_key" {}
variable "region" { default = "us-west-2" }
variable pri_sub1 { default = "10.1.1.0/24" }


#AWS access and secret key to access AWS
provider "aws" {
        access_key = "${var.access_key}"
        secret_key = "${var.secret_key}"
        region = "${var.region}"
}

# 1- create an VPC in aws
resource "aws_vpc" "vpc" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_support   = true
  enable_dns_hostnames = true
  tags {
    Name = "ixVPC"
  }
}

# 1a- create an Internet Gateway
resource "aws_internet_gateway" "gw" {
  vpc_id = "${aws_vpc.vpc.id}"
  tags {
    Name = "main_gw"
  }
}

# 1b- create an Route in the RT
resource "aws_route" "internet_access" {
  route_table_id         = "${aws_vpc.vpc.main_route_table_id}"
  destination_cidr_block = "0.0.0.0/0"
  gateway_id             = "${aws_internet_gateway.gw.id}"
}

# 1c- create Security Groups
resource "aws_security_group" "allow_ssh" {
  name = "allow_inbound_SSH"
  description = "Allow inbound SSH traffic from any IP@"
  vpc_id = "${aws_vpc.vpc.id}"
  ingress {
    from_port = 22
    to_port = 22
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  egress {
    from_port       = 0
    to_port         = 0
    protocol        = "-1"
    cidr_blocks     = ["0.0.0.0/0"]
    #prefix_list_ids = ["pl-12c4e678"]
  }
  tags {
    Name = "Allow SSH"
    }
}

# 2- create subnet
resource "aws_subnet" "private" {
  vpc_id = "${aws_vpc.vpc.id}"
  cidr_block = "${var.pri_sub1}"
  tags {
    #Name = "${var.name}-private"
    Name = "ixVPC-private"
  }
}

#3- Create an Key pair to access the VM
#resource "aws_key_pair" "admin_key" {
#  key_name   = "admin_key"
#  public_key = "ssh-rsa AAAAB3[…]"
#}

# 4- create an instance
resource "aws_instance" "vminstance1" {
        # AWS Centos 7 AMI
        ami = "ami-5490ed2c"
        instance_type = "t2.micro"
        # key pair in us-west-2 or Oregon
        key_name = "TerraformKeyPair"
        # to log in: centos / terraformkeypair
        #
        subnet_id = "${aws_subnet.private.id}"
        #security_groups= ["TerraformsSecurityGroup"]
        security_groups = ["${aws_security_group.allow_ssh.id}"]
        associate_public_ip_address = true
        tags {
         Name = "VMinstance1"
        }
}





Code Block
titleinstall contrail on AWS
collapsetrue
   In the case the installation is done locally: log into the VM in AWS, and then do the installlation from here
   ---------------------------------------------------------------------------------------------------------------
   ssh-keygen ( passphrase contrail50 )
   ssh-add ~/.ssh/id_rsa
   ssh-add -l
   ssh-add -L  
   
   more .ssh/authorized_keys    >>> can see the terraformapukey ( to log into the VM remotely : home to AWS DC)
   vi .ssh/authorized_keys      # add the key from "ssh-add -L "
   
   ssh localhost                  # just to check that the key has been copy and works 
   exit 



#ssh-copy-id <10.0.1.104>
sudo yum install -y ansible-2.4.2.0
sudo yum install git -y
git clone http://github.com/Juniper/contrail-ansible-deployer
cd contrail-ansible-deployer
#ansible-playbook -i inventory/ -e orchestrator=kubernetes -e '{"instances":{"bms1":{"ip":"10.0.1.104","provider":"bms"}}}' playbooks/configure_instances.yml
#ansible-playbook -i inventory/ -e orchestrator=kubernetes -e '{"instances":{"bms1":{"ip":"10.0.1.104","provider":"bms"}}}' playbooks/install_contrail.yml

ansible-playbook -i inventory/ -e orchestrator=kubernetes -e '{"instances":{"bms1":{"ip":"localhost","provider":"bms"}}}' playbooks/configure_instances.yml
ansible-playbook -i inventory/ -e orchestrator=kubernetes -e '{"instances":{"bms1":{"ip":"localhost","provider":"bms"}}}' playbooks/install_contrail.yml


...