Giter Site home page Giter Site logo

devops-9 / terraform-aws-jenkins Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aarongorka/terraform-aws-jenkins

0.0 1.0 0.0 21 KB

A Terraform module for deploying Jenkins master and build agents in AWS.

License: GNU General Public License v3.0

Shell 31.87% HCL 68.13%

terraform-aws-jenkins's Introduction

Jenkins Terraform Module

A Terraform module that deploys a multi-az master using ebs-pin and a spot ASG for build agents using Self-Organizing Swarm Plug-in. The build agents scale preemtively based on demand using jenkins-autoscaler.

Inputs

Name Description Type Default Required
agents_disk_size Size of root volume on Jenkins agents string "50" no
agents_instance_type Instance type of agents string "c5.large" no
agents_max_size Max size of agents ASG string "20" no
agents_min_size Minimum size of agents ASG string "2" no
agents_spot_price Max price for spot bids on agents string "0.5" no
agents_subnet_ids Subnet IDs for the Jenkins agents. list n/a yes
ami_id AMI ID used by the Jenkins master instance string "ami-08589eca6dcc9b39c" no
asg_tags Tags used for ASGs, has an addition attribute propagate_at_launch on every map. Do not include 'Name'. list n/a yes
aws_key_pair_name Keypair for the Jenkins master instance string n/a yes
aws_key_pair_public_key Public Key in authorized_keys format string n/a yes
dns_base_name DNS base zone, e.g. example.com string n/a yes
dns_name DNS record created for Jenkins master in dns_zone string n/a yes
dns_zone DNS zone ID used for Jenkins records string n/a yes
http_proxy HTTP Proxy used in the Jenkins userdata script string n/a yes
instance_type Instance type used by Jenkins master instance string "t3.medium" no
jenkins-cert ACM Certificate Domain Name for Jenkins string n/a yes
jenkins_unique_id Unique ID used to identify the EBS volume accross instance terminations string n/a yes
lb_subnet_ids Subnet IDs for the ALB. list n/a yes
master_ebs_jenkinshome_size Size of the master jenkins home volume string "50" no
master_ebs_root_size Size of the master EBS root volume string "20" no
master_subnet_ids Subnet ID for the Jenkins master instance. Multi AZ is supported :) list n/a yes
no_proxy Proxy exceptions used in the Jenkins userdata script string n/a yes
tags Tags used for all resources except asgs map n/a yes
vpc_id VPC ID used by the Jenkins master instance string n/a yes

Outputs

Name Description
master_ssh SSH to access the Jenkins master instance
url URL to access the Jenkins UI

Manual Steps Required

  1. Go through Jenkins setup, install recommended plugins and configure the proxy if required
  2. Install Self-Organizing Swarm Plug-in Modules and Blue Ocean plugin
  3. Enable JNLP port on 43863
  4. Create a local Jenkins service account called "agents" and put password in SSM with the key JENKINS_AGENTS_PASSWORD.
  5. Terminate agents and ensure they connect. Set number of build executors on the master to 0 (Manage Jenkins -> Manage Nodes -> Master).
  6. Terminate the master and ensure that it reboots with the correct data, and that metrics from jenkins-autoscaler are being output to CloudWatch Metrics
  7. Configure SCM plugins if required

terraform-aws-jenkins's People

Contributors

aarongorka avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.