Jenkins 安装部署及应用

Jenkins 安装部署

参考文章

  1. 官方文档

  2. Jenkins进阶系列之——11修改Jenkins用户的密码

1. 修改admin用户密码

有时忘记admin用户的密码, 或者在安装后Jenkins直接以admin权限执行并未创建新用户, 但重启Jenkins后会提示输入某用户的账号密码. 此时需要手动修改.

Jenkins并没有使用数据库, 其专有用户的数据存放在$JENKINS_HOME/users/用户名/config.xml文件中(若没有设置$JENKINS_HOME环境变量, 可以查看启动jenkins时的用户目录下是否存在.jenkins目录). 编辑它

<hudson.security.HudsonPrivateSecurityRealm_-Details>
    <passwordHash>#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS</passwordHash>
</hudson.security.HudsonPrivateSecurityRealm_-Details>

passwordHash字段设置为上述代码中的值, 注意前后不能有空格.

重启Jenkins, login界面输入admin,111111即可登陆.

2. Jenkins 关闭, 重启

访问对应的Jenkins地址, 根据提示操作即可. 需要登陆.

## 关闭
localhost:8080/exit
## 重启
localhost:8080/restart
## 重新加载...不太好使
localhost:8080/reload

## Jenkins应用(一) - Jenkins+Maven+GIT构建项目,及部署war包到远程tomcat

## 1. 环境准备

- 系统平台: Docker CentOS6镜像
- JDK: 1.8.0
- Tomcat: 8.5.4
- Jenkins版本: 2.7.1 war包版

首先配置JDK环境变量, 部署Jenkins到`tomcat/webapps`, 启动tomcat. **不建议使用root用启动**, 因为实验中root用户下运行的tomcat, jenkins响应特别慢, 下载插件也经常超时.

## 2. 基本设置

访问Jenkins主页, 可能需要一段时间准备.

Please wait while Jenkins is getting ready to work...

然后出现如下界面

