分类目录归档:生活

Jenkins那些常用插件

Jenkins插件大师

作为CI/CD的调度中心,Jenkins具有十八般武艺,目前已有1700多个插件,功能强大到似乎有点过分了。本文主要列出平时我们常用的插件。

以下这两个网站是Jenkins所有的插件及说明

Jenkins Plugins https://plugins.jenkins.io

Jinkins Plugins Wiki https://wiki.jenkins.io


Git Parameter

这是一个参数构建扩展,可以在构建的时候选择git的某一个分支来构建服务。

Docker

利用Docker容器动态创建Jenkins Slave。如果有了Kubernetes/Openshift集群,就不需要这个插件了。直接使用下面的Kubernetes插件。
jenkins非root启动的话,为了运行docker需要执行sudo chmod 777 /var/run/docker.sock

Kubernetes

这个插件可以将Jenkins Slave Node动态配置为Kubernetes集群上的pod。

Openshift

这个插件支持调度Openshift的对象,包括触发 BuildConfig、Deployment、Scale up a Deployment,给ImageStream打新的Tag,以及创建新的对象、删除已有对象等。


GitLab

配置Gitlab的相关认证,同时也支持GitLab的Webhook触发。

GitLab Hook

支持GitLab更好的触发。

Gogs WebHook

支持Gogs代码仓库的触发。


Maven

这个插件为Maven 2 / 3项目提供了高级集成功能。

Pyenv Pipeline

方便对python进行项目级别的环境隔离。
jenkins机器上需要安装python、pip、virtualenv

Python

这个插件支持在Jenkins的构建过程中执行Python脚本。

SonarQube Scanner

支持SonarQube的代码扫描。

Ansible

在构建任务中可以执行Ansible任务。

Publish Over SSH

通过SSH拷贝文件到目标机器,同时可以在目标机器上执行脚本

Publish Over SSH

事先要在设置中添加目标机器的访问方式。


Job Generator

定义一个参数化的模板,通过这个模板快速的在 Jenkins 上创建出任务。

Job Generator

Pipeline:Job

添加一个新的Job类型:Pipeline。

Pipeline:Job

Multijob

把多个Job组织起来。

Parameterized Trigger

这是一个扩展型的插件,使各个job连接的时候可以传递一些job相关的信息。

Join

这也是一个触发job的插件,亮点在于它触发job的条件是等待所有当前job的下游的job都完成才会发生。

Build Pipeline

这个插件提供一个构建流水线的视图。同时它提供了一个任务的手动触发器。

Build Pipeline

Build Monitor View

将Jenkins项目以一块看板的形式呈现。

Build Monitor View


JUnit

展示JUnit单元测试报告。

TestNG Results

导出TestNG的测试报告。

JaCoCo

生成测试覆盖率的报告。

Performance

生成性能测试报告
需要在Jenkins机器上安装Taurus(开源负载测试工具和功能测试工具自动化框架)

Performance

Html Publisher

生成报告文档。参考资料:https://www.jianshu.com/p/8fb776f83243

Email Extension

扩展了发送告警邮件的控制力度。可以定义邮件触发器、邮件内容、收件人。

Mailer

每次不稳定的构建都发送邮件通知。
单独发送邮件给对构建造成不良影响的责任人,会从SCM提交者人的信息中,拼出邮箱。

Sounds

这个插件能让Jenkins通过播放声音来发出通知。

Workspace Cleanup

每次build之前删除workspace目录下指定的文件

Workspace Cleanup


Role-based Authorization Strategy 用户角色

给Jenkins用户权限管理添加了角色组。

Matrix Authorization Strategy Plugin

为每个项目设置用户权限

Disk Usage

对Jenkins节点服务器磁盘的监控。

Disk Usage

Monitoring监控

监控Jenkins节点的CPU、系统负载、平均响应时间和内存使用。

Monitoring监控

Backup备份Jenkins

自定义备份Jenkins Home目录。

Backup备份Jenkins

ThinBackup轻量备份Jenkins

轻量备份Jenkins上的配置与Job

ThinBackup轻量备份Jenkins

SCM Sync Configuration

SCM Sync Configuration

预先要在全局配置中设置代码版本控制库的配置,每次创建或更新job配置时都会提示是否同步配置


参考文章
jenkins常用插件汇总
Jenkins插件大全

SVN仓库迁移(将一个仓库从一台机器上上转移到另一台机器上)

No.1 将准备要迁移的仓库导出 命令: svnadmin dump 仓库名 > svn_dump

