Jenkins+Ansible 实现自动化运维 DevOps
时间:2022-07-22
本文章向大家介绍Jenkins+Ansible 实现自动化运维 DevOps,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Jenkins+Ansible 实现自动化运维 DevOps
自动化运维流程图
前置环境安装
服务器之间配置SSH免密登录
Java安装
Git安装
yum install -y git
Maven安装
Ansible安装
yum install -y ansible
# 文件夹后面会用到
mkdir -p /opt/ansible
mkdir -p /opt/ansible/host
mkdir -p /opt/ansible/yaml
Jenkins安装
注:个人感觉 还是用 对应的安装包 比如Linux 就选用Linux的安装包
鄙人刚开始选的war包 结果折腾了好久 要么拿不到PATH命令 要么拿到命令没有授权 很脑袋疼 直接选对应包 一键轻松
官网下载
国内镜像下载
因为墙的原因,直接从官网下载会比较耗时
1.下载jenkins
国内清华大学软件开源镜像站
mkdir -p /opt/jenkins
cd /opt/jenkin
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.229-1.1.noarch.rpm
2.安装
rpm -i /opt/jenkin/jenkins-2.229-1.1.noarch.rpm
3.配置
配置权限
vi /etc/sysconfig/jenkins
# 将原先的 JENKINS_USER = "jenkins"
# 改为 JENKINS_USER = "root"
# 获得全局权限
配置国内加速镜像
vi hudson.model.UpdateCenter.xml
# 将Url 改为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
3.启动Jenkins
service jenkins start 或 systemctl start jenkins.service
4.初始化Jenkins
4.安装插件
Extended Choice Parameter Plug-In
# 用来做 多选框
5.配置环境变量
Linux 输入 echo $PATH
复制下来 保存到 Jenkins环境变量中
6.新建项目
设置构建选项-变量传参
设置构建Shell脚本
if [ -z "${version}" ]; then
errorParam="版本号不可为空";
echo $errorParam;
exit 1;
fi
cd /data/project
rm -rf demo-project
# 克隆项目 可克隆分支 默认主分支
if [ -n "${branch}" ]; then
git clone -b ${branch} "http://git用户名:git用户密码@git地址/xxx.git";
fi
if [ -z "${branch}" ]; then
git clone "http://git用户名:git用户密码@git地址/xxx.git";
fi
cd demo-project
# 打包 先clean 再package(如果不clean 有可能打包会丢文件)
mvn clean package
# 远程部署
ansible-playbook /opt/ansible/yaml/demo-shell.yaml -i /opt/ansible/host -e "version=${version} server=${server}"
Ansible
Ansible 发布端
YAML
- hosts: nginx_master
remote_user: root
tasks:
- name: 拷贝代码-分发服务器
tags: copy_code
copy: src="/data/project/demo-project/target/demo.war" dest="/root/tempFile"
- name: 分发服务器拷贝代码到-2号环境
tags: startup_project
shell: |
ansible-playbook /opt/ansible/yaml/demo-copy.yaml -i /opt/ansible/host/2-host -e "version=${version} server=${server}"
HOST IP地址
[nginx_master]
xxx.xxx.xxx.xxx
Ansible 服务器分发端
YAML
- hosts: "{{server}}"
remote_user: root
tasks:
- name: 拷贝代码
tags: copy_code
copy: src="/root/tempFile/demo.war" dest="/root/tempFile"
- name: 构建代码
tags: building_code
shell: |
cd /usr/local/shells
sh ./tomcat-bulider.sh -version "{{version}}"
- name: 启动项目
tags: startup_project
shell: |
cd /usr/local/tomcat/apache-tomcat-7.0.93/bin
nohup sh ./startup.sh &
HOST IP地址
[server_1]
xxx.xxx.xxx.xxx
[server_2]
xxx.xxx.xxx.xxx
项目构建
结语
鄙人,搭建了两天,中间淌过各种水,希望阅读的朋友少走弯路,代码无BUG!
喜欢的可以转发一下!
- 如今的人工智能是不是真的已经很聪明了?
- 【Scikit-Learn 中文文档】聚类 - 无监督学习 - 用户指南 | ApacheCN
- Delegate如何进行类型转换?
- 个性化推荐系统(一)---今日头条等的内容划分、分类
- ASP.NET Core的配置(2):配置模型详解
- 如何解决jQuery Validation针对动态添加的表单无法工作的问题?
- 数据结构 链表改进
- 数据结构 栈&队列
- 终端品牌域名过期被拍卖 价值六位数
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- ASP.NET的路由系统:路由映射
- ASP.NET Core的配置(3): 将配置绑定为对象[上篇]
- ASP.NET的路由系统:URL与物理文件的分离
- 使用Excel分析CloudStack使用记录
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php+mysql开发中的经验与常识小结
- PHP时间戳和日期相互转换操作实例小结
- php json转换相关知识(小结)
- PHP单例模式应用示例【多次连接数据库只实例化一次】
- 踩坑:pytorch中eval模式下结果远差于train模式介绍
- Python读取二进制文件代码方法解析
- Python3 webservice接口测试代码详解
- php往mysql中批量插入数据实例教程
- PHP类与对象后期静态绑定操作实例详解
- PHP后期静态绑定之self::限制实例分析
- PHP获取星期几的常用方法小结
- PyTorch-GPU加速实例
- Spring @Enable模块驱动原理及使用实例
- 关于python的缩进规则的知识点详解
- php 处理png图片白色背景色改为透明色的实例代码