一、centos安装jenkins
1.1 安装jenkins
1. Jenkins是一个Java应用程序,因此第一步需要确认具有java环境
2.下一步是启用Jenkins存储库。为此,请使用以下curl命令导入GPG密钥:
curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo
并使用以下命令将存储库添加到系统:
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
3.启用存储库后,键入以下命令安装最新的稳定版Jenkins:
yum install jenkins
安装过程完成后,启动Jenkins服务:
systemctl start jenkins
要检查它是否已成功运行:
systemctl status jenkins
你应该看到类似的东西:
最后启用Jenkins服务以启动系统启动。
systemctl enable jenkins
1.2 调整防火墙
如果要在有防火墙的远程CentOS服务器上安装Jenkins,则需要添加8080。
使用以下命令打开必要的端口:
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
1.3 设置Jenkins
要设置新的Jenkins安装,请打开浏览器并键入域或IP地址,然后输入端口8080:
http://your_ip_or_domain:8080
将出现类似于以下内容的屏幕,提示您输入在安装期间创建的管理员密码:
使用以下命令在终端上打印密码:
cat /var/lib/jenkins/secrets/initialAdminPassword
您应该看到一个32个字符的长字母数字密码,如下所示:
2115173b548gdas2a203ee99a8732a32
从终端复制密码,将其粘贴到管理员密码字段中,然后单击Continue。
在下一个屏幕上,系统将询问您是要安装建议的插件还是选择特定的插件。单击该Install suggested plugins框,安装过程将立即开始。
安装完成后,系统将提示您设置第一个管理用户。填写所有必填信息,然后单击Save and Continue。
在下一页中,将要求您设置Jenkins实例的URL。URL字段将填充自动生成的URL。
要完成设置,请单击Save and Finish按钮确认URL 。
最后,单击该Start using Jenkins按钮,您将被重定向到以前面一个步骤中创建的管理员用户身份登录的Jenkins仪表板。
如果你已达到这一点,那么你已经在CentOS系统上成功安装了Jenkins。
二、安装docker
2.1 移除旧docker
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
2.2 安装docker依赖库
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
2.3 配置docker
systemctl enable docker
systemctl daemon-reload
systemctl start docker
2.4 查询docker版本
docker --version
2.5 安装 docker-compose
docker-compose是一个python编写的docker编排工具,后面的启动服务都是以docker-compose来启动,这样就不需要每次都手动输入docker启动命令的各项配置参数,简化操作。首先安装pip:
#安装 python36
yum install python36 -y
#查看版本
python36 --version
#创建软链
ln -s /usr/bin/python3.6 /usr/bin/py3
ln -s /usr/bin/python3.6 /usr/bin/python3
#安装pip3
yum install openssl-devel -y
yum install zlib-devel -y
#安装 setuptools
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
python3 setup.py install
#安装 pip3
wget https:///pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1.tar.gz
cd pip-9.0.1
python3 setup.py install
#查看 pip3版本
pip3 --version
#升级pip3
pip3 install --upgrade pip
#安装docker-compose
pip3 install docker-compose
#查看版本
docker-compose version
2.6 项目添加 Docker 支持
在pom文件加上插件:
- imageName指定了镜像的名字,本例为 forep/eureka-server
- dockerDirectory指定 Dockerfile 的位置
- resources是指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。
- buildArgs是指打包后的名称
在dickerDirectory的路径下编写Dockerfile文件
三、Jenkins使用
3.1 安装插件
在 系统管理 > 插件管理 > 可选插件中搜索并安装docker、maven、svn等相关插件
3.2 新建任务
选择构建Maven项目
3.3 源码管理
选择svn地址
3.4 构建镜像后操作(将镜像推送到公有云仓库)
#脚本代码:
#####
##
## 构建镜像之后推送镜像到公有云镜像仓库
##
#####
##版本号
_tag=1.0
##镜像名称
_imageName=xxx
##仓库账号
_username=xxx
##仓库密码
_password=xxx
##仓库域名
_domain=xxx
##仓库地址
_registry=xxx
##获取镜像id
_imageId=`docker images | grep ${_imageName} | awk '{print $3}'`
##登录推送镜像
echo "${_password}" | docker login --username=${_username} --password-stdin ${_domain}
docker tag ${_imageId} ${_domain}/${_registry}/${_imageName}:${_tag}
echo '====================开始推送镜像=================='
docker push ${_domain}/${_registry}/${_imageName}:${_tag}
echo '====================推送镜像完成=================='
##启动镜像
docker run -d -p 9030:9030 --network=xxx --name=xxx --restart=always xxx
##删除tag后的镜像
docker rmi ${_domain}/${_registry}/${_imageName}:${_tag}
##删除所有none镜像
none_images=`docker images -f "dangling=true" -q`
[ ! -z "$none_images" ] && docker rmi $none_images