
一、环境准备
1、docker镜像 h1kkan/jenkins-docker:lts
。(我没有选择官方的jenkins
镜像,是想拥有更大的镜像定制性)
2、本机和jenkins部署机的os均为ubuntu16.04。部署机ip为192.168.11.21。
二、安装方法:
1、安装docker
sudo apt-get install docker.io
2、安装python,pip,ansible,fabric
# ubuntu一般都默认安装有python
sudo apt-get install ansible python-pip
sudo pip install fabric
3、编写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
RUN pip install fabric
COPY ./jenkins-entrypoint.sh /sh/
ENTRYPOINT ["/sh/jenkins-entrypoint.sh"]
4、编写jenkins-entrypoint.sh
#!/usr/bin/env bash
/sbin/tini -- /usr/local/bin/jenkins.sh
#无限循环
while :; do sleep 2073600; done
5、编写ansilbe-playbook配置文件
- name: "/www/{{item}}"
file:
path: "/www/{{item}}"
owner: user11
group: user11group
mode: 0777
state: directory
with_items:
- jenkins
tags:
- jenkins
- name: "/www/jenkins/{{item}}"
file:
path: "/www/jenkins/{{item}}"
owner: user11
group: user11group
mode: 0777
state: directory
with_items:
- jenkins_home
- backup
tags:
- jenkins
- name: copy jenkins.dockerfile
copy: src="jenkins.dockerfile" dest="/www/docker/images" owner=user11 group=user11group mode=775
tags:
- jenkins
- name: copy jenkins.entrypoint.sh
copy: src="jenkins-entrypoint.sh" dest="/www/docker/images" owner=user11 group=user11group mode=775
tags:
- jenkins
# old-image: h1kkan/jenkins-docker:lts
- name: jenkins
docker_container:
image: user11-jenkins
hostname: jenkins
name: jenkins
user: root
ports:
- 8888:8080
etc_hosts:
git.xxx.lo: 192.168.11.22
volumes:
- /www:/www
- /www/jenkins/jenkins_home:/var/jenkins_home
networks:
- name: dockercompose_default
state: started
restart: yes
restart_policy: always
privileged: true
env:
JENKINS_JAVA_OPTIONS: "-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai"
tags:
- jenkins2
6、开始安装
I. 在本机执行
ansible-playbook ~/xxx/ansible/jenkins.yaml -e env_server="xxx-server" --tags="jenkins"
II. 在jenkins部署机上执行
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界面

7、开启用户注册
打开系统管理
-> 全局安全配置
,勾选允许用户注册

然后用户在登录界面,就可以自助注册了


8、用户权限管理
Jenkins刚开始的界面是允许访客进行所有操作的,这时Jenkins是有安全隐患的,也不容易去管理。这时,我们需要管理Jenkins的权限,对它的权限进行设置。
-
1.管理角色
点击manage roles
设置全局角色(全局角色可以对jenkins系统进行设置与项目的操作)
admin:对整个jenkins都可以进行操作
ops:可以对所有的job进行管理
other:只有读的权限
设置全局角色
-
2.分配角色
系统管理页面进入Manage and Assign Roles,点击assign roles
分配角色
9、备份和恢复
jenkins这里我通过thinbackup插件进行对jenkins的配置备份与恢复。
找到系统管理->插件管理,选择thinbackup插件安装

系统管理选择thinbackup


设置备份,周一到周五的凌晨1点进行完整备份
10、设置时区
jenkins安装好后默认时区是格林威治时区,可以按下面方法修改
- 系统管理→ 系统配置中时区设置为Asia/Shanghai
- 系统管理→ 脚本命令行中执行
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
11、美化UI,安装BlueOcean
找到系统管理->插件管理,选择BlueOcean插件安装后,主界面会多增加打开BlueOcean
一项,

BlueOcean实际运行时界面如下:

至此jenkins部署完成!
网友评论