No.2 在新的服务器上创建心的仓库 命令: svnadmin create SVNROOT

No.3 导入刚导出的文件svn_dump 命令: svnadmin load SVNROOT < svn_dump

// 注意,以上操作会导致所有的配置丢失,比如密码、权限控制等,只要将原有的conf文件覆盖新的就可以了

在整个操作的过程中要注意仓储路径问题,为避免出错,可以使用绝对路径来表示以上内容,仅以No.3 做实例解析

svnadmin load D:\SVNROOT < D:\svn_dump   解析:新的仓储SVNROOT就创建在D盘根目录下,而导出的文件也已将放在了本地的D盘根目录下

网上有提供一种直接将原仓库目录copy到另一台机器上,然后修改apache 的svn路径指向新的地址的做法,我也尝试过一次,发现有丢失信息,具体不详,所以不推荐

还有一个问题,我查看我的原始准备导出的仓库文件大小只有2.2G左右,而使用svnadmin 命令导出后的文件却有5G之多,中间的差别我也不甚了解,所以推荐使用svn的命令导入仓库

docker在dubbo项目中的配置

某些部署方案需要动态指定服务注册的地址。例如,docker bridge网络模式需要指定用于外部网络通信的注册主机IP。Dubbo在启动阶段提供两对系统属性,用于设置外部通信的IP和端口地址。

  • DUBBO_IP_TO_REGISTRY — 注册到注册中心的IP地址
  • DUBBO_PORT_TO_REGISTRY — 注册到注册中心的端口
  • DUBBO_IP_TO_BIND — 监听IP地址
  • DUBBO_PORT_TO_BIND — 监听端口
  1. 以上四种配置是可选的。如果没有配置,Dubbo将自动获得IP和端口。请根据部署方案灵活选择。
  2. Dubbo支持多协议。如果应用程序同时公开多个不同的协议服务,并且需要为每个服务单独指定IP或端口。请分别在上述属性之前添加协议前缀。例如:
  • HESSIAN_DUBBO_PORT_TO_BIND hessian 协议绑定端口
  • DUBBO_DUBBO_PORT_TO_BIND dubbo dubbo协议绑定端口
  • HESSIAN_DUBBO_IP_TO_REGISTRY hessian协议注册IP
  • DUBBO_DUBBO_IP_TO_REGISTRY dubbo协议注册IP
  1. PORT_TO_REGISTRY 或者 IP_TO_REGISTRY不会被用作默认 PORT_TO_BIND or IP_TO_BIND,但反之亦然。
  • 如果设置PORT_TO_REGISTRY=20881 IP_TO_REGISTRY=30.5.97.6,则 PORT_TO_BIND IP_TO_BIND不会受到影响。
  • 如果设置PORT_TO_BIND=20881 IP_TO_BIND=30.5.97.6,则 PORT_TO_REGISTRY=20881 IP_TO_REGISTRY=30.5.97.6 默认为。

dubbo-docker-sample 本地操作过程:

  1. 将项目克隆到本地
git clone git@github.com:dubbo/dubbo-docker-sample.git
cd dubbo-docker-sample
  1. 打包当地的maven
mvn clean install  
  1. 通过docker build构建一个镜像
docker build --no-cache -t dubbo-docker-sample . 

Dockerfile

FROM openjdk:8-jdk-alpine
ADD target/dubbo-docker-sample-0.0.1-SNAPSHOT.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -jar /app.jar
  1. 从镜像创建和运行容器
# 由于我们使用zk注册中心,首先我们启动zk容器
docker run --name zkserver --restart always -d zookeeper:3.4.9
docker run -e DUBBO_IP_TO_REGISTRY=30.5.97.6 -e DUBBO_PORT_TO_REGISTRY=20881 -p 30.5.97.6:20881:20880 --link zkserver:zkserver -it --rm dubbo-docker-sample

假设主机IP为30.5.97.6。
设置提供程序以通过环境变量注册注册中心的IP地址和端口 DUBBO_IP_TO_REGISTRY=30.5.97.6 DUBBO_PORT_TO_REGISTRY=20881
实现端口映射-p 30.5.97.6:20881:20880, 其中 20800 是dubbo自动选择的侦听端口。没有监控IP配置,因此它将监听0.0.0.0(所有IP)。
启动后,提供者的注册地址为 30.5.97.6:20881, 容器的监听地址为: 0.0.0.0:20880

  1. 测试
    另一个主机或容器执行
telnet 30.5.97.6 20881
ls
invoke com.alibaba.dubbo.test.docker.DemoService.hello("world")

