centos7下jenkins部署应用程序
1.在centos7下安装docker,通过yum来安装docker,执行如下命令
# yum install docker --安装docker,最好不要安装最新版本的Docker,最新版本的docker不稳定可能存在bug
# systemctl start docker --启动docker服务
# systemctl enable docker --设置开机启动docker,防止机器关机后,docker服务需要手动启动
2.安装完docker后,接下来安装jdk(因为jenkins是java开发的)以及从网络下载jenkins安装包,注意 /data/software为我的系统保存jenkins包的路径,用户可以自行设置,注意jenkins的rpm包地址可能失效,失效的话,请登录jenkins官网进行下载,如果嫌网络下载速度慢,可以将离线下载的包,通过sftp工具拷贝到主机上进行安装
# yum install java 或者 # yum install java-1.8.0-openjdk
wget -P /data/software https://prodjenkinsreleases.blob.core.windows.net/redhat-stable/jenkins-2.138.3-1.1.noarch.rpm
3.转到/data/software 下,安装jenkins包
# cd /data/software
# rpm -ivh jenkins-2.138.3-1.1.noarch.rpm
4.启动jenkins服务,并通过 http://localhost:8080 访问启动的jenkins(默认jenkins管理页面是ip:8080)
# systemctl start jenkins //启动jenkins服务
# systemctl enable jenkins //开机启动jenkins服务
5.不出意外将通过地址能够访问jenkins,但是也不排除无法访问jenkins,因为centos7默认防火墙是开启,导致无法通过浏览器访问jenkins,我们可以通过在执行下面的命令,关闭系统的防火墙
# systemctl stop firewalld.service --关闭防火墙服务
# systemctl disable firewalld.service --取消开机启动防火墙服务
6.解决无法访问的问题后,通过地址访问到如下的页面
7.在centos7中执行下面的命令得到初始密码,进行登录操作
# vi /var/lib/jenkins/secrets/initialAdminPassword
8.输出密码后,进入如下界面,选择安装推荐插件
9.安装完推荐的插件后,进入创建管理员用户
10.设置完所有的步骤后,终于进入jenkins的管理界面,如下图
11.jenkins安装成功后,下面将继续介绍使用jenkins自动构建自己github上dotnet core程序
12.在jenkins主界面选择创建新任务,如下图
12.输入任务名称和选择构建咋样的风格的任务,选择完毕后,确定保存
13.确定后,进入任务配置页面,在general页面填写任务说明与描述,以及设置其他参数信息
14.填写general页面,进行源码管理,在这里我选择github,用户可以选择其他代码管理方式
15.进入centos7中执行命令,安装git
16.安装完成git后,再次查看之前报错的页面,错误消失了
17.因为在general页面配置了参数,我们将在源码管理页面使用,如下图所示
18.构建触发器页面,我这里不进行任何设置,用户可以凭借自己的需求自行设置
19.构建环境页面,因为想在构建环境页面,能够设置Version Number 的信息,在jenkins的系统设置中,插件管理安装Version Number 插件如下图,安装完成后,就可以在构建环境页面通过Version Number Plug插件生成优雅的版本号
20.构建页面,这里选择“执行shell”,填写shll脚本(这里最好将shell脚本命令写到文件中,以便后续的修改),在这里使用shell脚本,有利于后面的维护操作,不出问题,项目将构建成功
21.保存后,构建任务,发生错误(在jenkins任务控制台输出页面),输出如下图,执行 dotnet restore 命令失败,主要是系统中没有安装dotnet环境
22.在centos7中安装dotnet core运行环境
# rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm --在安装Net之前,我们需要安装微软key以及依赖,这个命令每台机器只要执行一次就行,安装dotnet sdk时,根据项目的版本选择特定的sdk进行安装
# yum install libunwind libicu --dotnet-sdk需要依赖“libunwind”和“libicu”
# yum install dotnet-sdk-2.0.0 --安装dotnet-sdk 版本2.0.0
23.在执行构建的过程中出现了“sudo: no tty present and no askpass program specified”的错误,原因在于在shell脚本中,使用sudo命令来提升执行权限,因为Jenkins服务器在执行sudo命令时的上下文有误,导致这个命令执行的异常,以下为解决方式
在Jenkins宿主服务器上运行如下命令
# sudo visudo
在文件的末尾加上一行
jenkins ALL=(ALL) NOPASSWD: ALL
重启Jenkins服务
# systemctl restart jenkins
最后,重新执行构建任务,不会出现先前的错误。
如果误操作修改了/etc/sudoers的权限来修改上述文件,则会导致如下所示的错误:
sudo :/etc/sudoers is world writable
sudo : no valid sudoers source found, quitting
sudo : unable to initialize poling plugin
这是Linux的一种保护机制。因此,如果出现上述误操作,则需要执行如下命令来解决:
# pkexec chmod 0440 /etc/sudoers
24.在构建过程中,出现错误 shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory,具体的解决方案可以参考如下文章
执行脚本提示shell-init: error retrieving current directory:getcwd问题分析_juyin2015的博客-CSDN博客_shell-init
25.在执行shell脚本的过程,执行镜像启动的过程,容器启动后马上就关闭了,可以参考下面的文章
解决docker容器启动不了的问题 - 简书
26.下面是shell文件的具体内容,供大家参考
27.下面是Dockerfile文件的内容,供大家参考
28.使用docker exec 命令出现如下的错误
rpc error: code = 2 desc = oci runtime error: exec failed:
container_linux.go:247: starting container process caused "process_linux.go:110:
decoding init error from pipe caused \"read parent: connection reset by peer\""
用户可以通过以下的命令来进行处理
# yum update
# yum downgrade docker docker-client docker-common --before and no idea for what the old version of docker, just run
因为维护之前的项目遇到一些问题,特此记录一下,同理对于java程序一样适用哈。
以上就是完整的过程,总算写完了,花了不少时间,不足之处,还往大家的见谅。
centos7下jenkins部署应用程序相关推荐
- 阿里云centos7下环境部署和项目部署
阿里云centos7下环境部署和项目部署系统环境: 阿里云centos7系统 linux下的jdk1.8 linux下的tomcat8 linux下的mysql5.7 jdk1.8的安装 下载jdk官 ...
- Centos7下安装部署nagios-server
目录 1. nagios简介 2. 服务器准备 2.1 主机信息+IP地址 2.2 查看主机的系统版本信息 2.3 暂时关掉Selinux和防火墙 3. 安装nagios依赖包和需要的环境 3.1 安 ...
- centos7下Jenkins管理员admin密码忘记后处理方法
1.环境描述 centos7下一套gitlab+Jenkins持续集成CI环境,运行稳定,却出现了admin密码忘记 2.一般初始密码 通常情况下,在初始化完成后的Jenkins环境中,初始密码在/v ...
- Centos7下安装部署oracle数据库方法及问题汇总
目标:在centos7上配置oracle数据库服务器,并在win7上面使用pl/sql成功访问该oracle数据库 系统环境: 服务器:centos7 64位 客户端:win7 64位 注意cneto ...
- centos7下docker 部署javaweb
为什么80%的码农都做不了架构师?>>> LXC linux container 百度百科:http://baike.baidu.com/link?url=w_Xy56MN9i ...
- GlassFish下手动部署JSF程序
以login项目为例: 目录结构: login | |---index.jsp |---page.jsp |---WEB-INF/ |---web.xml |---faces-config.xml | ...
- 为什么root下不能使用passwd命令_基于centos7下安装部署openldap+phpldapadmin
01初始化准备 系统CentOS7 64位 配置yum源 wget http://mirrors.aliyun.com/repo/Centos-7.repo cp Centos-7.repo /etc ...
- 云主机Centos7下WordPress部署指南
参考文章: https://blog.csdn.net/qq_25504829/article/details/104254788 一.天翼云安全组添加端口 控制中心-->虚拟私有云--> ...
- Centos7下安装部署Zabbix-server 3.4
目录 1. Zabbix简介 2. 服务器准备 2.1 主机信息+IP地址 2.2 查看主机的系统版本信息 2.3 暂时关掉防火墙和Selinux 3. 安装Zabbix-server需要的环境(LA ...
最新文章
- BCELoss BCEWithLogitsLoss 多标签损失函数
- python中sys.stdout、sys.stdin
- 百战百胜:人生10个成功秘诀
- 看屁股,你是一头大象吧
- redis中的hash
- oracle服务器错误,oracle 11g数据库维护中错误总结
- 项目编译失败_Swift源码编译让底层更清晰
- android ida多线程调试,C/C++知识点之ida动态调试.so 动态加载(必须真机)
- 乙级(Basic Level) 1010 月饼
- php 显示当前年月日时分秒,php 获取当前前后年、月、星期、日、时分秒的时间...
- 滑雪(洛谷-P1434)
- OpenShift 4 - 使用Prometheus监控Node节点
- 献给写作者的 Markdown 新手指南及语法
- 如何把hadoop源码关联到eclipse工程中
- 附件文件超过了服务器的大小,Exchange 2010修改附件大小限制
- 中国移动智能网关(光猫)超级管理员账户密码 型号: PT924G
- 汽车之家所有车型价格爬虫
- 转:普通继电器和自锁继电器的差别
- 几个有效防止服务器攻击的小妙招
- 迅雷android面试,迅雷面试题(转载)
热门文章
- Shadertoy 多个buffers 转成Threejs代码
- java.lang.UnsatisfiedLinkError: dlopen failed: file offset for the library /data/app/com.beiya.litt
- linux文件目录管理
- NLP学习(一)基础篇
- Linux网络-网络配置命令
- IMX6DL 在Android4.4.2版本插入SD卡不能开机
- PHP单例模式(Singleton Pattern)
- Ubuntu-基础指令汇总
- 思维导图Java篇(一)
- 硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区