redhat安装教程
*
**
一、设置网络连接
**


选择有线设置
选择要连接的网络后,点击右下角设置-IPV4后,设置网络连接。
**
二、Centos的yum源替换原yum源
**
RHEL是收费的,需要注册才可正常使用。解决办法是用CentOS的yum源替换掉原yum源,CentOS已经被红帽收购,且跟RHEL系统没多大区别,可以免费使用。所以将RHEL的YUM源替换为CentOS即可。
1、查看Redhat的原yum源
rpm -qa | grep yum

2、进行卸载
3、查看自身redhat版本
cat /etc/redhat-release

4、确保http://mirrors.163.com/centos/可以访问,找到自己所需版本进行下载,下载centos7的相关软件包
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-chardet-2.2.1-3.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-kitchen-1.1.1-5.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm


如图所示,则下载成功。
5、安装软件包
rpm -ivh python-*
rpm -ivh yum-*

使用rpm命令升级软件包时,有时候可能会与原来的安装的软件版本冲突。添加参数替换掉已有文件
rpm -Uvh --replacefiles *.rpm
6、新建repo配置文件,如果是其他Redhat版本,将7改为对应的版本数字
vim /etc/yum.repos.d/CenOS-Base.repo

文件内容为:
#CentOS-Base.repo
[base]
name=CentOS-$7 - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$7 - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$7 - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$7 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

7、清除缓存
yum clean all

8、将服务器软件包信息缓存至本地,提高搜索安装效率
yum makecache

9、使用yum安装软件包测试
yum -y install vim

**
三、配置java环境
**
1、下载jdk文件
登录oracle官网下载1.8版本jdk
2、删除自带的java环境
yum remove java

2、新建/usr/java文件夹
将jdk-8u351-linux-x64.tar.gz放到该文件夹中。(我用指令从下载文件夹复制到/usr/java了)
3、将工作目录切换到/usr/java目录下,解压jdk压缩文件
完成后如下图:
4、配置环境变量
使用vi /etc/profile编辑profile文件,在文件末尾处增加环境变量信息:
JAVA_HOME=/usr/java/jdk1.8.0_351
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
(注意自己安装的jdk版本,修改JAVA_HOME)
如下图:
5、使用source /etc/profile让profile文件立即生效,验证jdk是否安装成功
6、使用echo $JAVA_HOME等命令可以查看环境变量
**
四、mysql安装
**
1、redhat默认安装mariaDB,这个是MySQL的分支,先看看有没有mariaDB。
yum list installed | grep mariadb

如果有,先卸载。
yum remove -y mariadb-libs

卸载完成后,再次查看。
2、下载安装包:http://repo.mysql.com/
我下载的是mysql57-community-release-el7-10.noarch.rpm版本
wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

3、安装yum包
yum -y install mysql57-community-release-el7-10.noarch.rpm

4、检验是否启动5.7成功
yum repolist enabled | grep mysql

5、安装 mysql服务器
yum -y install mysql-community-server
我的在安装过程中出现如下报错:
执行如下指令,再次安装成功了。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql-community-server

6、启动mysql服务
systemctl start mysqld.service

7、查看root初始登录密码
grep "password" /var/log/mysqld.log
结尾处为初始密码
8、进入数据库修改密码
mysql -u root -p
在密码处输入初始密码,如我的:JWtOv7yfm&Gj。
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
我在修改密码时出现如下报错:
可通过以下命令设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW,并将密码长度设置为你想要的长度,我设置为了4:
set global validate_password_policy=LOW;
set global validate_password_length=4;
再次修改密码成功!
9、开启MySQL远程访问
grant all privileges on *.* to 'root'@'192.168.1.72' identified by 'password' with grant option;

10、刷新MySQL的系统权限并退出
flush privileges;
exit

11、为firewalld添加开放端口
添加mysql端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

