本文是基于Ansible批量部署Jenkins环境

支持部署的环境:

  • 基于docker的Jenkins基础环境
  • Maven
  • Nodejs
  • 基于docker的Nexus3基础环境
  • docker基础环境

工具包测试环境信息

环境 ip
Jenkins 192.168.1.201
Maven 192.168.1.202
Nodejs 192.168.1.203
Nexus3 192.168.1.206

工具版本信息

工具 版本 备注
centos 7.4 7版本的系统对docker性能支持更好
Ansible 2.5.2 因有些语法较新,需要ansible大于2.4
docker-ce latest -
Jenkins 2.128 -
Maven 3.5.3 -
Nodejs v8.11.2 -
Nexus3_oss 3.12.0 -

Ansible工具包内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
[root@localhost ~]# tree jenkins
jenkins
├── 01-install-jenkins.yml
├── 02-clean-jenkins.yml
├── 03-install-maven.yml
├── 04-install-nodejs.yml
├── 05-install-nexus3.yml
├── 06-clean-nexus3.yml
├── 07-install-docker.yml
├── hosts
├── pics
│   ├── jenkins_dashboard.png
│   └── nexus3_dashboard.png
├── README.md
└── roles
├── clean-jenkins
│   ├── files
│   │   └── jenkins-docker-compose.yml.j2
│   └── tasks
│   └── main.yml
├── clean-nexus3
│   ├── files
│   │   └── nexus3-docker-compose.yml.j2
│   └── tasks
│   └── main.yml
├── common
│   ├── files
│   │   └── epel-release-latest-7.noarch.rpm
│   ├── tasks
│   │   └── main.yml
│   └── templates
│   ├── 20-nproc.conf
│   └── limits.conf
├── docker
│   ├── files
│   │   ├── daemon.json
│   │   ├── docker-ce.repo
│   │   ├── docker-compose
│   │   └── docker.service
│   └── tasks
│   └── main.yml
├── jdk
│   ├── files
│   │   ├── java.sh
│   │   └── jdk-8u171-linux-x64.tar.gz
│   └── tasks
│   └── main.yml
├── jenkins
│   ├── files
│   │   ├── jenkins_2.128.tar.gz
│   │   └── jenkins-docker-compose.yml.j2
│   └── tasks
│   └── main.yml
├── maven
│   ├── files
│   │   ├── apache-maven-3.5.3-bin.tar.gz
│   │   └── maven.sh
│   └── tasks
│   └── main.yml
├── nexus3
│   ├── files
│   │   ├── nexus3-docker-compose.yml.j2
│   │   └── nexus_oss_3.12.0.tar.gz
│   └── tasks
│   └── main.yml
└── nodejs
├── files
│   ├── nodejs.sh
│   └── node-v8.11.2-linux-x64.tar.xz
└── tasks
└── main.yml
30 directories, 39 files
[root@localhost ~]#

工具包大小:

1
2
3
[root@localhost ~]# du -sh jenkins
1.5G jenkins
[root@localhost ~]#

工具包README

本工具测试环境为:centos 7.4
Author:Jack_wang
Blog:http://www.yfshare.vip

准备工作
  1. ansible当前服务器自己root互信
  2. ansible服务器和其他所有各个节点root互信
    命令: ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip

注:ansible需要使用2.4以上的版本,因有些语法2.4以下不支持.
当前ansible版本为2.5.2。

安装步骤
1
2
yum -y install https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum -y install ansible

注:这里安装ansible-2.5.2时,yum源里会缺少python-babel-0.9.6-8.el7.noarch.rpm包,可以在https://pkgs.org/download/python-b
abel这里下载.在当前目录也提供了该依赖包.
按要求修改hosts文件相关参数
操作步骤:

  1. ansible-playbook -i hosts 01-install-jenkins.yml #部署jenkins环境,docker镜像里集成maven
  2. ansible-playbook -i hosts 03-install-maven.yml #部署maven环境
  3. ansible-playbook -i hosts 04-install-nodejs.yml #部署nodejs环境
  4. ansible-playbook -i hosts 05-install-nexus3.yml #部署nexus3-OSS环境
  5. ansible-playbook -i hosts 07-install-docker.yml #部署docker-ce基础环境

部署成功后,可执行下面命令查看结果:
Jenkins:访问http://ip:8080

1
docker ps -a |grep -i 'jenkins'

Maven:
执行mvn -v

Nodejs:
执行node -v

nexus3:访问http://ip:8081

1
docker ps -a |grep -i 'nexus'

卸载jenkins

按要求修改hosts文件相关参数
操作步骤:

  1. ansible-playbook -i hosts 02-clean-jenkins.yml #卸载jenkins
卸载nexus3_oss

按要求修改hosts文件相关参数
操作步骤:

  1. ansible-playbook -i hosts 06-clean-nexus3.yml #卸载nexus3

jenkins_dashboard
nexus3_dashboard

附件:
jenkins_ansible_2.128.tar.gz百度网盘,密码:dxng


本文出自”Jack Wang Blog”:http://www.yfshare.vip/2018/06/21/Ansible部署Jenkins环境/