Jenkins + Ansible + svn自动化部署

Jenkins + Ansible + svn自动化部署

准备条件:centos 8、dk-8u301-linux-x64.rpm 、 jenkins-2.312-1.1.noarch.rpm

[root@t8 centos]# cat /etc/redhat-release
CentOS Linux release 8.4.2105

1、ansible安装及配置

1.1、安装epel扩展源

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

1.2、dnf安装ansible

dnf install ansible

[root@t8 opt]# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
Last metadata expiration check: 2:29:15 ago on Fri 17 Sep 2021 03:29:23 PM CST.
epel-release-latest-8.noarch.rpm                                                              80 kB/s |  23 kB     00:00    
Dependencies resolved.
=============================================================================================================================
 Package                         Architecture              Version                     Repository                       Size
=============================================================================================================================
Upgrading:
 epel-release                    noarch                    8-13.el8                    @commandline                     23 k

Transaction Summary
=============================================================================================================================
Upgrade  1 Package

Total size: 23 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                     1/1 
  Running scriptlet: epel-release-8-13.el8.noarch                                                                        1/1 
  Upgrading        : epel-release-8-13.el8.noarch                                                                        1/2 
  Cleanup          : epel-release-8-11.el8.noarch                                                                        2/2 
  Running scriptlet: epel-release-8-11.el8.noarch                                                                        2/2 
  Verifying        : epel-release-8-13.el8.noarch                                                                        1/2 
  Verifying        : epel-release-8-11.el8.noarch                                                                        2/2 

Upgraded:
  epel-release-8-13.el8.noarch                                                                                               

Complete!
[root@t8 opt]# dnf install ansible
Last metadata expiration check: 2:29:29 ago on Fri 17 Sep 2021 03:29:23 PM CST.
Dependencies resolved.
=============================================================================================================================
 Package                           Architecture            Version                          Repository                  Size
=============================================================================================================================
Installing:
 ansible                           noarch                  2.9.25-1.el8                     epel                        17 M
Installing dependencies:
 libsodium                         x86_64                  1.0.18-2.el8                     epel                       162 k
 python3-bcrypt                    x86_64                  3.1.6-2.el8.1                    epel                        44 k
 python3-jmespath                  noarch                  0.9.0-11.el8                     appstream                   45 k
 python3-pyasn1                    noarch                  0.3.7-6.el8                      appstream                  126 k
 python3-pynacl                    x86_64                  1.3.0-5.el8                      epel                       100 k
 sshpass                           x86_64                  1.06-9.el8                       epel                        27 k
Installing weak dependencies:
 python3-paramiko                  noarch                  2.4.3-1.el8                      epel                       289 k

Transaction Summary
=============================================================================================================================
Install  8 Packages

Total download size: 18 M
Installed size: 99 M
Is this ok [y/N]: y
Downloading Packages:
(1/8): python3-jmespath-0.9.0-11.el8.noarch.rpm                                              1.2 MB/s |  45 kB     00:00    
(2/8): python3-pyasn1-0.3.7-6.el8.noarch.rpm                                                 2.7 MB/s | 126 kB     00:00    
(3/8): libsodium-1.0.18-2.el8.x86_64.rpm                                                     3.3 MB/s | 162 kB     00:00    
(4/8): python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm                                               178 kB/s |  44 kB     00:00    
(5/8): python3-paramiko-2.4.3-1.el8.noarch.rpm                                               1.2 MB/s | 289 kB     00:00    
(6/8): ansible-2.9.25-1.el8.noarch.rpm                                                        30 MB/s |  17 MB     00:00    
(7/8): sshpass-1.06-9.el8.x86_64.rpm                                                         112 kB/s |  27 kB     00:00    
(8/8): python3-pynacl-1.3.0-5.el8.x86_64.rpm                                                 367 kB/s | 100 kB     00:00    
-----------------------------------------------------------------------------------------------------------------------------
Total                                                                                         16 MB/s |  18 MB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                     1/1 
  Installing       : sshpass-1.06-9.el8.x86_64                                                                           1/8 
  Installing       : python3-bcrypt-3.1.6-2.el8.1.x86_64                                                                 2/8 
  Installing       : libsodium-1.0.18-2.el8.x86_64                                                                       3/8 
  Installing       : python3-pynacl-1.3.0-5.el8.x86_64                                                                   4/8 
  Installing       : python3-pyasn1-0.3.7-6.el8.noarch                                                                   5/8 
  Installing       : python3-paramiko-2.4.3-1.el8.noarch                                                                 6/8 
  Installing       : python3-jmespath-0.9.0-11.el8.noarch                                                                7/8 
  Installing       : ansible-2.9.25-1.el8.noarch                                                                         8/8 
  Running scriptlet: ansible-2.9.25-1.el8.noarch                                                                         8/8 
  Verifying        : python3-jmespath-0.9.0-11.el8.noarch                                                                1/8 
  Verifying        : python3-pyasn1-0.3.7-6.el8.noarch                                                                   2/8 
  Verifying        : ansible-2.9.25-1.el8.noarch                                                                         3/8 
  Verifying        : libsodium-1.0.18-2.el8.x86_64                                                                       4/8 
  Verifying        : python3-bcrypt-3.1.6-2.el8.1.x86_64                                                                 5/8 
  Verifying        : python3-paramiko-2.4.3-1.el8.noarch                                                                 6/8 
  Verifying        : python3-pynacl-1.3.0-5.el8.x86_64                                                                   7/8 
  Verifying        : sshpass-1.06-9.el8.x86_64                                                                           8/8 

Installed:
  ansible-2.9.25-1.el8.noarch               libsodium-1.0.18-2.el8.x86_64            python3-bcrypt-3.1.6-2.el8.1.x86_64     
  python3-jmespath-0.9.0-11.el8.noarch      python3-paramiko-2.4.3-1.el8.noarch      python3-pyasn1-0.3.7-6.el8.noarch       
  python3-pynacl-1.3.0-5.el8.x86_64         sshpass-1.06-9.el8.x86_64               

Complete!
[root@t8 opt]# ansible --version
ansible 2.9.25
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/admin/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Mar 19 2021, 05:13:41) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]

1.3、ansible免密登录设置

1.3.1、生成密钥

[root@t8 .ssh]# ssh-keygen  (一直回车)
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:kd8LqaUWG2MKc8V6fSmVDQ8PlTbMCyrjwKkNnUEhgyk root@c7.7-44
The key's randomart image is:
+---[RSA 2048]----+
|   oo.o.    ++.. |
|E o  o.. .  .O*  |
| .   o +=  .oo+o |
|    . *oo+.+ ..  |
|    o+ooSoB +    |
|    .+.+.O + .   |
|      . =   .    |
|       .         |
|                 |
+----[SHA256]-----+

1.3.2、拷贝公钥到目标主机

[root@t8 .ssh]# cd /root/.ssh/
[root@t8 .ssh]# ssh-copy-id -i id_rsa.pub root@172.31.18.218

注意
aws主机会有报错
错误的全称是 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

就是ssh 后面加上ip,但是过不去.

我是用xshell连接的,现在是root用户
其中/etc/ssh/sshd_config下面的
PasswordAuthentication yes
PermitRootLogin yes
PubkeyAuthetication yes
strictModes yes

1.3.3、ansible被控主机设置

编辑/etc/ansible/hosts

[root@t8 ~]# vim /etc/ansible/hosts
[web]
172.31.18.218
验证

[root@t8 ~]# ansible web -m ping
172.31.18.218 | SUCCESS => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: false,
“ping”: “pong”
}

2、安装jenkins

2.1、java安装

