目录
安装docker
如果docker已安装请忽略,直接下一步。
环境介绍
centos7
执行安装
# 安装命令
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 查看结果
sudo docker --version
修改配置
切换镜像源地址
# 创建目录
sudo mkdir -p /etc/docker
# 创建配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
# 重启生效
sudo systemctl daemon-reload
sudo systemctl restart docker
安装及启动jenkins
这里要特别强调一下,使用的镜像是第二个:“jenkins/jenkins”,不是第一个“jenkins",虽然第一个是官方的,但是jenkins的版本太老,而且各种插件都不能用,用过的人都知道。。。
好,下面就用”jenkins/jenkins”镜像来启动:
docker run -d -p 50080:8080 -p 50001:50000 -v /jenkins_home:/var/jenkins_home --name dev_jenkins --user=root jenkins/jenkins
假设本机ip:192.168.0.122
现在尝试访问jenkis:192.168.0.122/50080
正在启动中,稍等之后,启动成功。
首次访问jenkins,进入如上页面。
注意红色字体,这个文件保存了初始密码。找到该密码,并复制到输入框,点击“继续”。
这里我们暂时不安装任何插件,一是因为有些插件这里显示不全,另一个原因是,这里用的源地址默认都在国外,我天朝子民访问会很卡,甚至失败。
历史上角有叉号,直接关闭该界面。
现在就先直接使用。
已经进入首界面了。
配置初始化
# 进入容器
docker exec -it dev_jenkins /bin/bash
在安装插件之前,先修改一些默认源地址,否则没法使用。
/var/jenkins_home/updates/default.json
这个文件的内容是一个json格式的字符串,很长,开头内容是:
{"connectionCheckUrl":"http://www.google.com/","core":.....
jenkins在下载插件之前会先检查网络连接,其会读取这个文件中key为“connectionCheckUrl”的值。默认值如上,是谷歌的首页地址。我天朝访问不了这等垃圾网站_^^_||,我们切换为百度首页吧。
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/jenkins_home/updates/default.json && sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/jenkins_home/updates/default.json
/var/jenkins_home/hudson.model.UpdateCenter.xml
sed -i 's/https:\/\/updates.jenkins.io\/update-center.json/https:\/\/updates.jenkins-zh.cn\/update-center.json/g' /var/jenkins_home/hudson.model.UpdateCenter.xml
ok,这两个文件都修改之后,重启jenkins。
重启的方式是,在浏览器中输入:192.168.0.122/50080/restart
这里还要注意一点,不是在容器中输入地址访问就行了,还要确认一下,别忘了。
下面就是等待重启了。
这里登录,需要用户名和密码。用户名就是admin,密码就是/var/jenkins_home/secrets/initialAdminPassword里的值。
这里先改下密码吧,方便下次登录。
安装vim
jenkins镜像里没有自带vim,编辑文件起来非常不方便,这里先提前安装好。
# 第一步,更新数据源
cp /etc/apt/sources.list /etc/apt/sources.list.bak && sed -i 's/http:\/\/deb.debian.org\/debian/http:\/\/mirrors.163.com\/debian/g' /etc/apt/sources.list && sed -i 's/http:\/\/security.debian.org/http:\/\/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
# 第二步,安装
apt-get update -y && apt-get install -y vim
安装插件
Role-based Authorization Strategy(根据角色分配权限)
安装之后,才会有“根据角色分配权限”的选项。
Credentials Binding(凭证管理)
Git
maven
Pipeline
先安装这些吧,后面需要的话再加。
外话一:保存jenkins配置
当前jenkins在原有的基础上做了一些配置,那么现在肯定想保存这些配置信息,然后在别的服务器上部署时,能够直接使用现在已经做的这些配置。
我的第一个想法是,直接把当前的jenkins容器做成镜像,上传到自己的私有镜像仓库中,然后目标服务器下载该镜像启动,这样新的服务器不用可以直接使用已有配置了吗?
但是结果很打脸-_-||,自制的镜像和原有的镜像,没有任何区别,完全不能实现镜像复用的目的。。。
但是也不能就这么放弃啊,毕竟jenkins的配置太TM繁了。
我又想出来一个办法。我把jenkins容器中的根目录“/var/jenkins_home”挂载到了宿主机,后来的配置也都是更新这个文件夹里的数据,我能不能直接把这个更新后的文件夹复制到目标服务器上,并且把该目录作为目标服务器上的jenkins容器的挂载目录,那是不是就可以实现复用了呢?
结果这回还真可以,安装的插件都在且可用,其它各方面都和已经配置过的系统完全一致。
居然只能通过这种方式实现复用,我能说什么?我可以说呵呵吗?