-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontroller-setup.sh
More file actions
executable file
·72 lines (56 loc) · 2.07 KB
/
Copy pathcontroller-setup.sh
File metadata and controls
executable file
·72 lines (56 loc) · 2.07 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash
# Jenkins Controller Setup Script
# Ubuntu 22.04 LTS on AWS EC2
set -e
echo "=== Jenkins Controller Setup ==="
# Update system packages
echo "Updating system packages..."
sudo apt update -y
# Install Java OpenJDK 17
echo "Installing Java OpenJDK 17..."
sudo apt install -y openjdk-17-jdk
# Verify Java installation
echo "Java version:"
java -version
# Add Jenkins repository
echo "Adding Jenkins repository..."
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# Update package list
sudo apt update -y
# Install Jenkins
echo "Installing Jenkins..."
sudo apt install -y jenkins
# Enable and start Jenkins service
echo "Enabling and starting Jenkins service..."
sudo systemctl enable jenkins
sudo systemctl start jenkins
# Check Jenkins status
sudo systemctl status jenkins --no-pager
# Configure firewall (if UFW is enabled)
if sudo ufw status | grep -q "Status: active"; then
echo "Configuring UFW firewall..."
sudo ufw allow 8080
sudo ufw allow ssh
fi
# Display initial admin password
echo "=== Jenkins Initial Setup ==="
echo "Jenkins is starting up. Please wait a moment..."
sleep 30
if [ -f /var/lib/jenkins/secrets/initialAdminPassword ]; then
echo "Initial Admin Password:"
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
else
echo "Initial password file not found. Jenkins may still be starting up."
echo "Run: sudo cat /var/lib/jenkins/secrets/initialAdminPassword"
fi
# Generate SSH key pair for agent connections
echo "=== Generating SSH Keys for Agent Connections ==="
sudo -u jenkins mkdir -p /var/lib/jenkins/.ssh
sudo -u jenkins ssh-keygen -t ed25519 -f /var/lib/jenkins/.ssh/jenkins_agent_key -N ""
echo "=== Setup Complete ==="
echo "Access Jenkins at: http://$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4):8080"
echo "Use the initial admin password displayed above for first-time setup."
echo ""
echo "SSH Public Key for Agents:"
sudo cat /var/lib/jenkins/.ssh/jenkins_agent_key.pub