一、环境准备
1、docker镜像 h1kkan/jenkins-docker:lts
。
2、本机和远端机的操作系统为ubuntu16.04
。
二、安装方法:
1、安装docker
sudo apt-get install docker.io
2、镜像dockerfile
FROM h1kkan/jenkins-docker:lts
MAINTAINER xxx@xxx.com.cn
ENV DEBIAN_FRONTEND noninteractive
USER root
#更换shell为bash
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get update
RUN apt-get install -y vim telnet procps locate net-tools iputils-ping wget xz-utils zip expect
COPY ./jenkins-entrypoint.sh /sh/
ENTRYPOINT ["/sh/jenkins-entrypoint.sh"]
3、docker容器入口:jenkins-entrypoint.sh
#!/usr/bin/env bash
/sbin/tini -- /usr/local/bin/jenkins.sh
#无限循环
while :; do sleep 2073600; done
4、ansilbe-playbook部署任务文件jenkins.yaml
- name: "/www/{{item}}"
file:
path: "/www/{{item}}"
owner: your-user
group: your-group
mode: 0777
state: directory
with_items:
- jenkins
tags:
- jenkins
- name: "/www/jenkins/{{item}}"
file:
path: "/www/jenkins/{{item}}"
owner: your-user
group: your-group
mode: 0777
state: directory
with_items:
- jenkins_home
tags:
- jenkins
- name: copy jenkins.dockerfile
copy: src="jenkins.dockerfile" dest="/www/docker/images" owner=your-user group=your-group mode=775
tags:
- jenkins
- name: copy jenkins.entrypoint.sh
copy: src="jenkins-entrypoint.sh" dest="/www/docker/images" owner=your-user group=your-group mode=775
tags:
- jenkins
- name: jenkins
docker_container:
image: your-jenkins
hostname: jenkins
name: jenkins
user: root
ports:
- 8888:8080
volumes:
- /www/jenkins/jenkins_home:/var/jenkins_home
networks:
- name: dockercompose_default
state: started
restart: yes
restart_policy: always
privileged: true
tags:
- jenkins2
5、开始安装
I. 推送文件到远端机
ansible-playbook ~/xxx/ansible/jenkins.yaml -e env_server="xxx-server" --tags="jenkins"
II. 在远端机build镜像
docker build -t user11-jenkins -f jenkins.dockerfile .
III 部署镜像
ansible-playbook ~/xxx/ansible/jenkins.yaml -e env_server="xxx-server" --tags="jenkins2"
打开浏览器访问http://192.168.11.21:8888,可看到jenkins主界面(如下)。
6、开启用户注册
打开系统管理
-> 全局安全配置
,勾选允许用户注册
切换到登录界面,发现可以自助注册了。
7、用户权限管理
Jenkins刚开始的界面是允许访客进行所有操作的,这是有安全隐患的,也不容易去管理。这时,我们需要管理Jenkins的权限。
-
管理角色
点击manage roles
设置全局角色(全局角色可以对jenkins系统进行设置与项目的操作)
admin:对整个jenkins都可以进行操作
ops:可以对所有的job进行管理
other:只有读的权限
-
分配角色
系统管理页面进入Manage and Assign Roles,点击assign roles
8、备份/恢复
可以通过thinbackup插件对jenkins数据进行备份。
系统管理
->插件管理
,选择thinbackup
插件安装
系统管理
选择thinbackup
设置备份,我设置的是周一到周五的凌晨1点进行完整备份。
9、设置时区
jenkins安装好后时区是格林威治时区,可以按下述方法修改
-
系统管理
→系统配置
中时区设置为Asia/Shanghai -
系统管理
→脚本命令行
中执行
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
OK,时区终于变正常了。
10、安装BlueOcean
系统管理
->插件管理
,选择BlueOcean
插件安装,完成后在主界面会多打开BlueOcean
一项,
BlueOcean
比jenkins经典界面漂亮多了,实际运行时界面如下所示:
至此jenkins部署完成!