12、修改mysql语言
在/etc/my.cnf文件下修改以下内容
vim /etc/my.cnf
新增四行代码
[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
如下图中的前两行和最后两行:
13、对数据库进行重启
service mysqld restart
14、测试数据库的远程访问时报错:错误号码1130 host’***’ is not allowed to connect to this mysql server。
登录mysql,修改user表,并刷新权限。
use mysql;
update user set host='%' where host='localhost' and user='root';
flush privileges;

此时,远程访问数据库成功!
**
五、nacos安装
**
(1)配置java环境
由于java环境已配置,此处省略。
(2)准备maven环境
1、官网
我选择的是第一个apache-maven-3.8.6-bin.tar.gz
2、将文件复制到/usr/local中并解压

3、配置maven仓库
首先进入maven安装目录下,新建repository目录,作为存储仓库目录。
cd /usr/local/apache-maven-3.8.6
mkdir repository

进入maven安装目录中的conf目录,修改仓库配置文件settings.xml。
cd conf
vim settings.xml
找到localRepository下面复制一行加上
<localRepository>/usr/local/apache-maven-3.8.6/repository</localRepository>

再找到mirror 加上阿里的仓库配置
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

4、配置路径
打开文件:vi /etc/profile
在文件末尾添加以下配置
export MAVEN_HOME=/usr/local/apache-maven-3.8.6
export PATH=$MAVEN_HOME/bin:$PATH
(注意:MAVEN_HOME后的路径为maven解压文件的位置)
4、刷新,并查看是否安装成功
source /etc/profile
mvn -v

(3)安装nacos
1、官网下载文件:https://github.com/alibaba/nacos/releases
我选择的是2.0.4版本,选择第一个nacos-server-2.0.4.tar.gz下载即可。
2、将文件复制到/usr/local路径下,进入/usr/local路径下解压文件(放到其他位置也可以)
cp /home/admin/nacos-server-2.0.4.tar.gz /usr/local
cd /usr/local
tar -zxvf nacos-server-2.0.4.tar.gz

3、修改配置
首先在bin目录下修改startup.sh文件
cd nacos/bin
vim startup.sh

将第一条JAVA_HOME修改为自己安装的jdk路径,如果不确定可以执行whereis java来查看。
文件内容修改如下:
之后进入conf目录,修改application.properties 文件
cd /usr/local/nacos/conf
vim application.properties
将注释放开,并按自己的数据库进行配置,文件内容修改如下:
新建名为nacos的数据库(数据库名与上图配置一致),将nacos中的sql脚本导入数据库中,我的路径为/usr/local/nacos/conf/nacos-mysql.sql
mysql -u root -p
create database nacos;
use nacos;
source /usr/local/nacos/conf/nacos-mysql.sql;
exit

4、进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf
mv cluster.conf.example cluster.conf
vim cluster.conf
先将该文件中之前的几个ip端口注释,再添加要配置的几台设备nacos对应的ip和端口。
4、启动nacos
进入bin目录,启动nacos
cd /usr/local/nacos/bin
sh startup.sh -m standalone
standalone代表着单机模式运行,非集群模式,这里以集群模式启动,图上是之前的单机启动。
打开网页,格式为http://ip地址:端口/nacos/,账号密码默认为:nacos nacos
如果要关闭nacos,指令为:
cd /usr/local/nacos/bin
sh shutdown.sh

5、开启防火墙端口,设置远程访问
sudo firewall-cmd --zone=public --add-port=8848/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9848/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8849/tcp --permanent
#重启防火墙
firewall-cmd --reload


6、设置nacos开机自启动
编写nacos启动文件
vim /lib/systemd/system/nacos.service
新增内容如下:
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
其中/usr/local/nacos/bin 需要修改为个人nacos的实际安装路径。
#重载所有服务
systemctl daemon-reload
#设置开机自启动
systemctl enable nacos.service

**
六、RabbitMQ安装
**
1、安装依赖包
RabbitMQ是采用 Erlang语言开发的,所以系统环境必须提供 Erlang环境,需要安装 Erlang。在 http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的版本。
我选择的rabbitmq为3.9.11版本,所以erlang需要选择23.2-24.2版本的。
erlang下载地址:https://github.com/rabbitmq/erlang-rpm/releases
我选择的是23.3.4.8版本,注意:其中的el7表示Red Hat 7.x,即CentOS 7.x,如果红帽系统为8.x版本,需要选el8。我选择第一项进行下载。
rabbitmq下载地址:https://github.com/rabbitmq/rabbitmq-server/releases
我选择第一项3.9.11版本进行下载。
2、在usr文件夹下新建rabbitmq文件夹放入刚才下载的安装包
cd /usr
mkdir rabbitmq
cp /home/admin/rabbitmq-server-3.9.11-1.el7.noarch.rpm /usr/rabbitmq
cp /home/admin/erlang-23.3.4.8-1.el7.x86_64.rpm /usr/rabbitmq
可以在该目录下看到两个安装包
3、安装erlang
切换到/usr/rabbitmq目录,解压安装erlang并查看版本号
cd rabbitmq
rpm -Uvh erlang-23.3.4.8-1.el7.x86_64.rpm
yum install -y erlang
erl -v


4、安装rabbitmq
RabbitMQ安装过程中需要依赖socat插件,首先安装该插件
yum install -y socat
解压安装RabbitMQ的安装包
rpm -Uvh rabbitmq-server-3.9.11-1.el7.noarch.rpm
yum install -y rabbitmq-server

5、启动RabbitMQ服务
# 启动rabbitmq
systemctl start rabbitmq-server
# 查看rabbitmq状态
systemctl status rabbitmq-server

其他命令
# 设置rabbitmq服务开机自启动
systemctl enable rabbitmq-server
# 关闭rabbitmq服务
systemctl stop rabbitmq-server
# 重启rabbitmq服务
systemctl restart rabbitmq-server
6、安装启动RabbitMQWeb管理界面
默认情况下,rabbitmq没有安装web端的客户端软件,需要安装才可以生效
# 打开RabbitMQWeb管理界面插件
rabbitmq-plugins enable rabbitmq_management

RabbitMQ 服务启动后,还不能进行外部通信,需要将端口添加防火墙
#添加端口
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
#重启防火墙
firewall-cmd --reload

打开浏览器,访问http://ip地址:15672,默认用户及密码:guest guest
7、添加远程用户
rabbitmq有一个默认的账号密码guest,但该情况仅限于本机localhost进行访问,所以需要添加一个远程登录的用户。
# 添加用户
rabbitmqctl add_user 用户名 密码
# 设置用户角色,分配操作权限
rabbitmqctl set_user_tags 用户名 角色
# 为用户添加资源权限(授予所有权限)
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"


创建完成后,即可远程访问ip地址:15672进行登录
其他指令:
# 修改密码
rabbitmqctl change_ password 用户名 新密码
# 删除用户
rabbitmqctl delete_user 用户名
# 查看用户清单
rabbitmqctl list_users
**
七、redis安装
**
1、官网下载: http://download.redis.io/releases
我下载的是7.0.0版本的
2、将文件拷贝到/usr/local文件夹下并解压
cp /home/admin/redis-7.0.0.tar.gz /usr/local
cd /usr/local
tar -zxvf redis-7.0.0.tar.gz

3、进入解压后的目录进行编译
cd /usr/local/redis-7.0.0
make

4、进入src目录,测试是否安装成功
cd src
make test

提示安装tcl
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/tcl-8.5.13-8.el7.x86_64.rpm
rpm -ivh tcl-8.5.13-8.el7.x86_64.rpm
再次执行make test
cd /usr/local/redis-7.0.0/src
make test
4、安装到指定目录,如 /usr/local/redis
make install PREFIX=/usr/local/redis

5、拷贝配置文件redis.conf到安装目录下
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc

6、配置redis为后台启动(redis为前台启动时,如果窗口关闭的话,Redis服务器就关闭了。不适合实际开发应用。)
将/usr/local/redis/etc/redis.conf 文件中的daemonize no 修改成daemonize yes。
cd /usr/local/redis/etc
vim redis.conf

7、将redis加入到开机启动
vi /etc/rc.local
在里边添加如下内容(意思就是开机调用这段开启redis的命令):
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

8、开启redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
9、将redis-cli,redis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用
cp /usr/local/redis/bin/redis-server /usr/local/bin/
cp /usr/local/redis/bin/redis-cli /usr/local/bin/
10、让外网能够访问redis
配置防火墙
#开放6379端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#重启防火墙以使配置即时生效
systemctl restart firewalld
此时虽然防火墙开放了6379端口,但是外网还是无法访问的,因为redis监听的是127.0.0.1:6379,并不监听外网的请求。
把/usr/local/redis/etc/redis.conf配置文件里的bind 127.0.0.1前面加#注释掉,或者在后面加上要远程访问的ip。
同时在1036行设置密码,requirepass 123456
vim /usr/local/redis/etc/redis.conf

redis-cli连接到redis后,通过config get protected-mode 是不是为no,如果不是,就用config set 配置名属性改为no。
cd ../
cd bin
redis-cli
config get protected-mode
config set protected-mode no
exit

11、使用redis-cli客户端检测连接是否正常
redis-cli
keys *
set key "hello world"
get key
exit

12、常用命令
#启动redis
redis-server /usr/local/redis/etc/redis.conf
#停止redis
pkill redis
#卸载redis
rm -rf /usr/local/redis //删除安装目录
rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本
rm -rf /root/download/redis-7.0.0 //删除redis解压文件夹
#使用客户端停止redis
redis-cli shutdown
**
八、docker安装
**
1、查看内核版本(需大于3.10)
uname -a

2、安装基础工具
yum install -y yum-utils device-mapper-persistent-data lvm2
3、为yum源添加docker仓库位置
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
修改 docker-ce.repo 配置文件中的 baseurl 链接地址
sed -i 's/centos\/$releasever/centos\/7/g' /etc/yum.repos.d/docker-ce.repo
将每个baseurl中的$releasever替换为7(如果是8.*版本替换为8)
清除并重新生成缓存
yum clean all
yum makecache
4、安装docker
yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
注意:如果系统为8.*版本,指令为yum -y install docker-ce --allowerasing
不然会报错,是因为centos8中的默认podman和docker冲突不能共存,要先卸载podman才能安装docker,7的版本就不存在这个问题。
5、启动docker并设置为开机自启
systemctl enable docker

6、查看docker版本 yum默认安装是最新版本
docker --version

7、配置阿里镜像加速器
vim /etc/docker/daemon.json
增加如下内容
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}

