Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible

声明:
如果您有更好的技术与作者分享,或者商业合作;
请访问作者个人网站 http://www.esqabc.com/view/message.html 留言给作者。
如果该案例触犯您的专利,请在这里:http://www.esqabc.com/view/message.html 留言给作者说明原由
作者一经查实,马上删除。

准备条件:

准备两、三台服务器,都已配置好Docker环境,一台用来部署Jenkins,一台用来部署业务系统(即我们要发布的项目)
一台用安装Docker私有库(我的是把私仓库放在部署业务系统发布的服务器上面,所以只使用了两台服务器)

流程步骤:

1,检测服务器上Docker安装是否成功
2,Docker开启远程访问
3,客户机配置好DOCKER_HOST环境变量
4,集成Docker+Maven插件
5,搭建Docker私有库Harbor
6,Jenkins搭建
7,Ansible搭建

1,服务器上Docker是否安装成功:

[root@vultr ~]# docker version
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第1张图片

1,Docker开启远程访问(CentOS系统):

(1)编辑docker的宿主机文件/lib/systemd/system/docker.service

[root@vultr ~]# vi /lib/systemd/system/docker.service

(2)修改以ExecStart开头的行,改为

ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
如果是centos7以下的话,就把ExecStart修改为:
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第2张图片
(3)通知docker服务做出的修改

[root@vultr ~]# systemctl daemon-reload

(4)重启docker服务

[root@vultr ~]# service docker restart

(5)接下来测试一下看是否能连接到docker api。上面的2375就是对应端口

[root@vultr ~]# curl http://localhost:2375/version
在这里插入图片描述

(6)如果看到控制台有数据返回,这里其实就已经成功了,也可以去外网测试一下

在浏览器输入 :http://ip:2375/version
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第3张图片
注意:如果你的服务器没有开启(2375端口)防火墙,请自行开启

3,客户机配置好DOCKER_HOST环境变量

在您的windows系统环境变量中新建DOCKER_HOST,值为tcp://10.100.74.220:2375
IP为您需要打包的到服务器地址
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第4张图片

4,集成Docker+maven插件

说明一下SpringBoot构建Docker镜像有两种方式

1,使用Dockfile文件
2,使用Maven文件pom.xml配置assembly插件实现自定义打包

(1)使用Dockfile文件创建镜像,并打包项目到镜像里面
a,创建一个项目,用于打包可运行的jar包,简单一个项目就可以了,不必要和我的一样
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第5张图片
b,在项目路径src/main创建文件夹(docker),用于存放DockerFile文件
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第6张图片
c,创建文件:Dockerfile
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第7张图片
d,编辑Dockerfile文件

#表示使用 openjdk:8u121-jre-alpine为基础镜像,如果镜像不存在服务器本地中,请先下载镜像(docker pull openjdk:8u121-jre-alpine)
FROM openjdk:8u121-jre-alpine

#MAINTAINER 后面是镜像的描述
MAINTAINER esqabc "www.esqabc.com"

#指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。
#/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录 
VOLUME /tmp

#将应用jar包复制到/home/apps
RUN cd /home && mkdir apps
ADD ./dockerjar.jar  /home/apps

#开启内部服务端口
EXPOSE 8888

#启动服务
ENTRYPOINT [ "sh", "-c", "java -Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08 -jar /home/apps/dockerjar.jar" ]



pom.xml文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>dockerjar</groupId>
  <artifactId>dockerjar</artifactId>
  <packaging>jar</packaging>
  <version>1.0.0</version>
  <name>dockerjar</name>
  <description>Maven打包docker在java直接运行的项目</description>
  
   <!-- Spring boot 版本 -->
   <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.0.RELEASE</version>
  </parent>

   <!-- 配置编码格式  begin -->
  <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        
        <!-- docker镜像名称前缀 -->
        <docker.image.prefix>dockerjarweb</docker.image.prefix>
        <!-- docker镜像版本号-->
        <docker.image.tag>v1</docker.image.tag>
        
  </properties>
  <!-- 配置编码格式  end -->

