docker-compose.yaml
jenkins:
restart: always
image: centos7-jenkins-plugins
container_name: docker_jenkins
# volumes:
# - "./jenkins_home/:/var/lib/jenkins/"
ports:
- '222:22'
- '8091:8080'
privileged: true
command: /usr/sbin/init
networks:
- qfedu-gp
web:
restart: always
image: centos7-python3.7
container_name: docker_web
volumes:
- "./web/home/:/home/"
ports:
- '8090:80'
networks:
- qfedu-gp
privileged: true
command: /usr/sbin/init
networks:
qfedu-gp:
启动之后安装插件
Ansible plugin
Ant Plugin
Blue Ocean
Build Timeout
Email Extension Plugin
Git Parameter Plug-In
Gitlab Hook Plugin
GitLab Plugin
Maven Invoker plugin
Maven Integration plugin
Publish Over SSH
SSH plugin
SSH Slaves plugin
Rebuilder
Safe Restart
smtp功能
在Manage Jenkins里选择configuration。
Jenkins Location:
Jenkins URL: http://192.168.1.2:8080/(填写访问地址)
System Admin e-mail address: 1@rou.com
E-mail Notification:
SMTP server: smtp.rou.com
Default user e-mail suffix : @rou.com
勾选Use SMTP Authentication
用户名:邮箱地址(与系统管理员的邮箱一致)
密码:授权码
SMTP Port:25(勾选SSL后端口为465)
勾选Test configuration by sending test e-mail
填写自己的邮箱地址
点击test configration(测试)
SSH互信
Publish over SSH:
key:为被服务的机器的私钥
hostname:被服务机器的ip
username:root(使用的远端用户)
Remote Directory:远端的目录
点击test configration(测试是否成功)
构建gitlab项目
在gitlab中:
建立新项目并添加new file: show_system_info.sh
show_system_info.sh的内容:
echo "-----------主机名-------------"
hostname
touch /app/rourou.txt
echo "hello" rourou1.txt
free -h
uptime
复制clone地址
点击new item
输入项目名,选择项目类型,这里选择freestyle item
Description:添加描述
Source Code Management:
选择git:
Repository URL:填写复制的clone地址
Credentials:选择登陆的用户
或者点击ADD:
选择git方式(前提是jenkins以把公钥传给了gitlab)或username and passeord 方式登陆gitlab
选择build:
Name:选择被管理的机器
Source files:(show_system_info.sh)这里填写的是打好包的路径,是相对路径,相对于工作空间目录的,工作空间默认是在 $JENKINS_HOEM/workspace 目录下。每次新建一个构建任务时,会在此目录下创建一个和任务名同名的目录(比如:HelloMaven),在此目录下存放从远程代码库拉取的源代码,并且构建完成的文件(比如jar 包)也会在 HelloMaven/target 目录下。
Remove prefix:是在把打好包的文件传输到远程应用服务器时,不希望被创建的目录名。 这个目录名必须是在 Source files 选项中填写的路径最前面的部分中。
Remote directory:(code)远程应用服务器的目录,这个目录假如没有会被自动创建,但是此目录是给相对路径,相对于之前在系统设置中的 SSH Servers 中配置的服务器端路径
Exec command:(sh /app/code/show_system_info.sh)指构建后在远程应用服务器上执行的命令。
保存后,点击Build now
待构建完成之后,点击console output查看
<pre class="console-output" style="box-sizing: border-box; white-space: pre-wrap; overflow-wrap: break-word; margin: 0px; color: rgb(51, 51, 51); font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">Started by an SCM change
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/jenkins projects
using credential 1
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url [http://10.0.122.124:8081/rourou/ll.git](http://10.0.122.124:8081/rourou/ll.git) # timeout=10
Fetching upstream changes from [http://10.0.122.124:8081/rourou/ll.git](http://10.0.122.124:8081/rourou/ll.git)
> git --version # timeout=10
using GIT_ASKPASS to set credentials get system info script
> git fetch --tags --progress [http://10.0.122.124:8081/rourou/ll.git](http://10.0.122.124:8081/rourou/ll.git) +refs/heads/*:refs/remotes/origin/*
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision c86f70e2dc86a336bbbd912c77c6f7b6a9260b6b (refs/remotes/origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f c86f70e2dc86a336bbbd912c77c6f7b6a9260b6b
Commit message: "Update show_system_info.sh"
> git rev-list --no-walk f395fc2203b5509378ddb7e105a719e176438dfe # timeout=10
SSH: Connecting from host [74a3c2c9ae63]
SSH: Connecting with configuration [webserver1] ...
SSH: EXEC: STDOUT/STDERR from command [sh /app/code/show_system_info.sh] ...
-----------主机名-------------
49a6713a34ee
hello rourou1.txt
total used free shared buff/cache available
Mem: 7.7G 6.0G 182M 762M 1.5G 530M
Swap: 19G 457M 19G
07:06:23 up 7:19, 0 users, load average: 0.52, 0.53, 0.59
SSH: EXEC: completed after 200 ms
SSH: Disconnecting configuration [webserver1] ...
SSH: Transferred 1 file(s)
Build step 'Send files or execute commands over SSH' changed build result to SUCCESS
Finished: SUCCESS</pre>
到被管理的服务器上查看构建的目录
|-- code
| `-- show_system_info.sh
`-- rourou.txt
网友评论