Skip to content

Instantly share code, notes, and snippets.

@fdesouza-ssense
Created October 21, 2023 02:29
Show Gist options
  • Save fdesouza-ssense/0b24483439e96ed7c88c665382b6e94e to your computer and use it in GitHub Desktop.
Save fdesouza-ssense/0b24483439e96ed7c88c665382b6e94e to your computer and use it in GitHub Desktop.
Jenkins controller AMI
#!/bin/bash
echo "Install jenkins"
sudo mv /usr/share/java/jenkins.war /usr/share/java/jenkins.war.old
sudo wget -q -O /usr/share/java/jenkins.war http://updates.jenkins-ci.org/download/war/$JENKINS_VERSION/jenkins.war
sudo systemctl stop jenkins
sudo systemctl enable jenkins
sudo systemctl start jenkins
echo "Jenkins version : $(sudo java -jar jenkins-cli.jar -s http://localhost:8080/ -auth admin:$(sudo cat /var/lib/jenkins/secrets/initialAdminPassword) version)"
source "amazon-ebs" "jenkins_master_ami" {
ami_description = "Jenkins golden image ${local.creation_date}"
ami_name = "${var.ami_prefix}-${local.creation_date}"
ami_regions = ["us-west-2"]
ami_virtualization_type = "hvm"
skip_create_ami = var.skip_create_ami
instance_type = "m6i.4xlarge"
source_ami = data.amazon-ami.base_ami.id
run_tags = {
Name = "Packer Builder #${var.pipeline_id}"
}
ssh_interface = "private_ip"
ssh_username = "ec2-user"
ssh_clear_authorized_keys = true
tags = {
"Name" = "jenkins-controller"
"Metadata" = "JENKINS_VERSION=${var.jenkins_version}, JAVA_VERSION=${var.java_version}, PIPELINE_ID=${var.pipeline_id}"
}
assume_role {
role_arn = var.role_arn
}
}
build {
sources = [
"source.amazon-ebs.jenkins_master_ami"
]
provisioner "shell" {
environment_vars = [
"JENKINS_VERSION=${var.jenkins_version}",
"JAVA_VERSION=${var.java_version}"
...
]
scripts = [
"${path.root}/scripts/1-packages.sh",
"${path.root}/scripts/2-jenkins.sh".
...
]
max_retries = 3
}
}
java_version = "17"
jenkins_version = "2.401.2"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment