ip

角色

备注

10.11.0.215

jenkins服务器

通过deploy运行jenkins服务,deploy用户做了免秘钥登录ansible服务器

10.11.0.210

ansible服务器

通过deploy执行ansible服务,做了免秘钥登录test主机

10.11.0.212

需要被ansible控制的主机

环境准备:

  1. 搭建ansible服务环境,参考前面章节
  2. Ansible和10.11.0.212做免密码登录
  3. Jenkins和ansible服务做免秘钥登录

整理的逻辑:

Jenkins –> 远程调用ansible上的testansible.sh脚本 -->test.example终端机

Jenkins的配置,执行脚本

# 通过jenkins服务器调用ansible(10.11.0.210)上的脚本执行ansible任务

#!/bin/sh

source /etc/profile

ssh deploy@10.11.0.210 "/usr/sbin/ip a"

ssh deploy@10.11.0.210 "ls"

ssh deploy@10.11.0.210 "/bin/sh testansible.sh"

Testansible.sh脚本

[deploy@node1 ~]$ cat testansible.sh

#!/bin/sh

set +x

source /home/deploy/.py3-a2.5-env/bin/activate

source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q

cd /home/deploy

ansible --version

ansible-playbook --version

cat test servers

ansible -i testservers testserver -m command -a "ip addr"

set -x

备注:

由于ansible和jenkins没有部署在同一台服务器中,为了方便就把jenkins挪到了ansible中(因为ansible部署比较麻烦,jenkins简单)

实际生产环境中不建议 gitlab/jenkins/ansible部署在一台机器中

可以将gitlab单独一台机器

jenkins和ansible公用一台机器

主要步骤:

1.在目标服务器中安装java环境

2.拷贝jenkins相关的程序即 /usr/local/tomcat 到目标服务器目录下,解压并赋权 chown -R deploy.deploy /usr/local/apache-tomcat-8.5.39

3.拷贝运行jenkins的用户配置到目标服务器下:/home/deploy/.jenkins目录

由于里面集成了gitlab,原来tomcat的8080口被gitlab占用,修改tomcat端口为8090

直接访问 10.11.0.210:8090/jenkins 就可以正常访问jenkins了

Gitlab_ansible_jenkins三剑客⑥Jenkins和ansible集成的更多相关文章

  1. Gitlab_ansible_jenkins三剑客⑤jenkins Pipeline-job的使用

    Pipeline-job的使用 创建Pipeline任务 找到root用户的id 编写pipeline脚本 #!groovy pipeline{ agent {node {label 'master' ...

  2. Gitlab_ansible_jenkins三剑客④jenkins安装图解及freestyle的简单使用

    java环境准备 # 安装jdk1.8 [root@node02 ~]# rpm -ivh jdk-8u181-linux-x64.rpm vim /etc/profile export JAVA_H ...

  3. jenkins结合ansible用shell实现自动化部署和回滚

    最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚.然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现. 环境: cent ...

  4. jenkins + supervisor + ansible 实现netcore程序的多机一键部署

    上一篇我们简单的说到了使用jenkins+supervisor实现了一个单机版的多副本部署,但是在更多的场景下还是需要netcore程序的多机一键部署,那么多 机器间如何分发呢? 肯定不能使用scp这 ...

  5. Jenkins+Gitlab+Ansible自动化部署(五)

    Freestyle Job实现静态网站部署交付(接Jenkins+Gitlab+Ansible自动化部署(四)https://www.cnblogs.com/zd520pyx1314/p/102445 ...

  6. Jenkins+Gitlab+Ansible自动化部署(六)

    Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...

  7. Jenkins+Gitlab+Ansible自动化部署(三)

    接Jenkins+Gitlab+Ansible自动化部署(一)https://www.cnblogs.com/zd520pyx1314/p/10210727.html 和(二)https://www. ...

  8. Jenkins+Gitlab+Ansible自动化部署(四)

    接Jenkins+Gitlab+Ansible自动化部署(三)https://www.cnblogs.com/zd520pyx1314/p/10235394.html Jenkins应用 Jenkin ...

  9. [ jenkins ] git+jenkins+maven + ansible 部署java程序

    1. 工具介绍 git:版本控制,一般都是托管到代码仓库的.如 github.coding.gitlab (本文以 coding 为例) jenkins:持续集成工具之一,也是最常用的工具,主要工作就 ...

随机推荐

  1. 转:eclipse 设置Java快捷键补全

    1.打开Eclipse,点击" Window - Preferences"; 2. 在目录树上选择"Java——Editor——Content Assist", ...

  2. Vim安装使用和配置

    卸载vim sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除) 也可以使用yum等其它方式安装 ,如果提示apt-get命令不存在可以 ...

  3. mongodb解决只能本地连接不能远程连接问题

    本机windows7 ,装了vagrant盒子,并在盒子上装了mongodb服务,本机连接虚拟机时连不上. 解决方法: 修改虚拟机上 mongodb.conf 文件,将bind_ip = 127.0. ...

  4. Consecutive Sum LightOJ - 1269(区间异或和)

    Consecutive Sum 又来水一发blog... 本来是昨天补codechef的题,最后一道题是可持久化字典树,然后去黄学长博客看了看 觉得字典树写法有点不太一样,就想着用黄学长的板子写码几道 ...

  5. Nginx 过滤sub模块

    L70 通过 --with-http_sub_module 编译进nginx sub_filter 指令 Syntax: sub_filter string replacement; Default: ...

  6. Nginx Http 过滤模块

    L69 执行顺序在content阶段后 log阶段前调用的 也就是处理完用户业务后 准备记录处理日志之前 我们可以到nginx http_model.c里查看 数组 执行顺序从下至上顺序执行 copy ...

  7. 「快速傅里叶变换(FFT)」学习笔记

    FFT即快速傅里叶变换,离散傅里叶变换及其逆变换的快速算法.在OI中用来优化多项式乘法. 本文主要目的是便于自己整理.复习 FFT的算法思路 已知两个多项式的系数表达式,要求其卷积的系数表达式. 先将 ...

  8. ubuntu下使用ss-qt5

    第一步:.安装ss-qt5 通过PPA源安装,仅支持Ubuntu 14.04或更高版本. 打开终端 sudo add-apt-repository ppa:hzwhuang/ss-qt5 sudo a ...

  9. java 11 Java Flight Recorder

    Flight Recorder源自飞机的黑盒子 Flight Recorder以前是商业版的特性,在java11当中开源出来,它可以导出事件到文件中,之后可以用Java Mission Control ...

  10. java的三大特征:封装,继承和多态

    有点递进关系,继承增加了代码的复用性,多态必须基于继承才可以实现. 一.封装 使用原因:当我们没有为类进行封装的时候,类中定义的属性可以被外界随意访问,这样容易造成一些合法性的问题.封装可以非常好的解 ...