稻盛和夫:成功拯救日航(经营困惑者必读)

一切问题,归根到底都是心的问题;万般答案,追根溯源都在人心之中。日航新生本质上是稻盛和夫“心灵赋能”所取得的成功!

因此,本文以稻盛和夫在日航重建新生过程中的“心灵赋能”为重点,阐述我们所理解的根和本。

1.内外因叠加,日航陷危局

日本航空发展简史,1951年成立,从一家小私有制企业起步,上个世纪80代到90年代随着日本经济的快速增长步入了快速发展期,成长为日本龙头和全球第三大航空公司,2002年新日航成立后数年便由盛走衰,2006起的五年中有四年亏损,金融危机后加速没落,2010年申请破产。到申请破产保护之日(2010年1月19日),日航负债高达165亿美元,净资产为负77亿美元,其股票总市值仅相当于137亿日元,只够买一架波音787飞机。惨淡之境可见一斑。

回溯日航的衰败,原因诸多。本文认为主要是以下四个方面:

(1)全球因素:全球金融危机、油价、突发性事故和疫情,对高度敏感的国际航空市场造成严重冲击。

(2)本国因素:日本持续低迷的经济环境导致本土航空市场需求严重不足。从上世纪90年代开始,日本经济趋于不景气,主要是由于80年代末的过度投资所造成的资产膨胀以及证券和房地产市场的“泡沫化”,最终在日元不断升值下,泡沫经济瓦解。

(3)竞争因素:日本高速铁路对其国内航空运输造成“挤出效应”。

(4)内部因素:体制僵化、经营不善、人心涣散直接导致日航走向破产。

虽然前三个因素直接导致日航客源锐减,但并非根本原因。同为日本航空龙头的全日空虽然同样面临巨大挑战,却始终以专业闻名,品质和服务不断提升,所以穿越历次全球危机和本国衰退而愈加强大,2007年还被Air Transport World评为年度航空公司。

所以,归根结底,日航的衰败还是由于体制和经营原因导致的人心涣散。破产前,日航的服务已经显得表面化、程序化,可以说是“虽然殷勤,但是无礼”。而且,管理层官僚化严重,缺乏足够的危机感,员工各自为战,缺乏商业竞争和经营意识,形不成合力。

2.越在艰难处,越是修心时

日航破产时,除了高企的负债,员工队伍也已经可以用“离心离德”来形容。就在这样内外交困的艰难背景下,时任日本首相的鸠山由纪夫亲自出山,登门邀请已经年近80岁高龄的稻盛和夫出任CEO。

2010年2月1日,稻盛正式就任日航会长时,说了这样一段话:“实现新的计划关键就在于一心一意、不屈不挠。因此,必须聚精会神,抱着高尚的思想和强烈的愿望,坚忍不拔干到底。”可见,稻盛从接手的那天起,就已经明确了日航破产的根本原因:日航人意识涣散,人心不统一。实际上,这段话也从根本上诠释了稻盛拯救日航的“心法”,后来被做成标语牌挂在日航各个办公场所,同时公司报纸上也在头版刊载。

为了彻底从内心深处唤起全体日航员工的热情,凝聚重建新生的力量,稻盛在接管后,奋不顾身,持续地做着以下八件大事:

(1)零薪担任董事长,并付出了不亚于任何人的努力。在许多的员工眼里,稻盛是他(她)们的爷爷或父亲一辈的人,一生与日航没有什么关系,为日航的重建冒极大个人名誉风险,还愿意不领一分钱,这对于全体员工都是很大的震撼和激励。

(2)宣布并践行赴任的三条“大义”。第一,为了保住留任的3.2万名日航员工的饭碗;第二,为了给低迷的日本经济的重振助上一臂之力;第三,为了保持航空业的竞争态势,让日本国民有选择航空公司的权利。

(3)揭示并反复宣贯日航的经营理念,或者叫企业目的,即“追求全体员工物质和精神两方面的幸福”。稻盛始终认为,“只要你爱员工,他们就会爱顾客。”

(4)领导编制《日航哲学手册》并全员推行。这是日航经营的指针,指明了日航今后应该以什么样的思维方式、什么样的哲学为基础来开展经营活动。

(5)组织每月一期干部学习会。每期用一个月的时间对各级主要领导人进行彻底的精神洗礼。讲领导人应有的资质,要求大家以“作为人,何谓正确”作为判断和行动的基准,要求干部成为受到部下信任和尊敬的人,并讲解“经营十二条”原理原则,彻底改革官僚体系。

