Devops 改变coding —— 安装个指定版本的 jenkins 发现和想象的不太一样?

你好呀,我是小猿来也,一个刚开始折腾 Devops 的程序猿。
写在前面
前两天在池大那里看到了一段话,原话出自美团首席科学家夏华夏老师,具体内容我贴到了下面。

对于图片里的内容你们是怎么认为的呢?我呢,刚好最近在和同事一起折腾 jenkins,我觉得这里说的就是一个类 "Devops" 的化处理思想,Devops改变世界。
用 jenkins折腾 各种 Devops 的使用场景,还挺好玩的。
这两天想着在自己的电脑上也装一个 jenkins 的环境。
查了下生产环境的 jenkins 版本是2.263.4。为了尽量和生产环境的 jenkins 保持一致,强迫症的我决定在自己的笔记本上也装这个版本。
一、安装前的挣扎
因为手里的笔记本是 macOS,所以就先去 jenkins 官网上翻了翻。
然后通过 https://www.jenkins.io/zh/download/
进入到 https://www.jenkins.io/download/lts/macos/ 这个页面。

这个页面给出的指示表明我们可以使用brew install jenkins-lts@YOUR_VERSION来安装我想要的2.263.4这个版本。
怀着很期待的心情,我决定试一试。
$ brew install jenkins-lts@2.263.4
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
Error: No available formula or cask with the name "jenkins-lts@2.263.4".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching taps on GitHub...
Error: No formulae found in taps.
然并卵,结果我发现 Homebrew 找不到这个版本,是我打开的方式不对吗?有点尴尬哈。
在 https://www.jenkins.io/download/lts/macos/ 这个页面继续往下看,
结果在下图中红框的位置发现了 macOS 原生安装包的下载入口 https://get.jenkins.io/osx-stable/ 。

于是进入 https://get.jenkins.io/osx-stable/ 的页面

翻了一遍发现这里提供的最低版本是jenkins-1.409.1.pkg,最高版本是jenkins-2.235.2.pkg,没有我需要的2.263.4这个版本,再次尴尬。
于是我再次回到 https://www.jenkins.io/download/lts/macos/ 这个页面,这个页面里有一行文字引起了我的注意。
Native Installer (deprecated)
然后我这才意识到官方好像应该是不再支持用新的 pkg 原生包安装 jenkins 了。
同样在官方博客的网页
Jenkins macOS native installer deprecation:https://www.jenkins.io/blog/2019/11/25/macos-native-installer-deprecation/ 中,
的确有弃用 jenkins macOS 本机安装程序的说明。
网页中有一段说明我截了图,大致是的意思是说作为对弃用 jenkins macOS 本机安装程序的替代,mocOS 下你可以直接使用 War 包或者使用 Homebrew 来安装管理 jenkins。

There are two Homebrew formulas for Jenkins: jenkins for Weekly releases and jenkins-lts for LTS ones.
官方博客中指出可以使用brew install jenkins安装 jenkins 的最新每周版本。
使用brew install jenkins-lts安装 jenkins 的最新LTS版本。
同样指出可以使用brew install jenkins@YOUR_VERSION安装 jenkins 特定的每周版本。
所以现在根据官方博客的说法
我们可以使用brew install jenkins-lts安装 jenkins 的最新LTS版本。
可以使用brew install jenkins-lts@YOUR_VERSION安装 jenkins 的特定的LTS版本。
可以使用brew install jenkins安装 jenkins 的最新每周版本。
可以使用brew install jenkins@YOUR_VERSION安装 jenkins 的特定的每周版本。
文章开头的时候我们已经尝试了用brew install jenkins-lts@2.263.4来进行安装,结果根本不好使。
现在我打算尝试下用brew install jenkins@2.263.4来进行安装。
$ brew install jenkins@2.263.4
Updating Homebrew...
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
Error: No available formula or cask with the name "jenkins@2.263.4".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching taps on GitHub...
Error: No formulae found in taps.
同样也无法正常进行安装。
好吧本来想偷个懒,结果。。。
我们就乖乖的使用 war 包的方式进行安装吧。
war 包下载 的入口在官网的下载网页中,就是下图中我圈出来的位置。

进入之后发现从1.409.1到2.289.1之间所有的lts版在这里都可以下载,当然也包含我想要的2.263.4版本。

这个时候我们可以选择指定的版本对应的链接,进入对应的页面去直接下载,当然我这里选择的是 2.263.4。

