Jenkins CI/CD Server

Sets up Jenkins automation server for continuous integration

Script Author

Rowan de Haas's avatar
Rowan de Haas
Script Author

Script Details

Created 4 months ago
Size 1 KB

Tags

Script Content

Raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#cloud-config
package_update: true
package_upgrade: true

packages:
  - openjdk-11-jdk
  - wget
  - gnupg
  - software-properties-common

write_files:
  - path: /etc/systemd/system/jenkins.service.d/override.conf
    content: |
      [Service]
      Environment="JAVA_OPTS=-Djava.awt.headless=true -Xmx512m"

runcmd:
  # Add Jenkins repository
  - wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add -
  - sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
  
  # Install Jenkins
  - apt-get update
  - apt-get install -y jenkins
  
  # Start Jenkins
  - systemctl enable jenkins
  - systemctl start jenkins
  
  # Configure firewall
  - ufw allow 8080/tcp
  
  # Display initial admin password
  - sleep 30
  - echo "Jenkins initial admin password:"
  - cat /var/lib/jenkins/secrets/initialAdminPassword

How to Use This Script

Cloud Provider Examples

Amazon EC2

aws ec2 run-instances
  --image-id ami-12345678
  --instance-type t3.micro
  --user-data file://script.yaml

DigitalOcean

doctl compute droplet create
  --image ubuntu-22-04-x64
  --size s-1vcpu-1gb
  --user-data-file script.yaml
  my-droplet

Google Cloud

gcloud compute instances create
  my-instance
  --metadata-from-file
  user-data=script.yaml