[root@t8 centos]# rpm -ivh jdk-8u301-linux-x64.rpm 
warning: jdk-8u301-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8-2000:1.8.0_301-fcs        ################################# [100%]
Unpacking JAR files...
	tools.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...
	rt.jar...
	jsse.jar...
	charsets.jar...
	localedata.jar...
[root@t8 centos]# java -V
Unrecognized option: -V
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
[root@t8 centos]# java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
[root@t8 centos]# 

2.2、安装jenkins

/var/lib/jenkins 主目录
/etc/init.d/jenkins 启动文件
/var/cache/jenkins 程序文件
/var/log/jenkins 日志文件

[root@t8 centos]# ls
AnsibleUI-master               go.sh                    jenkins-2.312-1.1.noarch.rpm  v2ray.sh
apache-maven-3.6.3-bin.tar.gz  jdk-8u301-linux-x64.rpm  Python-3.7.3.tgz
[root@t8 centos]# rpm -ivh jenkins-2.312-1.1.noarch.rpm 
warning: jenkins-2.312-1.1.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEY
error: Failed dependencies:
	daemonize is needed by jenkins-2.312-1.1.noarch
[root@t8 centos]# yum install daemonize
Repository epel is listed more than once in the configuration
Last metadata expiration check: 0:37:59 ago on Fri 17 Sep 2021 02:45:05 PM CST.
Dependencies resolved.
=============================================================================================================================
 Package                        Architecture                Version                          Repository                 Size
=============================================================================================================================
Installing:
 daemonize                      x86_64                      1.7.8-1.el8                      epel                       27 k

Transaction Summary
=============================================================================================================================
Install  1 Package

Total download size: 27 k
Installed size: 34 k
Is this ok [y/N]: y
Downloading Packages:
daemonize-1.7.8-1.el8.x86_64.rpm                                                             278 kB/s |  27 kB     00:00    
-----------------------------------------------------------------------------------------------------------------------------
Total                                                                                        274 kB/s |  27 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                     1/1 
  Installing       : daemonize-1.7.8-1.el8.x86_64                                                                        1/1 
  Running scriptlet: daemonize-1.7.8-1.el8.x86_64                                                                        1/1 
  Verifying        : daemonize-1.7.8-1.el8.x86_64                                                                        1/1 

Installed:
  daemonize-1.7.8-1.el8.x86_64                                                                                               

Complete!
[root@t8 centos]# rpm -ivh jenkins-2.312-1.1.noarch.rpm 
warning: jenkins-2.312-1.1.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:jenkins-2.312-1.1                ################################# [100%]
[root@t8 centos]#

安装过程出现一个问题
在这里插入图片描述
这里根据提示直接yum install daemonize

后面就安装正常

2.3、修改Jenkins配置

主配置文件主要修改运行用户即可: /etc/sysconfig/jenkins

[root@t8 ~]# vim /etc/sysconfig/jenkin
JENKINS_USER="root"

2.4、启动并设置开机启动

[root@t8 ~]# systemctl restart jenkins && systemctl enable jenkins

2.5、浏览器访问

访问: http://server_ip:8080
查看 admin 默认密码: cat /var/lib/jenkins/secrets/initialAdminPassword
选择默认插件 进行安装

在这里插入图片描述
在这里插入图片描述

如果新手不知道选什么是自己需要的,就默认推荐的就可以了

在这里插入图片描述
等待全部安装完成即可

在这里插入图片描述
使用admin账户继续
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装完成

3、svn插件及项目构建

3.1、svn插件安装

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
svn插件完成安装

3.2、项目构建:

a新建Item
b输入一个任务名称:uat
c选择自由项目
d配置源码管理:选择subversion-Repository URL及账号密码设置
e配置脚本
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3、编辑脚本及构建后操作

看自己业务需要,写自己的脚本,让ansible去执行,这样管理百来台机器还是很轻松的

在这里插入图片描述
在这里插入图片描述
关注我,了解更多运维知识

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

托宇维.T8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值