前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins+Ansible 实现自动化运维 DevOps

Jenkins+Ansible 实现自动化运维 DevOps

作者头像
Parker
发布2020-07-21 18:24:32
2.3K2
发布2020-07-21 18:24:32
举报
文章被收录于专栏:在码圈在码圈

Jenkins+Ansible 实现自动化运维 DevOps

自动化运维流程图

自动化运维流程
自动化运维流程

前置环境安装

服务器之间配置SSH免密登录

转至 https://www.arcinbj.com/archives/ssh-keygen

Java安装

转至 https://www.arcinbj.com/archives/java-install

Git安装
代码语言:javascript
复制
yum install -y git
Maven安装

转至 https://www.arcinbj.com/archives/maven-install

Ansible安装
代码语言:javascript
复制
yum install -y ansible

# 文件夹后面会用到
mkdir -p /opt/ansible
mkdir -p /opt/ansible/host
mkdir -p /opt/ansible/yaml

Jenkins安装

注:个人感觉 还是用 对应的安装包 比如Linux 就选用Linux的安装包

鄙人刚开始选的war包 结果折腾了好久 要么拿不到PATH命令 要么拿到命令没有授权 很脑袋疼 直接选对应包 一键轻松

官网下载

https://jenkins.io

Jenkins-1
Jenkins-1
Jenkins-2
Jenkins-2

国内镜像下载

因为墙的原因,直接从官网下载会比较耗时

1.下载jenkins

国内清华大学软件开源镜像站

代码语言:javascript
复制
mkdir -p /opt/jenkins

cd /opt/jenkin

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.229-1.1.noarch.rpm
2.安装
代码语言:javascript
复制
rpm -i /opt/jenkin/jenkins-2.229-1.1.noarch.rpm
3.配置

配置权限

代码语言:javascript
复制
vi /etc/sysconfig/jenkins

# 将原先的 JENKINS_USER = "jenkins" 
# 改为 JENKINS_USER = "root"
# 获得全局权限
Jenkins-3
Jenkins-3

配置国内加速镜像

代码语言:javascript
复制
vi hudson.model.UpdateCenter.xml

# 将Url 改为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
Jenkins-4
Jenkins-4
3.启动Jenkins

service jenkins start 或 systemctl start jenkins.service

4.初始化Jenkins
jenkins5-1
jenkins5-1
jenkins-5-2
jenkins-5-2
jenkins-5
jenkins-5
jenkins-6
jenkins-6
jenkins-7
jenkins-7
4.安装插件
代码语言:javascript
复制
 Extended Choice Parameter Plug-In
 # 用来做 多选框 
Jenkins-p-0
Jenkins-p-0
jenkins-p-1
jenkins-p-1
5.配置环境变量
代码语言:javascript
复制
Linux 输入 echo $PATH

复制下来 保存到 Jenkins环境变量中
Jenkins-v-0
Jenkins-v-0
Jenkins-v-1
Jenkins-v-1
6.新建项目

设置构建选项-变量传参

Jenkins-b-0
Jenkins-b-0
Jenkins-b-1
Jenkins-b-1

设置构建Shell脚本

代码语言:javascript
复制
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}"
Jenkins-b-5
Jenkins-b-5

Ansible

Ansible 发布端

YAML

代码语言:javascript
复制
- 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地址

代码语言:javascript
复制
[nginx_master]
xxx.xxx.xxx.xxx
Ansible 服务器分发端

YAML

代码语言:javascript
复制
- 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地址

代码语言:javascript
复制
[server_1]
xxx.xxx.xxx.xxx

[server_2]
xxx.xxx.xxx.xxx

项目构建

转至 https://www.arcinbj.com/archives/linux-01

结语

鄙人,搭建了两天,中间淌过各种水,希望阅读的朋友少走弯路,代码无BUG!

喜欢的可以转发一下!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Jenkins+Ansible 实现自动化运维 DevOps
    • 自动化运维流程图
      • 前置环境安装
        • 服务器之间配置SSH免密登录
        • Java安装
        • Git安装
        • Maven安装
        • Ansible安装
      • Jenkins安装
        • 1.下载jenkins
        • 2.安装
        • 3.配置
        • 3.启动Jenkins
        • 4.初始化Jenkins
        • 4.安装插件
        • 5.配置环境变量
        • 6.新建项目
      • Ansible
        • Ansible 发布端
        • Ansible 服务器分发端
      • 项目构建
      • 结语
      相关产品与服务
      CODING DevOps
      CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档