问题
客户预算有限,需要在aws云上面搞一台EC2手动安装jenkins发版。
步骤
创建密钥对
在EC2服务里面创建密钥对,具体如下图:
设置密钥对,如下图:
保存好这个私钥文件,以便后续用这个私钥文件SSH登录jenkins的EC2机器。
创建IAM用户(可选)
这个步骤,主要是给Jenkins准备一个能够自动启动和停止EC2实例来动态跑Jenkins任务的用户。我们的客户预算有限,不会让我们干这个,故我们可以跳过这个步骤。😊
找到AWS的IAM服务,创建jenkins用户。在创建用户之前,我们先创建一个自定义策略,具体操作如下图:
创建jenkins自定义用户策略,具体如下图:
自定义jenkins策略,内容如下:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1312295543082", "Action": [ "ec2:DescribeSpotInstanceRequests", "ec2:CancelSpotInstanceRequests", "ec2:GetConsoleOutput", "ec2:RequestSpotInstances", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:CreateTags", "ec2:DeleteTags", "ec2:DescribeInstances", "ec2:DescribeInstanceTypes", "ec2:DescribeKeyPairs", "ec2:DescribeRegions", "ec2:DescribeImages", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "iam:ListInstanceProfilesForRole", "iam:PassRole", "ec2:GetPasswordData" ], "Effect": "Allow", "Resource": "*" } ] }
创建自定义策略,如下:
自定义jenkins策略创建完成后,我们就可以开始创建一个jenkins用户了。具体如下图:
设置用户名为jenkins,如下图:
设置jenkins用户的权限为上述创建的自定义jenkins策略,如下图:
创建jenkins用户,如下图:
创建ec2安全组
我们为jenkins服务器创建一个开放8080端口的安全组。创建入口,如下图:
开始创建安全组,具体如下图:
这里主要设置访问SSH端口和访问jenkins的8080端口。
准备EC2实例
找到EC2实例创建入口,如下图:
具体EC2设置,如下图:
等待一段时间后,EC2实例就创建好了。
SSH私钥文件登录
# 调整本地文件权限 chmod 400 "jenkins.pem" # 登录 ssh -i "jenkins.pem" ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com
安装jenkins
# 更新OS sudo yum update -y # 设置yum源 sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo # 导入公钥 sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key # 升级包 sudo yum upgrade # 安装java sudo dnf install java-17-amazon-corretto -y # 安装jenkins sudo yum install jenkins -y # 配置随机启动 sudo systemctl enable jenkins # 启动jenkins sudo systemctl start jenkins # 查看启动状态 sudo systemctl status jenkins
配置jenkins
启动jenkins成功后,打开web页面,具体地址为http://你的EC2公网ip:8080,打开后,可以看到如下页面:
查看管理员初始化密码,具体命令如下:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
输入密码后,选择点击安装推荐的插件,如下图:
等待一段时间,安装好后,我们开始创建第一个管理用户和密码,具体如下:
创建admin用户完成后,到此jenkins就安装好了。
具体效果如下:
总结
jenkins安装还是挺简单的,后续,在这个上面搞CI/CD就行了。官网文档比较全面。
参考:
- Jenkins on AWS