DevOps的概念
DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过需要澄清的一点是,从开发到运维,中间还有测试环节。DevOps其实包含了三个部分:开发、测试和运维。
CI/CD流程图
jekins安装与配置
1.下载
https://jenkins.io/zh/download/ (下载可能会比较慢)
2.安装
可选择war包,放在tomcat下
3.配置
1)主目录配置
所以要在配置前把JENKINS_HOME配置好,否则构建的项目会放在默认的主目录中
2)工具安装
根据自身项目情况进行安装如 maven git 等,注意一些安装目录,jenkins会配置
3)插件安装
初次登录获取密码:
2)工具安装
根据自身项目情况进行安装如 maven git 等,注意一些安装目录,jenkins会配置
3)插件安装
初次登录获取密码:
启动tomcat根据提示进行安装,安装一些推荐插件
如果要用tomcat进行部署的话可用Deploy to container Plugin进行tomcat自带的管理进行部署,也可实用自己写的脚本。
安装后建议重启一下。
4)系统配置和全局安全配置
可根据个人情况对一些内容进行配置,本人没有过多配置就不误导大家了。就对Git plugin配置了一下。
5)全局工具配置
针对项目中用到的东西对工具的一些配置。
6)构建项目
调用顶层Maven目标
选择Maven并在构建中目标输入:
7)构建后操作
选择:Deploy war/ear to a container
针对Tomcat 配置好manager的用户可以填写上就OK了
权限管理
如何给不同的用户分配不同的项目权限呢,今天来介绍这个
1 (全局安全设置)启用角色->2新建用户->3新建jenkins 全局角色 builder 并分配如下图3中所示权限(并分配Overall read权限(必须分配 否则用户无法访问项目) 和根据需要分配任务的build ,cancel,configure create delete discover move read 等权限)4->新建项目角色>5给用户分配jenkins全局角色->6给用户分配项目角色
执行完上述步骤后保存即可
注意事项:角色和项目关联可以用正则表达式,*号表示匹配任务字符,—下划线表示匹配单个字符,新建任务时最好不要使用下划线
参数化构建
有时候开发需要查看服务器日志,传统的是需要运维登录服务器拉取开发所需要的服务日志,这么做的弊端是:1、如果日志比较大,拉取耗费时间、占用服务器资源。2、占用运维不必要的工作量。3、为了服务器安全考虑,反复的登录服务器,容易被一些内部员工记住服务器密码或秘钥。
废话不多说,先来看效果:
当我们点击上面项目名后面的参数化构建(build with parameters)时,出现下面界面
当我们在N框输入所要看的日志行数,下面日期可以输时间,也可以不输(不输就默认输出现在的日志),然后点击“开始构建”,构建完毕后,就可以看到服务器上的日志显示在Jenkins控制台上
master-slave
Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行。一个master可以关联多个slave用来为不同的job或相同的job的不同配置来服务。
当job被分配到slave上运行的时候,此时master和slave其实是建立的双向字节流的连接,其中连接方法主要有如下几种:
1)master通过ssh来启动slave
Jenkins内置有ssh客户端实现,可以用来与远程的sshd通信,从而启动slave agent。这是对
unix系统的slave最方便的方法,因为
unix系统一般默认安装有sshd。在创建ssh连接的slave的时候,你需要提供slave的host名字,用户名和ssh证书。创建public/private keys,然后将public key拷贝到slave的~/.ssh/authorized_keys中,将private key 保存到master上某ppk文件中。jenkins将会自动地完成其他的配置工作,例如copy slave agent的binary,启动和停止slave。但是你的job运行所依赖其他的项目需要你自己设置。
2)master通过WMI+DCOM来启动windows slave
对于Windows的Slave,Jenkins可以使用Windows2000及以后内置的远程管理功能(WMI+DCOM),你只需要提供对slave有管理员访问权限的用户名和密码,jenkins将远程地创建windows service然后远程地启动和停止他们。
对于windows的系统,这是最方便的方法,但是此方法不允许运行有显示交互的GUI程序。
注意:不想其他类型的链接方式,此种方式slave(note)的名字非常重要,将被用来当做slave的地址访问slave。
3)实现自己的脚本来启动slave
如果上面成套的方法不够灵活,你可以实现自己的脚本来启动slave。你需要将启动脚本放到master,然后告诉jenkins master在需要的时候调用此脚本来启动slave。
典型地,你的脚本使用远程程序执行机制,例如SSH,RSH,或类似的方法(在windows,可以通过cygwin或psexec来完成),
在脚本的最后需要执行类似java -jar slave.jar来启动slave。slave.jar可以从http://yourjenkinsserver:port/jnlpjars/slave.jar下载,也可以在脚本的开始先下载此slave.jar从而保证slave.jar正确的版本。但是如果使用ssh slave plugin的话,此plugin将自动地更新slave.jar。
4)通过Java web start来启动slave
jave web start(jnlp)是另一种启动slave的方法。用这种方法你需要登录到slave,打开浏览器,打开slave的配置页面来连接。还可以安装为windows service来使得slave在后台运行。
如果你需要运行的程序需要UI的交互,使用下面的方法:在slave系统上创建jenkins用户,设置自动登录,在系统的startup items增加slave JNLP文件的快捷方式,使得slave在系统登录的时候自动启动。
5)直接启动slave
此方式类似于java web start,可以方便地在*unix系统上将slave运行为daemon。需要配置slave为JNLP类型连接,然后在slave机器上执行
二 Slave配置的好的建议
•每个slave都有用户jenkins,所有的机器使用相同的UID和GID,使得slave的管理更加简单;•每个机器上jenkins用户的home目录都相同/home/jenkins, 拥有相同的目录结构使得维护简单;•所有的slave运行sshd,windows运行cygwin sshd;•所有的slave安装ntp client,用来与相同的ntp server同步;•使用脚本sh来自动地配置slave的环境,例如创建jenkins用户,安装sshd,安装java,ant,maven等;•使用脚本来启动slave,保证slave总是运行在相同的参数下:#!/bin/bash
------------------- 消息中间件Rabbitmq ----------------------------------
消息中间件Rabbitmq(01)
消息中间件Rabbitmq(02)
消息中间件Rabbitmq(03)
消息中间件Rabbitmq(04)
消息中间件Rabbitmq(05)
消息中间件Rabbitmq(06)
消息中间件Rabbitmq(07)
------------------- ---------- 云计算 -------------------------------------
云计算(1)——docker的前世今生
云计算(2)—— 体系结构
云计算(3)—— 容器应用
云计算(4)—— LAMP
云计算(5)—— Dockerfile云计算(6)—— harbor
关注公众号 soft张三丰