刷新配置,重启
systemctl daemon-reload
systemctl restart docker
**
九、docker-compose安装
**
1、下载安装包
curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2、添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose

3、测试安装结果
docker-compose --version

**
十、nginx安装
**
1、官网下载:https://nginx.org/en/download.html
2、复制到/usr/local目录下并解压
cp /home/admin/nginx-1.22.1.tar.gz /usr/local
cd /usr/local
tar -zxvf nginx-1.22.1.tar.gz


3、安装依赖
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y gcc gcc-c++
yum install -y openssl openssl-devel




4、配置并编译
cd nginx-1.22.1
./configure --prefix=/usr/local/nginx
make
make install



5、进入nginx目录下修改配置文件
vim /usr/local/nginx/conf/nginx.conf
修改监听为8089,server_name改为本机ip地址
6、启动nginx
cd /usr/local/nginx/sbin
./nginx

访问地址:ip:8089
7、nginx设置开机自启动
编写nacos启动文件
vim /lib/systemd/system/nginx.service
新增内容如下:
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
其中/usr/local/nginx/sbin 需要修改为个人nginx的实际安装路径。
#重载所有服务
systemctl daemon-reload
#设置开机自启动
systemctl enable nginx.service


**
十一、nodejs安装及vue环境搭建
**
1、官网下载:http://nodejs.cn/download/
下载64位版本
2、复制到/usr/local文件夹并解压
cp /home/admin/node-v16.18.0-linux-x64.tar.xz /usr/local
cd /usr/local
tar xvf node-v16.18.0-linux-x64.tar.xz



