1、安装java环境JDK
yum install -y java
2、安装jenkins
添加Jenkins库到yum库,Jenkins将从这里下载安装。
yum -y install wget
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum install -y jenkins
3、启动jenkins,这一步可以等一下,后面还有一些配置
service jenkins start
service jenkins stop //停止 service jenkins restart //重启
安装完成,你需要明白jenkins的几个知识点:
- 安装成功之后,jenkins将作为一个守护进程随系统启动
- 系统会创建一个“jenkins”用户来允许这个服务,如果需要改变这个用户,需要改配置文件,后文再说如何改这个用户。
- 启动所用的配置文件所在位置:/etc/sysconfig/jenkins,包括端口号和jenkins用户都在这里配置
- 默认情况下,jenkins运行在8080端口,如果不冲突,可以不改
- jenkins的默认JENINS_HOME目录在:/var/lib/jenkins/
- jenkins的默认日志文件在:/var/log/jenkins/jenkins.log
- jenkins的war运行包在:/usr/lib/jenkins/jenkins.war
- 安装成功之后,初始化密码在:/var/lib/jenkins/secrets/initialAdminPassword
4、安装完成之后,这个jenkins用户是权限不足的,无法帮我们执行一些文件夹的操作,我们需要把它换成root
打开配置文件
vi /etc/sysconfig/jenkins
找到JENKINS_USER,然后会发现执行的默认用户是jenkins
修改$JENKINS_USER
JENKINS_USER="root"
修改jenkins相关文件夹的用户权限
chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins
重启jenkins
service jenkins restart
打开防火墙的8080端口
firewall-cmd --permanent --zone=public --add-port=8080/tcp systemctl reload firewalld
这时候可以在客户机访问jenkins了,找到管理员密码进行插件安装等操作。
查看初始化密码
vi /var/lib/jenkins/secrets/initialAdminPassword
5、安装.NetCore SDK
安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
安装SDK,这里看情况,你的项目需要哪一个版本就安装哪一个
sudo yum install dotnet-sdk-3.1 sudo yum install dotnet-sdk-5.0
6、安装GIT
yum install git
到这,jenkins环境才算完全搭建好了。
7、进入jenkins首页,开始搭建项目。
新增项目--》自由风格项目--》确定
8、开始配置参数(This project is parameterized)
- 选择类型参数-分支名称
BRANCH_NAME master 分支名称
- 选择类型参数-编译方式
COMPILE_MODE Debug Release 编译方式
- 字符串参数-启动目录
PROJECT_START_PATH ./ 启动项目文件夹(根据拉取下来的目录结构而定,有些可能是src/Benchint.Leo.Mphis.ClientApi.HttpApi.Host)
- 字符串参数-主版本号
MAJOR_NO 1 主版本号
- 字符串参数-次版本号
BUILD_NO 0 次版本号
- 字符串参数-三级版本号
THR_NO 0 三级版本号
- 字符串参数-启动项目名称
SITE_NAME JwtDemoApi 启动项目名称(启动项目的具体名称,比如Benchint.Leo.Mphis.ClientApi.HttpApi.Host)
- 字符串参数-启动端口号
SITE_PORT 809 启动端口(程序内不可写死启动端口,否则此处端口无法成功,每个项目应该不一样)
9、源码管理-Git
http://x.x.x.x/libra/lz1/Libra.DataReport.git ${BRANCH_NAME}
这里选择了具有对git仓库的管理和操作的账户-jenkins
然后指定的分支,是上面配置的变量BRANCH_NAME
10、构建-选择Execute shell
env ls -la echo "进入目录:" cd $PROJECT_START_PATH echo "还原项目包" dotnet restore echo "如果有自建nuget,可以改成如下命令" #dotnet restore -s "https://api.nuget.org/v3/index.json" -s "http://10.3.1.240:8080/nuget" echo "编译代码" dotnet build -c $COMPILE_MODE echo "杀停原站点" ps -ef | grep $SITE_NAME | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill echo "删除现有文件,重新发布" rm -rf /projects/publish/publish_$SITE_NAME echo "发布项目" mkdir -p /projects/publish/publish_$SITE_NAME dotnet publish -c $COMPILE_MODE -r linux-x64 --self-contained true -o /projects/publish/publish_$SITE_NAME echo "拷贝到运行目录" mkdir -p /projects/run/run_$SITE_NAME/$MAJOR_NO.$BUILD_NO.$THR_NO.$BUILD_ID cp -r /projects/publish/publish_$SITE_NAME/* /projects/run/run_$SITE_NAME/$MAJOR_NO.$BUILD_NO.$THR_NO.$BUILD_ID echo "拷贝配置文件到新版本" mkdir -p /projects/run/run_$SITE_NAME/config echo "这里放配置文件">/projects/run/run_$SITE_NAME/config/readme.txt cp -r /projects/run/run_$SITE_NAME/config/* /projects/run/run_$SITE_NAME/$MAJOR_NO.$BUILD_NO.$THR_NO.$BUILD_ID echo "启动项目" firewall-cmd --permanent --zone=public --add-port=$SITE_PORT/tcp systemctl reload firewalld cd /projects/run/run_$SITE_NAME/$MAJOR_NO.$BUILD_NO.$THR_NO.$BUILD_ID BUILD_ID=dontKillMe nohup ./$SITE_NAME --urls http://*:$SITE_PORT &
11、保存,齐活。
以下列举常用命令
查看jenkins服务是否启动 systemctl status jenkins 查看防火墙状态 systemctl status firewalld 查看开放端口 firewall-cmd --list-ports 防火墙端口操作 firewall-cmd --permanent --zone=public --add-port=8080/tcp firewall-cmd --permanent --zone=public --remove-port=8080/tcp firewall-cmd --state ##查看防火墙状态,是否是running firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令 firewall-cmd --get-zones ##列出支持的zone firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的 firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no firewall-cmd --add-service=ftp ##临时开放ftp服务 firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务 firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口 firewall-cmd --remove-port=80/tcp --permanent ##永久移除80端口 firewall-cmd --list-ports ##查看已经开放的端口 iptables -L -n ##查看规则,这个命令是和iptables的相同的 man firewall-cmd ##查看帮助 重启防火墙 systemctl reload firewalld 查看指定进程 ps -ef |grep 进程名称 查看端口号占用(yum install net-tools) netstat -lnp|grep 端口号 netstat -ntlp 查看进程 pgrep -l 进程名称
留下您的脚步
最近评论