本文使用京东云主机搭建jenkins服务,jenkins服务主要部署内容包括jdk、jenkins、docker和maven配置
一、云硬盘挂载
由于jenkins服务器需要使用云硬盘,将数据盘挂载至/data目录,主要参考文档如下:
https://docs.jdcloud.com/cn/virtual-machines/mount-datadisk
使用其中手动挂载的方式
二、jdk部署
使用yum方式安装jdk1.8如下:
yum search java-1.8
yum install -y java-1.8.0-openjdk-devel.x86_64
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile
java -version
三、jenkins部署
1)使用rpm方式安装jenkins如下:
wget https://pkg.jenkins.io/redhat-stable/jenkins-2.222.3-1.1.noarch.rpm
sudo rpm -ivh jenkins-2.222.3-1.1.noarch.rpm
2)jenkins默认安装目录为/var/lib/jenkins,需要修改为/data/jenkins
mkdir -p /data/jenkins
vi /etc/sysconfig/jenkins
Jenkins目录、端口、工作目录等信息在/etc/sysconfig/jenkins 下,所以需要修改这个文件
将JENKINS_HOME="/var/lib/jenkins" 改成JENKINS_HOME="/data/jenkins"
并将/var/lib/jenkins路径的文件拷贝到/data/jenkins下
sudo cp -a /var/lib/jenkins/ /data/jenkins
3)jenkins默认操作用户为jenkins,需要修改为root
vi /etc/sysconfig/jenkins
将JENKINS_USER="jenkins"改为JENKINS_USER="root"
将jenkins目录权限修改为root
cd /data
sudo chown -R root:root jenkins
sudo chmod 755 -R jenkins
Jenkins安装完之后会自行生成一个Jenkins的账号,密码未知。另外,运行sudo su jenkins 命令时会出现无法切换的情况
这个是因为Jenkins在安装的/etc/passwd 文件中/bin/bash 变成了/bin/false 引起的
解决方法是:
sudo vim /etc/passwd
修改 passwd文件中的/bin/false 变成/bin/bash
在修改完passwd文件之后再运行sudo su jenkins 还会出现bash-4.2 而不是jenkins用户。
需要运行export PS1='[\u@\h \W]\$' 才能正常切换到jenkins用户
4)启动jenkins:
启停命令:
service jenkins start/stop/restart
查看服务状态:
systemctl status jenkins
5)访问jenkins:
http://IP:PORT
初始访问时需要输入秘钥,
初始秘钥路径: /var/lib/jenkins/secrets/initialAdminPassword
cat /var/lib/jenkins/secrets/initialAdminPassword查看秘钥并复制输入框
之后进入插件安装初始化页面,等待初始化完成即可使用,由于jenkins插件安装使用国外网站,网络很慢,可替换插件镜像地址解决
插件镜像地址更换:
jenkins->系统管理->管理插件->高级
选择升级站点
把:http://updates.jenkins-ci.org/update-center.json
换成:http://mirror.esuni.jp/jenkins/updates/update-center.json
镜像地址查询:
http://mirrors.jenkins-ci.org/status.html
6)安装必需插件
主要必需插件包括maven、git、docker相关等
四、docker部署
1)使用yum方式在线安装docker如下:
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
7、安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install # 例如:sudo yum install docker-ce-17.12.0.ce
8、启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
2)修改docker工作目录为/data/docker
docker的默认工作目录为
1.编辑文件 /usr/lib/systemd/system/docker.service,添加参数--data-root=/data/docker
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data/docker
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2……
2. 重启docker
systemctl daemon-reload
systemctl restart docker
3. 查看docker工作目录
docker info |grep "Docker Root Dir"
五、maven配置
配置使用公司的私服仓库,主要步骤如下:
创建maven本地仓库目录:
mkdir -p /data/maven/repository
cd /data/maven
将settings.xml上传至/data/maven目录
在构建任务时配置使用/data/maven/settings.xml文件