(6)每个月开一次员工大会。早在出任日航董事长致辞时,稻盛就表示:“企业最重要的财产就是员工的心。如果每名员工都能发自内心地盼望重组、发自内心地配合,我坚信这个企业就能持续发展。”

(7)一线发动,率先垂范。接手日航后,年近八旬、身高一米八左右的稻盛和夫都是搭乘日航航班,都坐经济舱,表明与员工同甘共苦的决心。机舱里的乘务员在经济舱看到公司董事长,每每感动得热泪盈眶。

(8)利用盛和塾的巨大影响力帮助日航人重塑信心。稻盛一手创办的盛和塾成为日航重建最大的“外援团”。一方面,盛和塾当时已经汇聚6000余名塾生,分布在日本、美国、巴西、中国等世界的各个地方,很多塾生是骨干中小企业的明星经营者。另一方面,尽管日航的多数主管都并非盛和塾的塾生,但盛和塾的研讨会依然向他们开放,大家都很主动地去参加,常常拿一些公司经营状况的数据进行案例分析。这种彼此的交流也加深了他们的相互了解,也让塾生们更愿意乘坐日航的飞机。

稻盛进入日航后,还争取了日本政府巨额资金援助和各交易银行债务减免,并围绕“销售最大化、费用最小化”采取了很多措施,包括实施阿米巴经营及会计核算体系,落实经营措施中的极严格要求和绝对执行力,等等。但是最根本的是如上述“八件大事”所形成的“无形之力”。

因此,可以说,日航新生是从人心的觉醒和统一开始的,稻盛激发了每名员工发自内心深处的最纯粹的元力量。他的就任本身就让员工从黑暗中看到了曙光,而他动机至善、私心了无的持续努力则是挽狂澜于即倒、救千钧于一发的关键所在。

3.齐心协力干,败局获新生

稻盛的工作过程不仅“一气呵成”,而且立竿见影。

领导人层面,据说稻盛组织每月课堂,刚开始有些人还不乐意听,但后来所有人的精神都振作起来,连眼神都变了。各级经营者的责任意识开始建立,一同上课的人之间产生了强烈的一体感。渐渐地,稻盛的经营哲学慢慢由高层管理者向中层管理者乃至员工渗透。

员工层面,开始反思并致力于改进服务。(1)空姐们的播音越来越充满感情,提供各类服务越来越热情、细腻。(2)员工们在乘务长致欢迎词时站在前面鞠躬行礼,提高了送餐送水的效率,观察并满足乘客的需求,以表达歉疚和感激。(3)为了把准点率做到全世界第一的水平,他们充分做好起飞前的各项准备工作,以分甚至秒作计算时间的单位。如果被迫推迟起飞,日航也会不惜增加燃油,加速飞行以期准时降落。(4)维修人员也进一步感受到生命的重要和珍贵,从认为“工作就是检查、维修飞机“到认为“我们运送的是珍贵的生命”,安全意识更强了。(日航1985年发生过全球最大空难)这些努力不仅改变了乘客的评价,也改变了日航员工的心境,他们开始为自己和日航的进步而获得成就感,并不断以此激励自己和团队。

所以,虽然绝大部分员工的工资减少,奖金甚至没有了,但是在短短的2年多时间里,公司风气彻底发生了改变,员工发自内心地与公司同心同德同努力。变化大大超过预期,甚至让稻盛本人都深受感动。这种“精神气”,正是稻盛“心灵赋能”所产生的动人力量。

而日航因此迅速恢复生机,并且形成了可持续发展的高收益的企业体质,经营结果出乎所有人的意料,不仅日航内部,就连全世界都不能不刮目相看。

4.纯粹的心灵,赋能的力量

这个时代,我们见证了太多辉煌一时的巨型企业轰然倒下,却鲜有见到一个如此病入膏肓的企业如此快速的重新崛起。

稻盛和所有企业家的不同之处在于,他同时还是一位思想家和哲学家。他比一般企业家更能深刻地洞察人的心灵,坚信清澈纯粹的心灵最能够看见事物的真相,看透事务的本质。所以他带领日航从上到下、从里到外纯粹心灵,提升心性,通过持续拼命的努力,缔造了新生的奇迹。

如果从日航一路往前回溯稻盛的企业经营史,可以发现,心纯见真,“心里有基准,踏实往前行”,一直是稻盛所坚守、推崇、实践着的。从根本上讲,无论是京瓷的经营理念、京瓷哲学78条,乃至阿米巴经营模式等等,都是稻盛纯粹心灵的产物。这个纯粹心灵的过程也就是“心灵赋能”的过程。