3、配置
vi /etc/profile.d/node.sh
内容如下:
export NODE_HOME=/usr/local/node-v16.18.0-linux-x64
export PATH=${NODE_HOME}/bin:$PATH

执行配置文件并测试是否成功
chmod +x /etc/profile.d/node.sh
source /etc/profile.d/node.sh
node -v

4、安装cnpm
因为npm访问外网很慢,所以需要使用淘宝的镜像。
npm install -g cnpm --registry=https://registry.npm.taobao.org

建立软链接并测试
ln -s /usr/local/node-v16.18.0-linux-x64/bin/code /usr/bin/node
ln -s /usr/local/node-v16.18.0-linux-x64/bin/npm /usr/bin/npm
ln -s /usr/local/node-v16.18.0-linux-x64/bin/cnpm /usr/local/bin/cnpm
node -v
npm -v
cnpm -v

有时使用cnpm初始化vue项目时会报错,所以还是使用npm,把源换下
npm config set registry https://registry.npm.taobao.org

5、全局安装vue-cli3脚手架
npm install -g @vue/cli

建立软连接并测试
ln -s /usr/local/node-v16.18.0-linux-x64/bin/vue /usr/local/bin/vue
vue -V

**
十二、subversion安装
1、yum安装
yum -y install subversion
查看svn安装目录
rpm -ql subversion
查看安装版本
svnserve --version