![](https://gitee.com/generals-space/gitimg/raw/master/6a97f8404a44ce6160b2603324f05798.png)

首次访问Jenkins需要确认其已经正常启动(Jenkins在当前用户主目录创建了`.jenkins`目录). 从图中指定文件中取出这个值, 填写到输入框, 点击`continue`.

在一段等待之后, 会出现预装插件的选择界面. 这里有两个选项: 安装建议的插件, 选择要安装哪些插件. 为了能更清楚的认识Jenkins的工作流程, 这里选择第2项.

![](https://gitee.com/generals-space/gitimg/raw/master/8c4370b67cf1cf1303fd1994664e7d87.png)

然后在选择自定义插件的页面点击`none`, 然后`Install`...可能有点作死.

![](https://gitee.com/generals-space/gitimg/raw/master/56de6a5f8b0f4270f3eb51d871a0277e.png)

然后会出现创建用户的界面, 你需要为自己创建一个管理账户. 不建议点击`continue as admin`, 因为不知道admin的密码, 之后登陆的时候会出问题.

`Save and finish`->`Start using Jenkins`. 安装完成.

![](https://gitee.com/generals-space/gitimg/raw/master/1bde1fd97b40bfd272a31c0d481622b9.png)

## 3. 新建Job

Job, 即是一个流程, 指定从哪里或取源代码, 部署到哪一台目标机器. 以后每次开发人员发布新版本时, 执行一次这个流程, 就可以完成一次项目部署.

### 3.1 拉取源码

现在我们首先尝试使用Jenkins的Job从git系统上拉取下我们的工程代码.

点击Jenkins主页左侧`New Item(新建)`->`freestyle item(自由风格的软件项目)`, 在没有安装任何插件的时候, 选择新建Job只有这一种类型可以选择. 输入一个项目名称, 这里叫做`item1`, 点击OK确定.

然后进入Job的详细设置界面, 这里有`general`, `(源码管理)`, `(构建触发器)`, `(构建)`, 和`(构建后操作)`几项. 然而源码管理中选项只有一个`none`.

为此, 我们需要首先安装插件`SSH plugin`与`Git plugin`, 因为我们需要使用`ssh key`的方式对git服务器进行验证, 并且使用`git`命令从服务器pull源码. 所以我们还需要在Jenkins所在服务器上安装openssh与git.

回到Jenkins主页, 点击左侧`Manage Jenkins(系统管理)`->`Manage Plugins(管理插件)`, 目前在`Installed(已安装)`标签页中会看到这里是空的. 点击`Available(可选插件)`, 在右上角`filter`中可以输入过滤信息, 选择`SSH plugin`与`Git plugin`(后者依赖于前者), 点击下方`Install without restart(直接安装)`.

安装插件的时间可能有点长, 也有可能页面会无响应, 重启Jenkins可能没有用, 这时只能重启tomcat, 多试几次, 一些依赖插件(如LDAP)没有安装上没有关系的.

再次打开item1设置界面, 此时源码管理中将出现Git选项. 选择它之后需要在`Repository URL`字段指定git项目的地址, 最好将Jenkins(或者说Tomcat)的启动用户的SSH公钥拷贝到git服务器中, 并使用ssh类型的项目地址(一般会有https与ssh两种方式). 这种方式不需要再填写`Credentials`字段.

![](https://gitee.com/generals-space/gitimg/raw/master/a17fdc3a08a1e6f1bff37a1a2722f789.png)

> 注意此时系统中一定要已经安装sshd服务与git客户端.

保存设置, 回到项目主页, 在item1的项目主页左侧, 点击`(立即构建)`.

构建完成后, 在`~/.jenkins/workspace/item1`目录下面会出现项目的源码, 是Jenkins从git仓库下载下来的.

### 3.2 拉取后打包

Jenkins可以使用maven将源码打包(war形式)并部署到远程tomcat的webapp目录下, 条件是 **源码结构必需符合maven项目的结构标准** .

#### 3.2.1 安装maven

从官网下载maven包, 本示例中使用`apache-maven-3.3.9-bin.tar.gz`. 将其解压到`/usr/local`目录下, 并将`maven/bin/mvn`命令软件链接到`/usr/local/bin`目录或是将`maven/bin`目录加入环境变量中, 这里使用前者.

$ ln -s /usr/local/apache-maven-3.3.9/bin/mvn /usr/local/bin/mvn


随后在Jenkins中配置maven的路径.

Jenkins主页->`系统管理`->`Global Tool Configuration`

Maven安装->`新增Maven`, 将自动安装取消勾选. 设置MAVEN_HOME的值, 保存即可.            

![](https://gitee.com/generals-space/gitimg/raw/master/729756c6f951aa38ae647be1f6bf0781.png)

然后安装Jenkins的maven插件`Maven Integration plugin`.

再次新建一个Job, 这时项目类型里会多出一个`构建一个Maven项目`的选项, 这里取名为item2, 点击OK. 其余配置如源码管理按照上一节所述, 保存即可.

点击`立即构建`.

Jenkins从git仓库下载完源码后, 会自行调用系统的maven工具打包, 第一次使用maven会从中央仓库下载很多文件, 可以在项目主页左侧的`Build History(构建历史)`中找到当前的构建流程, 点击进入会, 左侧有`Console Output`选项, 其中是本次构建的控制台输出.

![](https://gitee.com/generals-space/gitimg/raw/master/02e95ac1c6aecb18466fcac56a68d44e.png)

此次构建完成后, maven会在`~/.jenkins/workspace/item2`下生成一个`target`目录, 其中存放着git源码的war包文件.

$ pwd
/home/jenkins/.jenkins/workspace/item2
$ ls
pom.xml src target
$ ls target/
maven-archiver web web.war


### 3.3 部署到远程tomcat

部署war到远程tomcat, 首先要配置远程tomcat的IP, 并且要有对方tomcat的管理权限; 还要为maven指定打完包后的部署操作.

首先, 获得目标tomcat的管理权限. 需要其webapp下存在manager项目, 这样可以通过网页端的形式部署工程. 而它的管理员帐号配置, 在`tomcat/conf/tomcat-users.xml`文件中.

```xml
<tomcat-users>
<user username="admin" password="111111" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
</tomcat-users>

可以尝试通过访问http://localhost:8080/manager, 用户名admin, 密码111111进行登录测试.

现在我们要求Jenkins在将源码打包后将war文件部署到目标tomcat. 为此我们需要安装Deploy to container Plugin插件.

安装完成后, 再次打开item2设置界面. 在页面底部Post Build(构建后操作)中增加构建完成后的操作步骤Deploy war/ear to a container, 点击Add Container添加目标tomcat.

首先指定上一步骤中生成的war包路径WAR/EAR files, 注意这里是以项目路径为根的相对路径, 取target/web.war.

Context path是通过何种路径访问目标工程, 比如http://127.0.0.1:8080/context路径

Containers是目标tomcat的地址, 包括管理员帐号和密码, 还有tomcat访问Url, 与上面tomcat管理帐户的配置相符即可.

其他地方如Pre Steps, Build保持默认配置即可.

回到项目主页, 点击构建, 构建完成后远程tomcat的webapp目标下会出现名为item2的目录, 证明部署成功.

$ ls
docs  examples  host-manager  item2  item2.war  manager  ROOT

注意

  1. SSH plugin插件需要系统中安装有sshd服务;
  2. git plugin连接git需要系统中安装git;
  3. 连接svn需要系统中安装subversion

这些需要在安装插件之前安装, docker

推荐插件列表

  • SSH Credentials Plugin:
  • Subversion Plug-in: 提供连接SVN源码管理服务器的功能.
  • Git plugin: Git源码管理
  • SSH plugin: 提供SSH连接目标主机的方式

注意: 安装插件不需要重启Jenkins, 即时生效.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker 是一种容器技术,可以快速部署应用程序并提供强大的隔离性。Jenkins 是一个流行的持续集成和持续交付工具。通过结合使用 Docker 和 Jenkins,可以轻松地实现持续集成和持续交付。以下是在 Docker 中安装部署 Jenkins 的步骤: 1. 安装 Docker 在安装 Jenkins 之前,你需要先安装 Docker。你可以在 Docker 官网上下载适合你系统的 Docker 版本,并按照说明进行安装。 2. 创建一个 Docker 容器 为了在 Docker 中运行 Jenkins,你需要创建一个 Docker 容器。你可以使用以下命令来创建容器: ``` docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts ``` 这个命令会从 Docker Hub 上下载最新版本的 Jenkins 镜像,并创建一个名为 jenkins 的 Docker 容器。这个容器会将 Jenkins 端口映射到主机的 8080 端口,并将 Jenkins 的 JNLP 端口映射到主机的 50000 端口。此外,它还会将 Jenkins 的主目录映射到名为 jenkins_home 的 Docker 卷中。 3. 访问 Jenkins 现在,你可以通过浏览器访问 Jenkins 控制台。在浏览器中输入 http://localhost:8080/,就可以访问 Jenkins 界面了。在第一次访问时,Jenkins 会要求你输入初始管理员密码。你可以使用以下命令来获取这个密码: ``` docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword ``` 4. 安装插件 在访问 Jenkins 后,你需要安装一些插件。可以根据需要选择安装的插件。安装插件的过程很简单,只需要在 Jenkins 控制台中选择“插件管理”菜单,然后选择要安装的插件即可。 5. 配置 Jenkins安装插件之后,你需要配置 Jenkins。你可以创建一个新的 Jenkins 作业并配置它的构建步骤,或者导入一个现有的 Jenkins 作业并执行它。在配置 Jenkins 时,请确保使用正确的 Docker 镜像和容器来运行你的应用程序。 6. 部署应用程序 现在,你可以使用 Jenkins部署你的应用程序了。你可以将你的应用程序打包成 Docker 镜像,并在 Jenkins 中创建一个构建步骤来构建和推送这个镜像。然后,你可以使用 Jenkins 的构建步骤来部署这个镜像到你的服务器或云平台上。 总结 通过结合使用 Docker 和 Jenkins,可以轻松地实现持续集成和持续交付。在 Docker 中安装部署 Jenkins 的过程很简单,只需要几个简单的步骤即可完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨烦信息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值