1 背景

最近被同事拉去其他项目组搭建环境,需要去客户现场。根据之前获取的信息提前编制了脚本文件和准备了工具软件。到了后一看环境,跟预想的完全不同,准备的自动化安装脚本都没有用上。环境是内网环境。操作系统银河麒麟V10操作系统。最小化安装系统。

2 目的

离线环境下安装软件,以nginx为例展开。

3 思路

思路跟计划是相辅相成的,思路明了,针对具体的环境采取具体的办法进行处理,针对安装nginx,以下推出三种方式安装nginx的方法,如果只是单纯的安装nginx可以参考另一篇文章《linux 系统下四种nginx安装方法》 本文是根据项目展开的。

3.1 思路一

是以获取的信息展开的,在 centos7.4为例,从网网下载了当前最新的nginx稳定版本。安装分两步走,第一步安装依赖库和软件。第二步安装nginx软件。离线环境可以,有内部yum源就可以,直接没有源,依赖就成了最大问题。卡住了。
安装步骤如下:

3.1.1 操作步骤

#!/bin/bash
# ---------------------------------------------
# File Name   : 01-instal_nginx.sh
# Description : install nginx
# after install finished you need to configure nginx
# ---------------------------------------------
echo 'install inginx'
echo '1-install libary'
yum -y install gcc gcc-c++ autoconf automake make
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel make libtool
yum -y install openssl openssl-devel
echo '2-create nginx user'
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
echo '3-download nginx'
tar -zxvf nginx-1.22.0.tar.gz
cd nginx-1.22.0
mkdir -p /usr/local/nginx
./configure --prefix=/usr/local/nginx  --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
make && make install
/usr/local/nginx/sbin/nginx
echo '4-configure the nginx'
/usr/local/nginx/sbin/nginx -s stop
cp ../nginx.service /lib/systemd/system/
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
systemctl start nginx
systemctl enable nginx.service
systemctl status nginx

nginx.service

[Unit]
Description=nginx
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

3.1.2 应用场景:

具备网络接入或者具备yum源(外部或者内部),在本次项目中此思路一被验证不适合本项目,继续思路二。

3.2 思路二

在具备网里接入条件下安装跟内外系统相同的操作系统。通过另一台服务器将需要安装的依赖库和软件下载下来,将下载的软件包拷贝上传至内网服务器环境,安装部署

3.2.1 操作步骤

准备目录
# nginx 程序目录
mkdir  -p /home/deploy/nginx
# nginx 依赖库 gcc
mkdir -p /home/deploy/nginx/gcc
# nginx 依赖库 openssl
mkdir -p /home/deploy/ngiinx/openssl
# nginx 依赖库 pcre
mkdir -p /home/deploy/nginx/pcre
# nginx 依赖库 zlib
mkdir -p /home/deploy/nginx/zlib
下载依赖

下载gcc
进入创建的目录

cd /home/deploy/nginx/gcc

下载

yum -y install gcc-c++ --downloadonly --downloaddir ./

在这里插入图片描述
查看下载文件
在这里插入图片描述
下载openssl
进入openssl目录

cd /home/deploy/nginx/openssl

下载

yum -y install openssl openssl-devel --downloadonly --downloaddir ./

在这里插入图片描述
查看下载文件
在这里插入图片描述
下载pcre
进入目录

cd /home/delpy/nginx/pcre

下载

yum -y install pcre pcre-devel --downloadonly --downloaddir ./

在这里插入图片描述
下载zlib
进入下载目录

cd /home/deploy/ngiinx/zlib

下载

yum -y install zlib zlib-devel --downloadonly --downloaddir ./

在这里插入图片描述
针对已经安装的软件包,可以查看,
cat /etc/yum.repos.d/kylin_x86_64.repo
访问里面的baseurl后的地址,在打开的浏览器中Ctrl+F 输入软件包查看下载
在这里插入图片描述

3.2.2 应用场景

具备双网里环境,针对下载的离线包,拷贝安装至离线服务器进行安装。

3.3 思路三

针对服务器在3台以上,思路二固然可行但是效率大打折扣,有没有一种方式能比方案二更省点事呢?不如搭建个局域网yum源。yum源搭建完毕后,思路一也就可以正常执行了。

3.3.1 下载iso

可以通过官网或其他方式下载,参考麒麟V10

3.3.2 挂载镜像

将镜像上传至服务器

mkdir -p /home/deploy/iso
mkdir -p /mnt/iso

挂载至/mnt目录下

mount -o loop -t /home/deply/iso/Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso /mnt/iso

返回 mount: /mnt: WARNING: source write-protected, mounted read-only. 说明挂载成功

3.3.3 配置yum源

备份原yum源

mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup

配置本地yum源

vi /etc/yum.repos.d/kylin_v10.repo

[kylin_v10.repo]
name=kylin_v10.repo
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0

生效yum配置

创建目录

mkdir -p /home/deploy/httpd

下载httpd

yum -y install httpd --downloadonly --downloaddir ./

安装

cd /home/deloy/httpd
rpm -ivh *.rpm
systemctl start httpd
# 开启防火墙80端口
firewall-cmd --add-port=80/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查询端口 - yes为开启成功,no为端口未开启
firewall-cmd --query-port=80/tcp


设置访问目录
httpd服务默认访问路径是/var/www/html/,需创建/mnt/iso目录做个软链接到这个目录

# ln -s /mnt/iso /var/www/html/

验证
浏览器地址栏中输入 部署的服务器的IP地址/

更改yum文件

vi /etc/yum.repos.d/kylin_v10.repo

[kylin_v10.repo]
name=kylin_v10.repo
baseurl=http://xxx.xx.xx.xx/iso
enabled=1
gpgcheck=0

更新局域网服务器的kylin_v10.repo文件

yum clean all
yum makecache
yum list

确认无误后,运行思路一中的脚本进行安装。

Logo

更多推荐