2、创建版本库目录
mkdir /var/svn
cd /var/svn
mkdir svnrepos
3、创建svn版本库
svnadmin create /var/svn/svnrepos/project
cd /var/svn/svnrepos/project
vim conf/authz
在文件最后末尾添加
vim conf/passwd
在最后一行添加账户和密码信息,格式为:帐号 = 密码
vim conf/svnserve.conf
如下图,将此四条命令前的注释去掉
4、启动svn服务器
cd /home/admin
svnserve -d -r /var/svn/svnrepos
使用ps -aux查看服务是否启动成功
5、客户端访问svn服务器
防火墙加入端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent
firewall-cmd --reload
访问地址为svn://ip地址:3690/project
十三、jenkins安装
**
1、官网下载:http://mirrors.jenkins-ci.org/redhat/
不同的版本会有不同的java版本依赖(Jenkins在2022年的官网上说,支持新版的jdk,例如jdk11;如果用yum安装一般是最新版jenkins,而我本地是jdk8版本的,很可能不兼容;openjdk跟jdk是两种版本,因为已经装了maven,那就不能装openjdk,而应该装jdk;jdk11这个版本能同时兼容maven和jenkins,鉴于我本地已经装了jdk8,所以采用rpm安装下载合适的jenkins版本。)
| 2.164或更高版本 | Java 8 or Java 11 |
|---|---|
| 2.54或更高版本 | Java 8 |
| 1.612或更高版本 | Java 7 |
我下载的是2.350版本
2、安装
rpm -ivh jenkins-2.350-1.1.noarch.rpm
图片版本不对,此处忘记截图,版本为2.350
3、配置修改
修改端口号(默认端口为8080,我修改为了8888端口)
vim /etc/sysconfig/jenkins

/usr/bin/java 是Jenkins配置文件中的默认java路径,需要改为主机上安装的java路径。
查看路径为:
which java

