中国网站建设排名,电脑配置会影响wordpress吗,广州软件外包公司排名,wordpress页面超链接Jenkins
Jenkins是一个可扩展的持续集成引擎#xff0c;是一个开源软件项目#xff0c;旨在提供一个开放易用的软件平台#xff0c;使软件的持续集成变成可能。 官网
应用场景
场景一
研发人员上传开发好的代码到github代码仓库需要将代码下载nginx服务器部署手动下载再…Jenkins
Jenkins是一个可扩展的持续集成引擎是一个开源软件项目旨在提供一个开放易用的软件平台使软件的持续集成变成可能。 官网
应用场景
场景一
研发人员上传开发好的代码到github代码仓库需要将代码下载nginx服务器部署手动下载再部署/使用脚本下载在部署
场景二 下载 安装
静态IP可以上外网主机名关闭防火墙,SeLinux脚本执行
#!/bin/bash# 关闭防火墙
echo 正在关闭防火墙...
sudo systemctl stop firewalld
sudo systemctl disable firewalld
echo 防火墙已关闭并禁用。# 检查 SELinux 状态
sestatus$(sestatus | grep SELinux status | awk {print $3})if [ $sestatus enabled ]; then# 关闭 SELinuxecho 正在关闭 SELinux...sudo setenforce 0sudo sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/configecho SELinux 已关闭。
elseecho SELinux 已经处于禁用状态无需操作。
fiecho 脚本执行完毕。
时间同步确定OpenJdk安装
yum install java-1.8.0-openjdk* -y查看JDK版本
[rootworkstation ~]# java -version
openjdk version 1.8.0_372
OpenJDK Runtime Environment (build 1.8.0_372-b07)
OpenJDK 64-Bit Server VM (build 25.372-b07, mixed mode)
上传 rpm包安装 [rootworkstation ~]# rpm -ivh jenkins-2.150.3-1.1.noarch.rpm
warning: jenkins-2.150.3-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY
Preparing... ################################# [100%]
Updating / installing...1:jenkins-2.150.3-1.1 ################################# [100%]
启动服务查看端口
[rootworkstation ~]# systemctl start jenkins
[rootworkstation ~]# systemctl enable jenkins
jenkins.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig jenkins on[rootworkstation ~]# ps -aux | grep 8080
jenkins 7687 80.3 25.7 2359788 256212 ? Ssl 09:49 0:32 /etc/alternatives/java -Dcom.sun.akuma.Daemondaemonized -Djava.awt.headlesstrue -DJENKINS_HOME/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile/var/log/jenkins/jenkins.log --webroot/var/cache/jenkins/war --daemon --httpPort8080 --debug5 --handlerCountMax100 --handlerCountMaxIdle20
root 7760 0.0 0.0 112708 972 pts/0 R 09:50 0:00 grep --colorauto 8080
查看密码文件里的密码此为初始管理员用户admin的密码。通过浏览器访问填上密码(服务器IP端口8080
[rootworkstation ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
7c1491b0219849f981255179e9981bba 选择安装推荐插件 进入主界面
退出登录后密码问题
退出后,再次登录使用admin用户, 密码为cat /var/lib/jenkins/secrets/initialAdminPassword得到的字符串
如果需要修改密码
GitGitHubJenkins 开发者电脑准备
yum install git -y创建密钥对 [rootservera ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -C rootservera -N
在开发者电脑上查看并复制公钥
[rootservera ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOHXkXsoYB1JtMJtXBeZrtcqsRRKBJEAzxGCoUyGM0B7SQYBQXaes4xTtQjOjJkL5HWQdaSelGGA8ySRjKuseIdYsPPcG5kxARkJ1C6jJp3MamzuxJCjo2n3hmmopfB4f2eE3Kn5kbAUcmJRJfjUCgufsFjuY836Np9HNLqqYOuZCAKJEQm/IMTJgZ13aq/ss6VcA/IikX4d/PDsgYdNYSL8IxKiThfNlv3NIdOqNxAz2q4mFg2Vj9o1hvfnqGDIxuXyDGjVLZAW6bvJliJvJs3MfD7f4tn8gyFlArxPT0tMS7ePbxGBCBj2XC8qW9lcmrXD2163pbP/N6IoCT rootservera
将密钥公钥添加到github
GitHub新建仓库 开发者提交文件测试
免密登录地址
gitgithub.com:rkun0068/jenkins.git开发者电脑设置开发者身份
[rootservera ~]# git config --global user.name servera
[rootservera ~]# git config --global user.email rkun18outlook.com
克隆项目到开发者本地电脑上
[rootservera ~]# git clone gitgithub.com:rkun0068/jenkins.git
提交测试代码
[rootservera ~]# cd jenkins/
[rootservera jenkins]# echo Jenkins Test README.md
[rootservera jenkins]# git add README.md
[rootservera jenkins]# git commit -m add README.md
[master (root-commit) eb74eb9] add README.md1 file changed, 1 insertion()create mode 100644 README.md
[rootservera jenkins]# git branch
* master
[rootservera jenkins]# git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 228 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: To gitgithub.com:rkun0068/jenkins.git* [new branch] master - master
Branch master set up to track remote branch master from origin.
验证
Nginx服务器准备
在Nginx服务器上安装Nginx并启动服务 yum install epel-releaseyum install nginx -ysystemctl start nginxsystemctl enable nginxJenkins安装插件
Jenkins图形确认安装git plugin和publish over ssh插件
配置jenkins通过Publish Over SSH免密连接Nginx
在jenkins服务器生产空密码 密钥对 [rootworkstation ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -C rootworkstation -N
查看并复制私钥 [rootworkstation ~]# cat ~/.ssh/id_rsa
在jenkins中添加私钥 点击Add添加服务器配置在Jenkins服务器上配置对Nginx服务器的免密登录
#填上Nginx服务器IP地址
[rootworkstation ~]# ssh-copy-id -i 192.168.182.132
填写Nginx配置信息测试连接成功后保存 添加Jenkins服务器公钥到GitHub 为Jenkins服务器添加凭据
凭据使Jenkins给字节构建项目授权使用的。 此文章中Jenkins通过SSH免密去找GitHub的项目仓库clone或pull项目代码。 但Jenkins服务本身不允许使用自己的私钥访问GitHub公钥给凭据让它可以实现功能就可以。
凭据是一种和第三方程序通讯的权限授权。本案例的凭据就是允许使用SSH免密。
可以使凭据在Jenkins里授权给任何需要SSH免密通讯的构建项目。
Jenkins界面添加凭据 添加凭据信息
Jenkins任务创建
创建新任务 自定义任务名称与风格 定义源码管理如果URL错误有可能使Jenkins服务器没有安装GitGit安装即可 自定义构建方法和目标主机目录 手动构建
立即构建 查看 查看控制台输出信息 Nginx服务器验证是否被上传到Nginx家目录 [rootserverb ~]# ls /usr/share/nginx/html/
404.html 50x.html en-US icons img index.html nginx-logo.png poweredby.png README.md
#可以看到README.md被传过来了
自动发布系统 GitLab上创建新仓库 开发者电脑clone创建好的项目 [rootservera ~]# git clone git192.168.182.133:root/auto_build_web.git[rootservera ~]# cd auto_build_web/
[rootservera auto_build_web]#
开发者要产生ssh空密码密钥对,把公钥添加到gitlab
Jenkins安装对应插件 添加Jenkins服务器公钥到GitLab
Jenkins产生root用户SSH空密码密钥对添加公钥到GitLab复制GitLab上自动发布项目地址在Jenkins服务器上克隆仓库确认连接OK [rootworkstation ~]# git clone git192.168.182.133:root/auto_build_web.git
Jenkins创建自动构建任务 执行此脚本的是Jenkins服务器上的Jenkins用户
#!/bin/bash#源目录为jenkins存放任务文件的目录
SOURCE_DIR/var/lib/jenkins/workspace/$JOB_NAME/
#目标目录为nginx服务器的家目录
DEST_DIR/usr/share/nginx/html
#使用rsync同步源到nginx服务器家目录(需要免密登录)IP为nginx服务器IP
/usr/bin/rsync -av --delete $SOURCE_DIR root192.168.182.132:$DEST_DIR配置Jenkins服务器上Jenkins用户
[rootworkstation ~]# grep jenkins /etc/passwd
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/false
[rootworkstation ~]# usermod -s /bin/bash jenkins
[rootworkstation ~]# grep jenkins /etc/passwd
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/bash[rootworkstation ~]# su - jenkins
-bash-4.2$ ssh-keygen -t rsa -C jenkins user -N -bash-4.2$ ssh-copy-id -i root192.168.182.132
Jenkins全局安全配置 配置GitLab运行本地网络使用WebHook 为GitLab自动构建项目添加Webhook 代码自动发布测试
开发者使用Git提交测试文件
[rootservera auto_build_web]# echo auto_build_web index.html
[rootservera auto_build_web]# git add index.html
[rootservera auto_build_web]# git commit -m add index.html
[master (root-commit) fddcaba] add index.html1 file changed, 1 insertion()create mode 100644 index.html
[rootservera auto_build_web]# git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 225 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)To git192.168.182.133:root/auto_build_web.git* [new branch] master - master
Branch master set up to track remote branch master from origin.
[rootserverb ~]# cat /usr/share/nginx/html/index.html
auto_build_web
如果出现构建失败的情况很可能是某个主机rsync没有安装