<!-- JAR包配置  begin-->
  <dependencies>
		<!-- SpringBoot web用到的JAR -->
	    <dependency>
	    	<groupId>org.springframework.boot</groupId>
	    	<artifactId>spring-boot-starter-web</artifactId>
  		</dependency>
  		<!-- Springboot与页面交互(thymeleaf工具) -->
  		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency> 
  		<!-- JUnit单元测试工具 -->
	    <dependency>
	      <groupId>junit</groupId>
	      <artifactId>junit</artifactId>
	      <version>3.8.1</version>
	      <scope>test</scope>
	    </dependency>
    	<!-- 日志输出 jar -->
	    <dependency>
    		<groupId>org.projectlombok</groupId>
    		<artifactId>lombok</artifactId>
    	</dependency>

    	
  </dependencies>
  <!-- JAR包配置  end-->
  
  
  
  <!-- 插件配置  begin -->
  <build>
  <finalName>dockerjar</finalName>
    <plugins>
    	 <!-- 打包配置 -->
    	 <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
         
	  	<!--Docker构建配置信息 begin-->
		<plugin>
	      <groupId>com.spotify</groupId>
	      <artifactId>docker-maven-plugin</artifactId>
	      <version>1.2.0</version>
		  <configuration>
		  			<!-- 镜像名称:版本号 -->
                    <imageName>dockerjarweb:v1</imageName>
                    <dockerHost>http://ip:2375</dockerHost>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
           </configuration>
	    </plugin>
		<!--Docker构建配置信息 end-->
	
    </plugins>
  </build>
   <!-- 插件配置  end -->
</project>

e,如果项目的jar包没有生成,可能会出现报错,建议先,生成jar包,再打包镜像

生成jar包:
右键项目=>>Run as=>>Maven install
生成镜像:
右键项目=>>Run as=>>Maven build=>>出现下图
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第8张图片
在Goals框里面填写:package docker:build
然后点击按钮:Run

在控制台就可以看到输出的信息

[INFO] Building image dockerjarweb:v1
Step 1/7 : FROM openjdk:8u121-jre-alpine

—> 319698b3b71a
Step 2/7 : MAINTAINER esqabc “www.esqabc.com”

—> Running in 026f45794699
Removing intermediate container 026f45794699
—> f9d22e129cd9
Step 3/7 : VOLUME /tmp

—> Running in 63439625af00
Removing intermediate container 63439625af00
—> e175d2a2d2d6
Step 4/7 : RUN cd /home && mkdir apps

—> Running in b72c4220797c
Removing intermediate container b72c4220797c
—> 24e8627b87e1
Step 5/7 : ADD ./dockerjar.jar /home/apps

—> 12135ce16160
Step 6/7 : EXPOSE 8888

—> Running in baf2d3eb9310
Removing intermediate container baf2d3eb9310
—> f25f0e7a3c18
Step 7/7 : ENTRYPOINT [ “sh”, “-c”, “java -Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08 -jar >/home/apps/dockerjar.jar” ]

—> Running in fa8b60d8dc9f
Removing intermediate container fa8b60d8dc9f
—> 19812bb2465b
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built 19812bb2465b
Successfully tagged dockerjarweb:v1
[INFO] Built dockerjarweb:v1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 07:16 min
[INFO] Finished at: 2019-05-21T11:57:56+08:00
[INFO] ------------------------------------------------------------------------

f,查看是否成功,到服务器执行命令:

[root@vultr ~]# docker images
在这里插入图片描述
g,运行镜像,在浏览器输入:http://ip:8888/login
[root@vultr ~]# docker run -it -d --name esqabcweb -p 8888:8888 dockerjarweb:v1

Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第9张图片
项目源码地址:https://github.com/esqabc/docker-jar

(2)使用Maven文件pom.xml配置assembly插件实现自定义打包
…后续会慢慢补齐…

5,搭建Docker私有库Harbor

步骤:
(1)安装docker ,安装教程地址:https://blog.csdn.net/esqabc/article/details/89881374
(2)安装docker-compose
(3)安装Harbor
(4)修改Harbor配置文件
(5)Harbor启动和停止
(6)配置Harbor支持https访问

====================================================================
(1)安装docker省略…
(2)安装docker-compose(两种方式:pip,二进制文件)
下载地址:https://github.com/docker/compose/releases

a.1,安装docker-compose(pip方式):请访问 https://blog.csdn.net/funtaster/article/details/83268974

a.2,安装docker-compose(二进制文件方式)

[root@VM_161_84_centos compose]#  curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

在这里插入图片描述

b,赋予二进制文件可执行权限
[root@VM_161_84_centos compose]# chmod +x /usr/local/bin/docker-compose

c,测试是否安装成功
[root@VM_161_84_centos ~]# docker-compose --version
在这里插入图片描述

(3)安装Harbor

下载页面:https://github.com/goharbor/harbor/releases
下载链接: https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz
注意:如果是国内网络,可能出现慢的现象,你下载版本太高与之匹配的Docker版本就要高
例如:Harbor1.8.0:Docker18.09.6 ,不然会出现版本不匹配的错误。