修改/etc/init.d/jenkins文件(添加主机的java路径),并重新加载配置文件
vim /etc/init.d/jenkins
systemctl daemon-reload


4、启动服务
service jenkins start
systemctl enable jenkins.service

5、将端口添加到防火墙
#开放指定端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent
#重启防火墙
firewall-cmd --reload
#查看当前所有tcp端口
netstat -ntlp

6、测试访问
访问地址:http://ip地址:8888
踩坑:端口修改不生效。如果jenkins启动之后,访问8888端口找不到网页,而访问8080可以,则需额外修改一处配置
vim /usr/lib/systemd/system/jenkins.service
# 重新加载配置文件
systemctl daemon-reload
service jenkins restart
修改端口号为8888,之后重新启动service jenkins restart
获取管理员密码
cat /var/lib/jenkins/secrets/initialAdminPassword

复制此密码到网页,点击继续,选择安装推荐的插件。

创建账户
选择默认的实例配置即可。
点击保存并完成。
点击开始使用后进入登录页面。
输入帐号密码,登录成功。
**
7、将jenkins设置为root权限
将 jenkins 账号加入到 root 组中
gpasswd -a jenkins root
修改/etc/sysconfig/jenkins文件,添加如下配置。
vim /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_GROUP="root"
将JENKINS_USER="jenkins"改为JENKINS_USER=“root”,添加JENKINS_GROUP=“root”。
重启 Jenkins
service jenkins restart
十三、后端基于jenkins的自动部署
(1)插件安装
1、maven插件安装
选择左侧manage jenkins选项后,选择图片右下角的manage plugins。
选择第二个可选插件,搜索maven,勾选第一个maven integration,点击install without restart按钮后进行下载。
下载完成后,点击返回首页。
2、下载nodejs插件。
2、Deploy to container插件安装

3、publish over ssh插件安装

4、subversion插件安装

(2)jenkins全局工具配置
选择manage jenkins后,点击图片右下角的global tool configuration中设置maven和jdk。
1、在maven配置中,按下图进行配置。
文件路径为下载的maven解压包路径。
2、点击新增jdk,取消Install automatically自动安装勾选,配置jdk名称和安装路径。
如果不确定JAVA_HOME路径,输入$JAVA_HOME查看。
3、之后下拉,点击新增maven按钮,取消Install automatically自动安装勾选,配置maven名称和安装路径。
配置完成后,点击应用后保存。
(3)配置credentials(因为登录svn的时候需要密码认证,所以要创建一个credentials)
点击manage jenkins,选择图片右下角的manage credentials选项。
点击头像右侧的jenkins选项进入。
点击全局凭据选项进入。
点击添加凭据选项。
按下图进行配置,点击create(注意:确定设置的用户名和密码可以访问svn)。
(4)svn自动化部署准备
点击用户列表,选择刚刚创建的root用户
点击设置
在API Token页面,点击添加新Token(我这里因为已经设置过了,所以显示这样)
先填写名称,我写的是root_token,之后点击生成按钮。
如图上标蓝处为生成的token值,复制此token值或点击右侧的复制按钮也可,先把token值记好,待会要用,点击应用后保存。
svn钩子配置
在svn仓库下hooks目录创建post-commit文件
cd /var/svn/svnrepos/project/hooks
vi post-commit
内容如下,其中119105797b169cbb9c36eac3183b1f9d2a为jenkins里设置的token,jinteng是刚才设置的凭据名称,192.168.1.58:8888/job/svn/build是jenkins任务。当svn代码变动时,自动触发jenkins任务。
#!/bin/sh
export LANG=zh_CN.GBK
curl -X POST "http://jinteng:119105797b169cbb9c36eac3183b1f9d2a@192.168.1.58:8888/job/svn/build"

