Jenkins是一个免费的开源连续集成服务器。 它是用JAVA编写的。 它可以用于自动化与软件开发相关的各种任务,如构建测试和部署。 它支持许多版本控制系统,如git,SVN,mercurial等。
在本教程中,我们将在CentOS 7服务器上安装Jenkins Automation Server。 我们还将设置Nginx作为Jenkins的反向代理。
条件
- 最小CentOS 7服务器
- 根权限 本指南以root用户身份编写,如果以sudo用户身份登录,请运行
sudo -i
。
更新基本系统
在安装任何软件包之前,建议您使用以下命令更新软件包和存储库。
yum -y update
更新系统后,继续安装JAVA。
安装JAVA 8
Jenkins支持OpenJDK和Oracle JAVA,在本教程中,我们将安装最新版本的OpenJDK到服务器中。 运行以下命令在您的服务器上安装OpenJDK。
yum install java-1.8.0-openjdk
现在可以使用以下命令检查Java版本。
java -version
您将得到以下输出。
[root@liptan-pc ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
您还需要检查是否设置了JAVA_HOME
环境变量。 运行以下命令相同。
echo $JAVA_HOME
如果获得空或空白输出,则需要手动设置JAVA_HOME
变量。 使用您喜欢的编辑器编辑.bash_profile
文件。 在本教程中,我们将使用nano编辑器。 运行以下命令使用nano编辑.bash_profile
。
nano ~/.bash_profile
现在在文件的末尾添加以下行。
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/ export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre
现在使用以下命令来源文件。
source ~/.bash_profile
现在可以再次运行echo $ JAVA_HOME
命令来检查环境变量是否设置。
[root@pc ~]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/
现在您已安装JAVA,您可以继续安装Jenkins。
安装Jenkins
可以通过添加存储库并导入GPG密钥直接安装Jenkins。 通过运行以下命令将Jenkins存储库添加到系统中。
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
如果你没有安装wget
,可以运行yum -y install wget
。
通过运行以下命令导入GPG密钥。
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
导入成功后,您可以通过运行以下命令来安装Jenkins。
yum -y install jenkins
Jenkins现在安装在您的服务器上。 现在安装了所有必需的软件包。 安装程序还创建了一个新用户jenkins
来运行该进程。 您可以继续进行启动服务器。
开始Jenkins
您可以通过运行以下命令启动Jenkins。
systemctl start jenkins
要停止Jenkins,可以运行以下命令。
systemctl stop jenkins
您可以通过运行以下命令来检查进程的状态。
systemctl status jenkins
安装Nginx
我们可以使用Apache或Nginx Web服务器为应用程序创建一个反向代理,而不是访问端口8080上的应用程序。 在本教程中,我们将使用nginx作为应用程序的反向代理。 现在,nginx将在nginx代理服务器后面运行。 nginx在默认的YUM存储库中不可用。 您将需要安装EPEL仓库来安装Nginx。
yum -y install epel-release
现在可以通过运行Nginx来安装
yum -y install nginx
通过运行以下命令创建一个新的服务器块。
nano /etc/nginx/conf.d/jenkins.conf
使用以下内容填充文件。 将ci.yourdomain.com
替换为您的实际域名。
upstream jenkins{ server 127.0.0.1:8080; } server{ listen 80; server_name ci.yourdomain.com; access_log /var/log/nginx/jenkins.access.log; error_log /var/log/nginx/jenkins.error.log; proxy_buffers 16 64k; proxy_buffer_size 128k; location / { proxy_pass http://jenkins; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } }
保存文件并退出编辑器。 现在可以通过运行以下命令启动Nginx。
systemctl start nginx
通过运行以下命令,可以在启动时使Nginx自动启动。
systemctl enable nginx
配置防火墙和SELinux
如果您的服务器上运行防火墙,则需要通过防火墙允许端口8080和标准HTTP端口。 运行以下命令添加防火墙规则以允许端口8080和80。
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-service=http --permanent
运行以下命令重新加载防火墙区域:
firewall-cmd --reload
通过运行以下命令配置SELinux进行nginx代理配置。
setsebool httpd_can_network_connect 1 -P
配置Jenkins
您现在可以通过访问以下网址访问Jenkins CI服务器的Web界面。
http://ci.yourdomain.com
将ci.yourdomain.com
替换为您的实际域。 您将看到以下界面。
它将要求您提供由安装程序生成并存储在/ var / lib / jenkins / secrets / initialAdminPassword
文件中的初始管理员密码。 运行以下命令获取初始管理员密码。
cat /var/lib/jenkins/secrets/initialAdminPassword
使用密码登录进一步。
在下一节中,系统会询问您要安装哪些插件,对于初学者,建议您选择安装建议的插件 。
这将安装所有需要启动的插件。
在下一个界面上,它将安装插件。
现在,您将需要为Jenkins管理员信息板创建管理员用户。
最后,您将被带到Jenkins行政仪表板。