[root@test tools]# wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz

复制文件到:

[root@test tools]# cp harbor-offline-installer-v1.8.0.tgz /usr/local/

进入目录:

[root@test tools]# cd /usr/local/

解压

[root@test local]# tar -zxvf harbor-offline-installer-v1.8.0.tgz

(4)修改Harbor配置文件
进入harbor目录

[root@test local]# cd harbor

因为1.8.0以上的版本,没有了harbor.cfg配置文件,全部配置改成harbor.yml文件

[root@test harbor]# vi harbor.yml
hostname: 192.168.0.1 ====== > hostname:你服务器的IP
port:8099 ====== > port:你服务器的开放的端口
harbor_admin_password = Harbor12345 ====== > harbor_admin_password :你密码


hostname: 192.168.0.77

http:
  port: 8888

harbor_admin_password: Harbor12345

database:
  password: root123

data_volume: /data

clair: 
  updaters_interval: 12
  http_proxy:
  https_proxy:
  no_proxy: 127.0.0.1,localhost,core,registry

jobservice:
  max_job_workers: 10

chart:
  absolute_url: disabled

log:
  level: info
  rotate_count: 50
  rotate_size: 200M
  location: /var/log/harbor

_version: 1.8.0

Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第10张图片

如果是其它版本请按照下面的配置
编辑配置文件( harbor.cfg)

[root@test harbor]# vi harbor.cfg
文件内容:
Configuration file of Harbor
hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost,此处我设置为我私仓库服务器的IP
hostname = ip
Harbor启动后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = Harbor12345
认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth
是否开启自注册
self_registration = on
Token有效时间,默认30分钟
token_expiration = 30

(5)Harbor启动和停止

[root@localhost harbor]# ./install.sh
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第11张图片
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第12张图片

查看Harbor依赖的镜像及启动服务如下:

[root@VM_161_84_centos ~]# docker images
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第13张图片

查看compose状态(此命令在harbor目录下执行)

[root@VM_161_84_centos harbor]# docker-compose ps
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第14张图片

在浏览器输入:http://ip:8099/harbor/projects ,登录账号:admin ,密码:Harbor12345(默认的)
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第15张图片
停止Harbor服务,执行命令

[root@test harbor]# docker-compose down -v

启动Harbor服务,执行命令

[root@test harbor ]# docker-compose up -d
可能会出现下面的错误:
a,错误:由于关闭了firewalld,然后启动docker出现报错
Creating network “harbor_harbor” with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-faaebe8fd92a -j RETURN: iptables: No chain/target/match by that name.
(exit status 1))
在这里插入图片描述
解决方法:
输入重启Dockr
[root@test~]service docker restart

其它的Harbor命令有:docker-compose start | stop | restart

[root@VM_161_84_centos ~]# docker-compose start
[root@VM_161_84_centos ~]# docker-compose stop
[root@VM_161_84_centos ~]# docker-compose restart

(6)我们在本地登录试一试:
a,输入登录命令:

[root@docker_t ~]# docker login 192.168.0.77:8888
如果出现:
[root@docker_t ~]# docker login 192.168.0.77:8888
Username: admin
Password:
Error response from daemon: Get https://192.168.0.77:8888/v2/: http: server gave HTTP response to HTTPS client
解决方法:
在”/etc/docker/“目录下,创建”daemon.json“文件(如果有的话直接覆盖),
[root@docker_t ~]# cd /etc/docker/
[root@docker_t docker]# touch daemon.json
[root@docker_t docker]# vi daemon.json
添加下面的JSON:

{ "insecure-registries":["192.168.0.77:8888"] }

重启Harbor服务

[root@test harbor]# docker-compose restart

b,如果登录成功,会出现下面的:
在这里插入图片描述
(7)我们测试一下推送镜像到私仓库

先下载一下镜像
[root@test ~]# docker pull openjdk:8u121-jre-alpine
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第16张图片
然后先标记一下镜像
[root@test ~]# docker tag openjdk:8u121-jre-alpine 192.168.0.77:8888/esqabc/openjdk-alpine-jdk8u121:v1
开始上传镜像
[root@test ~]# docker push 192.168.0.77:8888/esqabc/openjdk-alpine-jdk8u121:v1
在这里插入图片描述
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第17张图片
看到这里就说明已经推送成功了

搭建私仓库也可以看看这篇博客:https://blog.csdn.net/weixin_41465338/article/details/80146218?utm_source=blogxgwz0
或者:https://www.cnblogs.com/pangguoping/p/7650014.html
或者:https://www.cnblogs.com/kevingrace/p/6547616.html
(8)配置Harbor支持https访问
a,生成ca证书

