diff --git a/01-jenkins-setup/ansible/jenkins-controller.yaml b/01-jenkins-setup/ansible/jenkins-controller.yaml index ad97960..6246df1 100644 --- a/01-jenkins-setup/ansible/jenkins-controller.yaml +++ b/01-jenkins-setup/ansible/jenkins-controller.yaml @@ -7,7 +7,7 @@ vars: efs_mount_dir: "/data" jenkins_data_dir: "/data/jenkins" - jenkins_lts_version: "2.387.1" + jenkins_lts_version: "2.492.1" roles: diff --git a/01-jenkins-setup/ansible/roles/jenkins-agent/tasks/ssh.yaml b/01-jenkins-setup/ansible/roles/jenkins-agent/tasks/ssh.yaml index 7c4d4bb..68b3588 100644 --- a/01-jenkins-setup/ansible/roles/jenkins-agent/tasks/ssh.yaml +++ b/01-jenkins-setup/ansible/roles/jenkins-agent/tasks/ssh.yaml @@ -3,7 +3,6 @@ script: "{{ playbook_dir }}/scripts/get-ssh-pub.py {{ public_key_path }}" args: executable: /usr/bin/python3 - remote_src: yes register: secret_value - name: Print registered variable diff --git a/01-jenkins-setup/ansible/roles/jenkins-agent/tasks/tools.yaml b/01-jenkins-setup/ansible/roles/jenkins-agent/tasks/tools.yaml index 7a20d32..a7a1865 100644 --- a/01-jenkins-setup/ansible/roles/jenkins-agent/tasks/tools.yaml +++ b/01-jenkins-setup/ansible/roles/jenkins-agent/tasks/tools.yaml @@ -9,27 +9,41 @@ name: python3-pip state: present -- name: Install boto3 using pip3 - become: true - pip: - name: boto3 +- name: Install boto3 using apt + apt: + name: python3-boto3 state: present + become: yes -- name: Install AWS CLI using pip - become: true - pip: - name: awscli - state: latest - executable: pip3 +- name: Install dependencies + apt: + name: + - curl + - unzip + state: present + +- name: Download AWS CLI installation script + shell: curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip" + +- name: Unzip AWS CLI installation package + unarchive: + src: /tmp/awscliv2.zip + dest: /tmp/ + remote_src: yes + +- name: Install AWS CLI + shell: sudo /tmp/aws/install - name: Install Ansible - pip: + apt: name: ansible state: latest -- name: Add HashiCorp GPG key - become: yes - shell: "wget -qO- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg" +- name: Download and convert HashiCorp GPG key in one step + shell: | + curl -fsSL https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg + args: + creates: /usr/share/keyrings/hashicorp-archive-keyring.gpg - name: Add HashiCorp APT repository become: yes diff --git a/01-jenkins-setup/ansible/roles/jenkins-controller/tasks/base.yaml b/01-jenkins-setup/ansible/roles/jenkins-controller/tasks/base.yaml index 9533c9c..6bbdbee 100644 --- a/01-jenkins-setup/ansible/roles/jenkins-controller/tasks/base.yaml +++ b/01-jenkins-setup/ansible/roles/jenkins-controller/tasks/base.yaml @@ -13,18 +13,30 @@ name: python3-pip state: present -- name: Install boto3 using pip3 - become: true - pip: - name: boto3 +- name: Install boto3 using apt + apt: + name: python3-boto3 + state: present + become: yes + +- name: Install dependencies + apt: + name: + - curl + - unzip state: present -- name: Install AWS CLI using pip - become: true - pip: - name: awscli - state: latest - executable: pip3 +- name: Download AWS CLI installation script + shell: curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip" + +- name: Unzip AWS CLI installation package + unarchive: + src: /tmp/awscliv2.zip + dest: /tmp/ + remote_src: yes + +- name: Install AWS CLI + shell: sudo /tmp/aws/install - name: Install Java JDK 17 apt: diff --git a/01-jenkins-setup/ansible/scripts/get-ssh-pub.py b/01-jenkins-setup/ansible/scripts/get-ssh-pub.py index e7ebb43..0b157ec 100644 --- a/01-jenkins-setup/ansible/scripts/get-ssh-pub.py +++ b/01-jenkins-setup/ansible/scripts/get-ssh-pub.py @@ -2,6 +2,6 @@ import json import sys -client = boto3.client('ssm', region_name='us-west-2') +client = boto3.client('ssm', region_name='us-east-1') response = client.get_parameter(Name=sys.argv[1], WithDecryption=True) print(response['Parameter']['Value']) diff --git a/01-jenkins-setup/jenkins-agent.pkr.hcl b/01-jenkins-setup/jenkins-agent.pkr.hcl index 3825ad0..1ada521 100644 --- a/01-jenkins-setup/jenkins-agent.pkr.hcl +++ b/01-jenkins-setup/jenkins-agent.pkr.hcl @@ -1,6 +1,6 @@ variable "ami_id" { type = string - default = "ami-0735c191cf914754d" + default = "ami-04b4f1a9cf54c11d0" } variable "public_key_path" { @@ -15,8 +15,8 @@ locals { source "amazon-ebs" "jenkins" { ami_name = "${local.app_name}" instance_type = "t2.micro" - region = "us-west-2" - availability_zone = "us-west-2a" + region = "us-east-1" + availability_zone = "us-east-1c" source_ami = "${var.ami_id}" ssh_username = "ubuntu" iam_instance_profile = "jenkins-instance-profile" @@ -31,7 +31,7 @@ build { provisioner "ansible" { playbook_file = "ansible/jenkins-agent.yaml" - extra_arguments = [ "--extra-vars", "public_key_path=${var.public_key_path}", "--scp-extra-args", "'-O'", "--ssh-extra-args", "-o IdentitiesOnly=yes -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa" ] + extra_arguments = [ "--extra-vars", "public_key_path=${var.public_key_path}", "--scp-extra-args", "'-O'", "--ssh-extra-args", "-o IdentitiesOnly=yes -o HostKeyAlgorithms=+ssh-rsa" ] } post-processor "manifest" { diff --git a/01-jenkins-setup/jenkins-controller.pkr.hcl b/01-jenkins-setup/jenkins-controller.pkr.hcl index 41ddf31..6d065c7 100644 --- a/01-jenkins-setup/jenkins-controller.pkr.hcl +++ b/01-jenkins-setup/jenkins-controller.pkr.hcl @@ -1,6 +1,6 @@ variable "ami_id" { type = string - default = "ami-0735c191cf914754d" + default = "ami-04b4f1a9cf54c11d0" } variable "efs_mount_point" { @@ -9,14 +9,14 @@ variable "efs_mount_point" { } locals { - app_name = "jenkins-controller" + app_name = "jenkins-controller-updated" } source "amazon-ebs" "jenkins" { ami_name = "${local.app_name}" instance_type = "t2.micro" - region = "us-west-2" - availability_zone = "us-west-2a" + region = "us-east-1" + availability_zone = "us-east-1d" source_ami = "${var.ami_id}" ssh_username = "ubuntu" tags = { @@ -30,7 +30,7 @@ build { provisioner "ansible" { playbook_file = "ansible/jenkins-controller.yaml" - extra_arguments = [ "--extra-vars", "ami-id=${var.ami_id} efs_mount_point=${var.efs_mount_point}", "--scp-extra-args", "'-O'", "--ssh-extra-args", "-o IdentitiesOnly=yes -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa" ] + extra_arguments = [ "--extra-vars", "ami-id=${var.ami_id} efs_mount_point=${var.efs_mount_point}", "--scp-extra-args", "'-O'", "--ssh-extra-args", "-o IdentitiesOnly=yes -o HostKeyAlgorithms=+ssh-rsa" ] } post-processor "manifest" { diff --git a/01-jenkins-setup/terraform/agent/main.tf b/01-jenkins-setup/terraform/agent/main.tf index e0ae659..7198977 100644 --- a/01-jenkins-setup/terraform/agent/main.tf +++ b/01-jenkins-setup/terraform/agent/main.tf @@ -1,14 +1,13 @@ provider "aws" { - region = "us-west-2" + region = "us-east-1" } module "ec2_instance" { source = "../modules/ec2" - instance_name = "jenkins-agent" - ami_id = "ami-0e68ab34763bcba1f" + ami_id = "ami-0fe5ed92a8c77d79f" instance_type = "t2.small" - key_name = "techiescamp" - subnet_ids = ["subnet-058a7514ba8adbb07", "subnet-0dbcd1ac168414927", "subnet-032f5077729435858"] + key_name = "jenkinskey" + subnet_ids = ["subnet-046c3f4390fc51b7e", "subnet-02727435b393c516c", "subnet-0ed1c80066f1be7ed"] instance_count = 1 } diff --git a/01-jenkins-setup/terraform/efs/main.tf b/01-jenkins-setup/terraform/efs/main.tf index a2ef28d..cb8d4c7 100644 --- a/01-jenkins-setup/terraform/efs/main.tf +++ b/01-jenkins-setup/terraform/efs/main.tf @@ -1,9 +1,9 @@ provider "aws" { - region = "us-west-2" + region = "us-east-1" } module "efs_module" { source = "../modules/efs" - vpc_id = "vpc-0a5ca4a92c2e10163" - subnet_ids = ["subnet-058a7514ba8adbb07", "subnet-0dbcd1ac168414927", "subnet-032f5077729435858"] + vpc_id = "vpc-0872a2ffd55e763ca" + subnet_ids = ["subnet-046c3f4390fc51b7e", "subnet-02727435b393c516c", "subnet-0ed1c80066f1be7ed"] } \ No newline at end of file diff --git a/01-jenkins-setup/terraform/iam/main.tf b/01-jenkins-setup/terraform/iam/main.tf index 2ea5b55..0b13156 100644 --- a/01-jenkins-setup/terraform/iam/main.tf +++ b/01-jenkins-setup/terraform/iam/main.tf @@ -1,5 +1,5 @@ provider "aws" { - region = "us-west-2" + region = "us-east-1" } module "jenkins_iam" { diff --git a/01-jenkins-setup/terraform/lb-asg/main.tf b/01-jenkins-setup/terraform/lb-asg/main.tf index 52dd97c..3258e3c 100644 --- a/01-jenkins-setup/terraform/lb-asg/main.tf +++ b/01-jenkins-setup/terraform/lb-asg/main.tf @@ -1,13 +1,13 @@ provider "aws" { - region = "us-west-2" + region = "us-east-1" } module "lb-asg" { source = "../modules/lb-asg" - subnets = ["subnet-058a7514ba8adbb07", "subnet-0dbcd1ac168414927", "subnet-032f5077729435858"] - ami_id = "ami-074d40b56472c5b9b" + subnets = ["subnet-046c3f4390fc51b7e", "subnet-02727435b393c516c", "subnet-0ed1c80066f1be7ed"] + ami_id = "ami-0e9419006a1fc1387" instance_type = "t2.small" - key_name = "techiescamp" + key_name = "jenkinskey" environment = "dev" - vpc_id = "vpc-0a5ca4a92c2e10163" + vpc_id = "vpc-0872a2ffd55e763ca" } \ No newline at end of file diff --git a/01-jenkins-setup/terraform/modules/ec2/variable.tf b/01-jenkins-setup/terraform/modules/ec2/variable.tf index 86f4464..d9f7b31 100644 --- a/01-jenkins-setup/terraform/modules/ec2/variable.tf +++ b/01-jenkins-setup/terraform/modules/ec2/variable.tf @@ -1,5 +1,5 @@ provider "aws" { - region = "us-west-2" + region = "us-east-1" } variable "instance_name" { @@ -19,7 +19,7 @@ variable "instance_type" { variable "key_name" { type = string - default = "techiescamp" + default = "jenkinskey" } variable "security_group_ids" {