我们也可以选择使用下面的命令来下载。
wget https://get.jenkins.io/war-stable/2.263.4/jenkins.war
二、安装jenkins
程序账号创建
# 创建组
sudo dscl . create /Groups/jenkins gid 5555
# 创建用户
sudo dscl . create /Users/jenkins uid 7777
sudo dscl . create /Users/jenkins gid 5555
sudo dscl . create /Users/jenkins shell /bin/bash
# 修改用户的密码
sudo passwd jenkins
# 创建用户的home目录
sudo mkdir /Users/jenkins
# 用户的home目录宿主
sudo chown -R jenkins:jenkins /Users/jenkins
# 声明用户的home目录
sudo dscl . create /Users/jenkins home /Users/jenkins
macOS可以使用dscl 管理用户,了解更多你可以点击查看。
准备jenkins的运行目录
# 切换当前用户为 jenkins
$ su - jenkins
jenkins$ whoami
jenkins
# 准备程序安装包目录
jenkins$ pwd
/Users/jenkins
jenkins$ mkdir soft
jenkins$ ls
soft
jenkins$ cd soft/
jenkins$ wget https://get.jenkins.io/war-stable/2.263.4/jenkins.war
jenkins$ ls
jenkins.war
# 准备程序运行目录
jenkins$ cd /Users/jenkins/
jenkins$ mkdir 2.263.4
jenkins$ ls
2.263.4 soft
启动jenkins
jenkins$ java -jar -Xmx4096m -DJENKINS_HOME=/Users/jenkins/2.263.4 /Users/jenkins/soft/jenkins.war --httpPort=9999
Running from: /Users/jenkins/soft/jenkins.war
webroot: System.getProperty("JENKINS_HOME")
.
.
.
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
ecc86b654f3a4e0bbeb4e2df962839a0
This may also be found at: /Users/jenkins/2.263.4/secrets/initialAdminPassword
.
.
.
启动的过程中我们可以看到 jenkins 管理员用户的初始化密码会写在的
${JENKINS_HOME}/secrets/initialAdminPassword中,
我的这个实验是在/Users/jenkins/2.263.4/secrets/initialAdminPassword这个文件中,你在实验过程可能会稍有不同。
三、初识jenkins
入门指引
jenkins 启动完成之后,我们访问 http://localhost{port}/ (我这里的端口是9999)即可进入jenkins的页面。
首次访问即可看到 jenkins 的入门指引,接下来你会依次看到下面的界面。




这个时候我们可以选择使用admin账户继续(jenkins 安装时自动创建 admin 用户)也可以选择创建新的 admin 用户,这里我们选择使用已有的 admin 账户继续。

你已跳过创建admin用户的步骤。要登录请使用用户名 "admin" 及用于访问安装向导的管理员密码。
点击开始使用 jenkins

首页的中间部分主要提供了一些 jenkins 新手可能会用到的链接,第一个便是任务创建链接。

然后是 agent 设置链接

接着是集群配置的链接

最后是分布式构建的相关文档的链接。
https://www.jenkins.io/redirect/distributed-builds
https://wiki.jenkins.io/display/JENKINS/Distributed+builds
主要菜单
首页的左边是常用的功能菜单的链接。依次分别是"新建Item","用户列表","构建历史","Manage Jenkins","My Views"等。
我们先看下"Manage Jenkins"吧,点击进入。

部分插件由于缺少依赖无法加载。要恢复这些插件提供的功能,需要修复这些问题并重启 Jenkins。
按照页面的提示我们需要重启一下就 jenkins 这样才能使插件生效,然后我们在浏览器里输入http://localhost:9999/restart。

点击"是"之后会在"重启中"页面的页面停留片刻

等到 jenkins 重启完成之后,页面会自动跳转到登陆页面。

在登陆页面中输入 admin 以及它的密码(jenkins 安装时自动创建的用户,密码信息启动日志中有)再次进入 jenkins 的首页,
发现页面的菜单显示跟重启之前有一些差别,应该是重启之后本地化插件生效了,菜单以中文的形式显示。

再次进入到"系统管理"菜单中,我们同样发现页面中菜单以中文的形式展示出来了,同时重启之前的那一片红色的提示已经消失。

Job Demo
准备好了 jenkins,我们赶紧来跑个 job 试下吧。例子很简单就是用 jenkins job 打印出 "jenkins hello world"。
创建job。

配置job。


执行job。

job执行记录列表。

job执行日志。

Job正常执行并打印出“jenkins hello world”。
管理密码修改(重要)
最后由于我们一直使用的是 jenkins 安装时自动设定的密码,这个密码在上面的安装日志中有输出。
同时在${JENKINS_HOME}/secrets/initialAdminPassword这个文件中也有保存。
所以会存在一定的安全隐患,为了避免不必要的麻烦,所以这里我们需要把 admin 的密码修改一下了。
它的操作步骤是在"系统管理"里找到"管理用户"

点击"管理用户"的链接进入"用户列表",在给出的所有用户列表中找出 admin 用户,点击它的设置按钮。

进入 admin 用户的信息更新页面,下拉到密码设置的区域,录入新的密码信息提交即可。