[root@VM_161_84_centos ~]# mkdir /usr/local/certs
[root@VM_161_84_centos ~]# cd /usr/local/certs
[root@VM_161_84_centos certs]# openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus
…++
…++
e is 65537 (0x10001)
[root@VM_161_84_centos certs]# openssl req -x509 -new -nodes -sha512 -days 3650 -subj “/CN=192.168.0.1” -key ca.key -out ca.crt
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第18张图片
注意:其中(192.168.0.1) 是你服务器的IP地址

b,获得服务器证书

创建自己的私钥
[root@VM_161_84_centos certs]# openssl genrsa -out server.key 4096
Generating RSA private key, 4096 bit long modulus
…++
…++
e is 65537 (0x10001)
生成证书签名请求
[root@VM_161_84_centos certs]# openssl req -sha512 -new -subj “/CN=192.168.0.1” -key server.key -out server.csr
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第19张图片
注意:其中(192.168.0.1) 是你服务器的IP地址

c,修改v3.ext文件

[root@VM_161_84_centos certs]# cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=192.168.0.1
EOF
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第20张图片
注意:其中(192.168.0.1) 是你服务器的IP地址

d,生成harbor仓库主机的证书

[root@VM_161_84_centos certs]# openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

Signature ok
subject=/CN=192.168.0.1
Getting CA Private Key
在这里插入图片描述
注意:其中(192.168.0.1) 是你服务器的IP地址

e,复制文件:(server.crt和server.key到/data/cert)

[root@VM_161_84_centos ~]# mkdir /data/cert
[root@VM_161_84_centos ~]# cp /usr/local/certs/server.crt /data/cert/
[root@VM_161_84_centos ~]# cp /usr/local/certs/server.key /data/cert/

f,修改harbor配置文件,如果是1.8.0+以上就修改:harbor.yml,如果是其它版本就修改:harbor.cfg

[root@VM_161_84_centos ~]# cd /home/tools/harbor/
[root@VM_161_84_centos harbor]# vi harbor.yml
添加
certificate: /data/cert/server.crt
private_key: /data/cert/server.key
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第21张图片
保存退出 Esc+:wq

g,重启harbor

为Harbor生成配置文件:
[root@VM_161_84_centos ~]# cd /home/tools/harbor/
[root@VM_161_84_centos harbor]# ./prepare
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第22张图片
停止Harbor
[root@VM_161_84_centos harbor]# docker-compose down -v
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第23张图片
重启harbor:
[root@VM_161_84_centos harbor]# docker-compose up -d
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第24张图片

h,客户端配置harbor认证

创建存放域名证书的目录
[root@VM_161_84_centos ~]# mkdir -p /etc/docker/certs.d/192.168.0.1
[root@VM_161_84_centos ~]# cp /data/cert/server.crt /etc/docker/certs.d/192.168.0.1/
[root@VM_161_84_centos ~]# systemctl restart docker

在浏览器输入:https://192.168.0.1:8099 就会显示Harbor的用户界面
有一个要注意的是,如果你的服务器(阿里云,腾讯云,华为云)不支持https协议,请申请好这个协议再试
不然使用:https://192.168.0.1:8099就访问不了,使用:http://192.168.0.1:8099 就可以访问

https配置也可以查看这篇:https://www.cnblogs.com/wzstudy/p/10761636.html

6,Jenkins搭建

有多种方式:
(1)下载Docker镜像
(2)直接下载jenkins.war
(3)Linux直接安装
。。。。。。。
或者查看官方的地址:https://jenkins.io/download/

(1)下载Docker镜像
a,拉取镜像

[root@VM_161_84_centos ~]# docker pull jenkins/jenkins
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第25张图片
[root@VM_161_84_centos ~]# docker images
在这里插入图片描述

b,构建镜像(因为需要用root运行jenkins镜像,所以要重新创建授权):
请看这篇:https://blog.csdn.net/esqabc/article/details/90204429

[root@localhost tools]# touch Dockerfile

Dockerfile文件内容:

