debug_cat 发表于 2021-2-23 21:50

【Jenkins】Jenkins启动与关闭

### 背景
[自动化部署vue项目](https://www.sunofbeach.net/a/1359477549431869440)
前一篇博客中通过Jenkins自动部署了vue项目,但是我们启动Jenkins方式是这样启动的
```shell
java -jar jenkins.war
```
#### 存在问题
当我们关闭了终端之后,Jenkins就关闭了。我们需要的是长时间运行在服务器中。

#### tomcat
我们启动tomcat,把war丢进去。只要tomcat不不关闭,服务就可以长时间运行了。

#### 下载tomcat

```java
https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gz
```


把tomcat放到服务器的某个位置。我的位置

/root/tools/下

```shell
tar -zxvf apache-tomcat-8.5.55.tar.gz
```

解压之后,把我们的jenkins.war放到

/root/tools/apache-tomcat-8.5.55/webapps中

然后配置环境变量

```shell
vi /etc/profile
#tomcat envirnoment
export CATALINA_HOME=/root/tools/apache-tomcat-8.5.55
export PATH=$PATH:$CATALINA_HOME/bin
export JENKINS_HOME=/root/.jenkins
```

JENKINS_HOME=/root/.jenkins为什么是这个位置呢?

我们之前通过java -jarjenkins.war启动了Jenkins之后,默认生成home目录就在这个位置。当然你可以自己改。

```shell
//应用环境变量
source /etc/profile
//启动tomcat
进入/root/tools/apache-tomcat-8.5.55/bin
sh startup.sh
//停止(如果资源有限,平时可以关闭tomcat,需要部署的时候再打开,打开Jenkins之后,占用服务器500mb内存)
sh shutdown.sh
```

#### 如何访问
我们通过java -jar启动,直接通过ip地址:端口访问
现在通过tomcat处理之后。
地址变成这样子
```java
ip:8080/jenkins
//如果有域名,可以这样
http://moonlightshadow.cn:8080/jenkins
```

以上~

后续计划:
>自动化部署spring boot项目(博客系统后端)
>自动化部署nuxtjs项目(门户)

debug_cat 发表于 2021-2-23 22:10

blawhickte 发表于 2021-2-23 22:05
用docker的方式运行更方便

我也尝试过用docker来运行。
我遇到一个问题:docker中运行job的时候,比如我的项目中有一个sh脚本。在job执行时候,执行sh。
里面的环境变量和主机的环境变量不一致。
我查找了很多资料也没有解决这问题。比如:我主机安装了node环境,执行sh的时候,npm not found。我打印环境变量,没有node的环境变量,但是我在主机切换到Jenkins工作目录下执行$path,或者执行我的sh。是正常的。这个让我很困惑。whoami也是root。您知道这是什么原因吗

debug_cat 发表于 2021-2-24 14:18

Titanic 发表于 2021-2-24 10:58
Jenkins是可以通过Web界面实现一切,如果你还是通过脚本、或者去输入命令的方式,那么你的Jenkins用法就错 ...

明白你的意思,不过,我不熟悉Jenkins,对docker也是刚刚开始用。很多东西还不知道怎么处理。
比如怎么使用流水线等等,还需要学习。
目前是自己写的项目,想做自动部署。
但是自动部署现在初步实现了。虽然不太优雅。后面工作空闲之后,会继续学习,感谢指导

blawhickte 发表于 2021-2-23 22:05

用docker的方式运行更方便

blawhickte 发表于 2021-2-23 22:21

莫问刀 发表于 2021-2-23 22:10
我也尝试过用docker来运行。
我遇到一个问题:docker中运行job的时候,比如我的项目中有一个sh脚本。在j ...

宿主机的环境变量是和容器内的环境变量不通用的, 你可以在Jenkins的web界面通过插件进行安装所需的nodeJS环境:系统管理->插件管理->选择可选插件->在上方输入框输入nodejs搜索然后进行安装

debug_cat 发表于 2021-2-23 22:47

blawhickte 发表于 2021-2-23 22:21
宿主机的环境变量是和容器内的环境变量不通用的, 你可以在Jenkins的web界面通过插件进行安装所需的nodeJ ...

安装好了之后需要配置环境变量吗,在安装中有点慢

蟹蟹 发表于 2021-2-24 09:07

docker exec -it容器名 bash或者sh
进入容器内部来安装配置

午夜逃跑计划 发表于 2021-2-24 10:44

自己打一个docker镜像

Titanic 发表于 2021-2-24 10:58

Jenkins是可以通过Web界面实现一切,如果你还是通过脚本、或者去输入命令的方式,那么你的Jenkins用法就错误了,Jenkins + 插件,配置好后,就已经为你实现了多数人的需求。

debug_cat 发表于 2021-2-24 14:16

蟹蟹 发表于 2021-2-24 09:07
docker exec -it容器名 bash或者sh
进入容器内部来安装配置

感谢提醒,有时间尝试下这个,也就是进入容器中,安装我需要的环境,这样Jenkins使用对应环境的命令就可以用了是吧。我也是第一次用Jenkins,不知道怎么处理比较合适。所以选择执行项目中自己写的sh来编译项目。
页: [1] 2
查看完整版本: 【Jenkins】Jenkins启动与关闭