重新访问http://localhost:9999/在跳转的登陆页面中录入 admin 用户的新密码可以正常登陆就说明 admin 用户的密码更新成功了。
最后的最后,不知道是不是我的打开方式不对,居然无法使用 Homebrew 安装指定版本的 jenkins,你是如何安装的呢?
Devops 改变coding —— 安装个指定版本的 jenkins 发现和想象的不太一样?的更多相关文章
- Linux下yum安装MySQL yum安装MySQL指定版本
yum安装MySQL 1. 查看有没有安装过 yum list installed MySQL* (有存在要卸载yum remove MySQL*) rpm -qa | grep my ...
- composer安装laravel指定版本
版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/qq_38125058/article/details/79126051 首先安装composer,附安 ...
- vue安装插件指定版本
安装插件指定版本 npm install 插件名称@2.9.6 --save 查看需要安装插件的版本记录 npm view 插件名称 versions --json
- Centos8 Yum 安装Nginx指定版本
查看系统和EPEL的nginx版本 dnf info nginx 通过官方 yum 源安装nginx vi /etc/yum.repos.d/nginx.repo 列出所有版本 ...
- debian、ubuntu安装mysql指定版本
因为在使用docker时,Debian中的mysql已变为mariadb,然后总是会出现一些错误,所以故想在debian上安装mysql5.7版本 1.访问https://dev.mysql.com/ ...
- Centos 7 安装nginx指定版本
官方版本列表:http://nginx.org/download/ 1.安装 wget http://nginx.org/download/nginx-1.10.3.tar.gz tar -zxvf ...
- Centos7Yum安装配置指定版本nginx
1.安装 rpm -ivh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm 2.启 ...
- Linux 安装 python 指定版本--编译源码方式
自动化脚本: #!/bin/bash sudo apt-get update sudo apt-get install -y gcc make build-essential libssl-dev z ...
- 阿里云安装docker 指定版本
sh docker-install.sh 1.12.6 #ubuntu16.4 测试通过 #!/bin/sh set -e # # This script is meant for quick &am ...
随机推荐
- 结对项目:求交点pro
[2020 BUAA 软件工程]结对项目作业 项目 内容 课程:北航2020春软件工程 博客园班级博客 作业:阅读并撰写博客回答问题 结对项目作业 我在这个课程的目标是 积累两人结对编程过程中的经验 ...
- [JavaScript之BOM与DOM]
[JavaScript之BOM与DOM] BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM ( ...
- 一、python入门练习题
题目: 练习1:华氏温度转摄氏温度. 练习2:输入圆的半径计算计算周长和面积. 练习3:输入年份判断是不是闰年. 答案: 练习1: """ 将华氏温度转换为摄氏温度 F ...
- g77介绍 g77 是 Fortran77 的编译器。它对 Fortran 77 标准提供完备的支持,并支持 Fortran 90 和 95 的部分特性。 由于 Fortran 77 标准在数值计算中的影响力,g77 可能是应用最广的Fortran编译器。 在 GCC 4.0 之前,g77 是 GCC 的一部分,但现在,g77 已经停止开发。
GFORTRAN 维基百科,自由的百科全书 跳到导航 跳到搜索 此条目需要扩充. (2018年11月2日)请协助改善这篇条目,更进一步的信息可能会在讨论页或扩充请求中找到.请在扩充条目后将此模 ...
- STM32 串口接收大量数据导致死机
http://blog.csdn.net/origin333/article/details/49992383 以下文章出自上面的链接.感谢原创作者的分享. 在一项目中,使用STM32作为主控,程序运 ...
- openresty 学习笔记小结:综合应用实例
openresty 学习笔记小结:综合应用实例 这个综合实验实现的功能其实很简单,用户访问一个页面,显示一个默认页面.输入参数(post或者get都可以),如果参数在数据库查询得到并满足一定条件,根据 ...
- GO文件读写02---写文件
缓冲式写入文件 func main034() { //创建并写入 //file, err := os.OpenFile("测试文件", os.O_CREATE|os.O_WRONL ...
- SLAM相机定位
SLAM相机定位 摘要 深度学习在相机定位方面取得了很好的结果,但是当前的单幅图像定位技术通常会缺乏鲁棒性,从而导致较大的离群值.在某种程度上,这已通过序列的(多图像)或几何约束方法解决,这些方法可以 ...
- nvGRAPH原理概述
nvGRAPH原理概述 nvGRAPH的API参考分析. 简介 数据分析是高性能计算的不断增长的应用.许多高级数据分析问题可以称为图形问题.反过来,当今许多常见的图形问题也可以称为稀疏线性代数.这是N ...
- 车联网V-2X智能汽车驾驶
车联网V-2X智能汽车驾驶 早期的功能互联汽车无法满足全球车主针对不同应用和定制移动服务的各种需求.这导致较低的客户续订率,较高的建造和运营成本以及较低的组装率.通常,在没有统一平台的情况下,不同的车 ...