(4)新建项目
1、首页选择新建item
2、输入任务名称,选择构建一个maven项目,点击确定。
3、进入项目,进行相关配置。
在general页面,添加描述,勾选discard old builds即丢弃旧的构建,选择备份最近的10个,点击应用。
源码管理页面进行如下图设置,选择subversion,输入svn的URL,在credentials处选择刚创建的svn凭据,check-out strategy选择图片所示那项后,点击应用。

构建触发器页面配置如下,默认配置。
构建环境勾选最后一项With Ant,选择jdk。
build页面输入如下配置。
#使用maven命令进行包的清除、打包、安装api等操作
clean install

Post steps页面选择第一项Run onlyif build succeeds,点击add post-build step按钮,选择Execute shell选项,进行shell命令的编写。使jenkins在构建完成后,将构建完成的包发送到指定服务器,并运行启动脚本。
shell脚本内容为(其中/var/lib/jenkins为jenkins默认的安装路径,ids为新建项目时自己起的名称):
cd /var/lib/jenkins/workspace/ids
sh start.sh start all

4、构建项目
返回首页,点击项目名称。
点击build now。
点击左下角构建进程数字后,选择控制台输出。
我的报错了,通过查看error信息,找不到repository目录。查看repository目录权限
chmod -R 775 /usr/local/apache-maven-3.8.6/repository

使用chmod指令修改为所有权限
chmod -R 777 /usr/local/apache-maven-3.8.6/repository

再次回到项目页面,点击build now并查看控制台输出,成功。
**
十四、前端基于jenkins和nginx的自动化部署
**
1、全局配置
在首页选择Manage Jenkins,点击Global Tool Configuration,拉到最下面,找到NodeJS,点击新增NodeJS。
填写名称nodejs,安装目录为nodejs的解压路径,点击保存。
2、新建工程ids_client
在首页点击新建Item,输入项目名称,选择第一个Freestyle project,点击确定。
3、项目配置
General页面可以添加项目描述,勾选Discard old builds,如下图所示。
源码管理页面选择Subversion,填入项目的svn地址https://192.168.1.231/svn/IDS/code/clinet,选择凭据,check-out strategy选择如图所示最后一项。