FROM jenkins/jenkins:latest
USER root
RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/* 
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins/jenkins:latest

[root@vultr tools]# sudo docker build -t jenkins:v2.0 .
#这里的镜像名是自己任取的,记得最后面有一个点的
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第26张图片

c,启动镜像:

[root@VM_161_84_centos ~]# sudo docker run -d --name jenkins -p 8888:8080 -p 50000:50000 -u root jenkins:v2.0
或者
[root@VM_161_84_centos ~]# sudo docker run -d --name jenkins -p 8888:8080 -p 50000:50000 -u root
-v /home/tools/jenkins_home:/var/jenkins_home -v /home/tools/apache-maven-3.6.1:/usr/local/maven
-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins:v2.0
上面的命令通过-v 将本地maven目录与Jenkins容器内目录关联,方便后面构建任务时要用到

d,在浏览器输入:http://ip:8888/
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第27张图片
第一次进入会让你输入初始密码,界面上会告诉你在哪个文件下,
或者通过命令

[root@docker_t ~]# docker logs -f jenkins

容器号查看启动日志,上面也会打出初始密码(e182da8dc7f44317a0852173da5380d9)。
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第28张图片
如果你是新手,可以先选择下面的,如果你是老司机,可以随意选择:
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第29张图片
等待一段时间,就是自动安装一下插件:
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第30张图片
安装完成后会出现下面页面,设置你的账号和密码
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第31张图片
保存并完成,接着出现:
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第32张图片
保存并完成,然后出现:
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第33张图片
开始使用,最后会出现下面的页面:
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第34张图片
(2)直接下载jenkins.war
准备工具:
已经安装好JDK的linux服务器(jdk1.8)
已经下载好Tomcat运行容器(版本随意)
a,下载最新版的:jenkins.war

[root@docker_t ]# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第35张图片
b,把他放进Tomcat运行,浏览器访问:http://ip:8080/jenkins
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第36张图片
后面的操作步骤与第一种安装方法一样

(3)linux直接安装
准备工具:
已经安装好JDK的linux服务器(jdk1.8)
a,yum的repo中默认没有Jenkins,需要先将Jenkins存储库添加到yum repos,执行下面的命令

[root@docker_t ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

b,然后执行下面的命令,生成key

[root@docker_t ~]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

c,然后 安装Jenkins

[root@docker_t ~]# yum install -y jenkins
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第37张图片
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第38张图片

d,启动jenkins

[root@docker_t ~]# service jenkins start
在这里插入图片描述

如果启动(jenkins)出现下面的情况:
(意思就是没有找到java文件,需要自己把java文件地址复制过去)
在这里插入图片描述
解决方法,执行命令:

[root@docker_t ~]# vi /etc/init.d/jenkins
找到“candidates” 在最后面添加您服务器的jdk安装目录,如果我的jdk安装地址:/usr/local/jdk1.8.0_211/bin/java
然后保存退出,重新启动jenkins就成功了
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第39张图片
e,在浏览器输入:http://ip:8080,出现下面的页面就说明已经安装成功,后面步骤与第一种方法一样
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第40张图片

f,停止jenkins(使用强力方法)

[root@docker_t ~]# ps -aux | grep jenkins
在这里插入图片描述
[root@docker_t ~]# kill -9 32353

注意:
1,如果你想修改其它端口启动,也可以在:/etc/init.d/jenkins 中修改
2,查看日志的地址:/var/log/jenkins/jenkins.log

[root@docker_t ~]# tail -f /var/log/jenkins/jenkins.log

7,安装Ansible

安装前准备:
(1)因为ansible是基于python的,所以先检查是否有python,如果没有需要安装(注意版本,版本过低,也可能导致安装失败)。

[root@vultr ~]# python -V
在这里插入图片描述
如果版本过低,请用下面的安装:
python2.7安装
wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
[root@vultr ~] tar xvzf Python-2.7.8.tgz
[root@vultr ~] cd Python-2.7.8
[root@vultr ~] ./configure --prefix=/usr/local
[root@vultr ~] make
[root@vultr ~] make install
将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件
[root@vultr ~] cd /usr/local/include/python2.7
[root@vultr ~] cp -a ./* /usr/local/include/
备份旧版本的python,并符号链接新版本的python
[root@vultr ~] cd /usr/bin
[root@vultr ~] mv python python.old
[root@vultr ~] ln -s /usr/local/bin/python2.7 /usr/local/bin/python
[root@vultr ~] rm -f /usr/bin/python && cp /usr/local/bin/python2.7 /usr/bin/python
或:https://www.cnblogs.com/guxiong/p/7218717.html

(2)安装ansible前需要安装依赖包

[root@test~]# yum -y install epel-release
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第41张图片

(3)ansible安装:

[root@test ~]# yum -y install ansible
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第42张图片

(4)是否安装成功,出现下面的就算了安装成功了:

[root@vultr ~]# ansible --version
Docker远程访问、集成Docker+ Maven插件、搭建Docker私有库Harbor、安装Jenkins、安装Ansible_第43张图片

你可能感兴趣的:(运维技术)