构建触发器页面选择最后一项Poll SCM,输入* * * * *,表示一分钟轮询一次。
构建环境页面勾选Provide Node & npm bin/ folder to PATH
构建页面点击增加构建步骤,选择Execute shell,输入脚本后点击保存。
cd /var/lib/jenkins/workspace/ids_client
npm install --registry=https://registry.npm.taobao.org
rm -rf ./dist/*
npm run build
#删除上一次构建文件
rm -rf /usr/local/nginx/jenkins/ids/*
cp -rf ./dist/* /usr/local/nginx/jenkins/ids

脚本中声明的dist文件夹最后放置路径为/usr/local/nginx目录下的jenkins目录的ids文件夹,这是我自己定义的,主机中并无此目录,所以需要创建一下。
cd /usr/local/nginx

先创建jenkins目录
mkdir jenkins
再创建ids文件夹,并赋予权限
cd jenkins
mkdir ids
chmod 777 ids
图片的mkdir project写错了,应为mkdir ids
4、修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
文件一开始中的worker_processes后的数字根据建了几个前端项目(本次部署包括ids和三个仿真系统,所以改为4)。
server中修改内容如下图,将root配置修改为刚才声明的dist文件路径,因为是前后端分离,所以要通过location /来进行跨域配置。
每个系统配置一个server,所以代码中有4个server。其中第一个server中有多个location,是因为ids系统要开启多个服务。
#user nobody;
worker_processes 7;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#配置服务器网关端口集群
upstream gatewayServer {
server 127.0.0.1:8808 weight=1;
server 127.0.0.1:8809 weight=1;
}
upstream nacos-cluster {
server 192.168.1.58:8848;
server 192.168.1.72:8848;
}
server {
listen 80;
server_name 127.0.0.1;
#charset koi8-r;
#access_log log
location / {
root /usr/local/nginx/jenkins/ids;
index index.html index.htm;
}
location /ids/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass http://gatewayServer/;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
server {
listen 8849;
server_name 192.168.1.58;
location /nacos {
proxy_pass http://nacos-cluster;
}
}
server {
listen 8090;
server_name 192.168.1.58;
root /usr/local/nginx/jenkins/aiops-sim;
index index.html index.htm;
location /aiops {
rewrite ^/aiops/(.*)$ /$1 break;
proxy_pass http://192.168.1.58:9011;
}
}
server {
listen 8091;
server_name 192.168.1.58;
root /usr/local/nginx/jenkins/omc-sim;
index index.html index.htm;
location /omc {
rewrite ^/omc/(.*)$ /$1 break;
proxy_pass http://192.168.1.58:9012;
}
}
server {
listen 8092;
server_name 192.168.1.58;
root /usr/local/nginx/jenkins/aistation-sim;
index index.html index.htm;
location /aistation {
rewrite ^/aistation/(.*)$ /$1 break;
proxy_pass http://192.168.1.58:9013;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
#user nobody;
worker_processes 5;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#配置服务器网关端口集群
upstream gatewayServer {
server 127.0.0.1:8808 weight=1;
server 127.0.0.1:8809 weight=1;
}
server {
listen 80;
server_name 127.0.0.1;
#charset koi8-r;
#access_log log
location / {
root /usr/local/nginx/jenkins/ids;
index index.html index.htm;
}
location /ids/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass http://gatewayServer/;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
server {
listen 8090;
server_name 192.168.1.58;
root /usr/local/nginx/jenkins/aiops-sim;
index index.html index.htm;
location /aiops {
rewrite ^/aiops/(.*)$ /$1 break;
proxy_pass http://192.168.1.58:9011;
}
}
server {
listen 8091;
server_name 192.168.1.58;
root /usr/local/nginx/jenkins/omc-sim;
index index.html index.htm;
location /omc {
rewrite ^/omc/(.*)$ /$1 break;
proxy_pass http://192.168.1.58:9012;
}
}
server {
listen 8092;
server_name 192.168.1.58;
root /usr/local/nginx/jenkins/aistation-sim;
index index.html index.htm;
location /aistation {
rewrite ^/aistation/(.*)$ /$1 break;
proxy_pass http://192.168.1.58:9013;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
#user nobody;
worker_processes 4;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8089;
server_name 192.168.1.72;
root /usr/local/nginx/jenkins/ids;
index index.html index.htm;
#charset koi8-r;
#access_log logs/host.access.log main;
location /intelligent {
rewrite ^/intelligent/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9007;
}
location /testlogin {
rewrite ^/testlogin/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:8802;
}
location /aiops {
rewrite ^/aiops/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9007;
}
location /ats {
rewrite ^/ats/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9002;
}
location /omc {
rewrite ^/omc/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9003;
}
location /parameter {
rewrite ^/parameter/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9007;
}
location /web {
rewrite ^/web/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9007;
}
location /aistation {
rewrite ^/aistation/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9010;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
server {
listen 8090;
server_name 192.168.1.72;
root /usr/local/nginx/jenkins/aiops-sim;
index index.html index.htm;
location /aiops {
rewrite ^/aiops/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9011;
}
}
server {
listen 8091;
server_name 192.168.1.72;
root /usr/local/nginx/jenkins/omc-sim;
index index.html index.htm;
location /omc {
rewrite ^/omc/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9012;
}
}
server {
listen 8092;
server_name 192.168.1.72;
root /usr/local/nginx/jenkins/aistation-sim;
index index.html index.htm;
location /aistation {
rewrite ^/aistation/(.*)$ /$1 break;
proxy_pass http://192.168.1.72:9013;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
刷新配置,启动nginx
cd /usr/local/nginx/sbin
./nginx -s reload
5、访问页面
地址为:localhost
更多推荐
所有评论(0)