离线搭建Ubuntu基础环境

一、背景介绍

离线部署的方法很多,常见安装介质有U盘、网络装机 以及一些保密要求严格的场所使用光盘。

吐槽关键词:Ubuntu是挺轻量的,但是无法update有点痛>_<,如果系统已经部署好的可以直接跳转第三章节第2小节

二、前置准备

先介绍几种常见的系统启动盘的创建方式

1、U盘启动盘制作

建议使用ventoy ,它可以制作多系统启动盘,即直接将iso镜像拖入U盘,然后安装的时候从U盘启动只需在ventoy自带的菜单中选择装哪个就行(工具已上传自取)

Ventoy

2、光盘启动盘制作

建议使用软碟通,然后准备好iso镜像在软碟通进行刻录光盘映像就行

ISO镜像下载地址(建议国内站):mirrors.huaweicloud.com/ubuntu-releases/22.04.5/

光盘刻录软件下载地址:UltraISO软碟通中文官方网站 - 光盘映像文件制作/编辑/转换工具

3、其他准备

如果只能用光盘,那么再准备1-2张空光盘,可用于后续当数据盘进行导入

三、部署方法

1、系统部署

以光驱光盘为例,插好光驱然后按快捷键进入BIOS或者启动菜单

工作站(联想,Dell)一般是F12 F2 之类的

工控机或者服务器(研华、凯瑞、浪潮、华为、Suma)一般都是Del 进入BIOS,F11进入启动菜单

在启动菜单中选择光驱启动即可,过一会儿就会通过加载引导程序到安装页面

选第二个

语言建议保持英文,如果切换中文可能会出现开发的业务软件编码问题,到时候还得改编码或语言

正常安装

建议改成LVM 便于后续管理

时区一般选择亚洲上海或者北京

创建用户

安装完成

把光驱拔掉,然后按回车即可

完成系统安装

2、配置基础环境

先用普通用户登录,然后修改root用户密码

鼠标右键打开终端
 

sudo passwd root

[sudo] password for simpole:                         (这个地方输入simpole的老密码)

New password:                                           (输入新密码)

Retype new password:                               (再输入一次即可,这些无回显都是正常的)

然后登录root用户,这是为了便于后续操作避免权限问题

su  -  root
root@sim ~#: 

给机器配置一个IP地址,我建议使用nmtui,因为它在很多Linux系统上都是通用的

systemctl start NetworkManager

nmtui

编辑连接

因为我这边是离线的环境,所以通常配置静态IP,配置后在OK保存即可


然后ESC回到一开始的页面,去激活一个连接即可。

如果发现无法激活,nmcli connection show 发现网口是灰色的后面的状态时---,则说明该网口未被NetworkManager服务接管,需要执行下列命令

nmcli networking on
systemctl restart NetworkManager 

完成后退出验证

ip a s 

网络配置后,我们会发现ubuntu默认啥工具都没有如ssh,samba,vsftpd。不上传离线包就无法安装ssh,我不安装SSH无法上传离线包。

处理方法:用移动存储介质然后将数据拷贝进去。方法2是把所需的离线包上传到其他ftp服务器上然后在ubuntu上使用ftp客户端去拉取本地进行部署

3、FTP服务端搭建与ubuntu客户端获取

这里以这些代号命名

Ubuntu:机器A                 FTP服务器:机器B

简单介绍下如何部署ftp服务器,还是以centos为例(基于redhat的麒麟Server版本操作方法和这个一致,基于debian的麒麟和ubuntu一致)

现在控制的是机器B   

如果可以的话,先把防火墙和selinux这些都关掉

先使用systemctl status vsftpd 如果not found 就需要安装,使用yum install -y vsftpd ,如果即没有离线仓库也无法联网,参考这篇文章来使用离线的方式下载vsftpd

如何使用yum离线安装软件-CSDN博客

安装好vsftpd之后进行配置,执行下列指令进行一键配置

sed -i '2s/^/#/' /etc/vsftpd/ftpusers
sed -i '7s/^/#/' /etc/vsftpd/user_list
sed -i 's/listen_ipv6=YES/listen_ipv6=NO/g' /etc/vsftpd/vsftpd.conf
sed -i 's/listen=NO/listen=YES/g' /etc/vsftpd/vsftpd.conf
systemctl enable --now vsftpd && systemctl start vsftpd

确保机器AB之间的网络互联互通之后,把做好的离线包上传到FTP服务器上(机器B),然后在Ubuntu(机器A)上使用ftp命令进行获取

如何制作离线包供ubuntu通过添加源文件进行离线下载,请参考下面这个文档

如何使用apt离线安装软件(麒麟升级GCC)-CSDN博客

先用ping测试连通性,然后ftp 获取包

ping 192.168.1.180

ftp 192.168.1.180

输入用户名和密码登录到ftp服务器

cd /opt

get ubuntuBaseSet.zip 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>100%

然后在Ubuntu(机器A)上进行解压,我解压后的目录是一个名为software的目录,直接拷贝到/opt下,解压后执行下列命令写一个apt源并更新和安装,apt install需要根据您的实际情况进行选择,如果包中没有会找不到

echo "deb [trusted=yes] file:///opt/software/ ./" > /etc/apt/sources.list.d/software.list 
mv /etc/apt/sources.list /etc/apt/sources.list_bak
apt update
apt install ssh vim zip net-tools cmake docker docker-compose 

输入y开始安装

启用sshd:

systemctl start sshd

然后就可以远程了

如果是被管控的家域本无法使用SSH工具,也可以使用win10自带的cmd进行测试,这也便于隔离问题

C:\Users\chenglin.zhao>ssh root@192.168.1.66
root@192.168.1.66's password:
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.8.0-40-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status

Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings

*** System restart required ***

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

如果想使用root用户登录则需要修改SSH配置文件,可以使用下列命令直接插入一行

sudo sed -i '/^PermitRootLogin/d' /etc/ssh/sshd_config
sed -ri '33a PermitRootLogin yes' /etc/ssh/sshd_config
systemctl restart sshd

至此,就解决了ubuntu默认安装后无法使用root用户远程的问题了

4、基于debian的Kylin desktop版本

这小节做补充说明,麒麟desktop版本这边虽然没有ssh服务端但是有ssh客户端,直接使用scp 从对端拉取文件到本地就行,离线仓库的创建和ubuntu一致

解压离线包,然后mv 掉原来不能用的源,然后执行update和install,apt install 这里根据您做的离线包内容进行选择安装

tar -xf /opt/kylinBaseSet.tar.gz 

echo "deb [trusted=yes] file:///opt/kylinBaseSet/ ./" > /etc/apt/sources.list.d/kylin.list 
mv /etc/apt/sources.list /etc/apt/sources.list_bak
apt update
apt install ssh wireshark docker docker-compose make 

四、后续的一些补充操作

Ubuntu 22.04 系统与基础环境已经配置好了,通常服务于平台最好把所需的底层依赖也部署上

1、部署JAVA平台

下载java安装包,java下载的路径(建议使用国内站例如华为云):Index of java-local/jdk

然后上传到ubuntu的/usr/local下解压然后添加环境变量并使其生效,操作过程如下

root@sim:/usr/local# tar -xf jdk-8u144-linux-x64.tar.gz 
root@sim:/usr/local# ls
bin  etc  games  include  jdk1.8.0_144  jdk-8u144-linux-x64.tar.gz  lib  man  sbin  share  src
root@sim:/usr/local# echo 'JAVA_HOME=/usr/local/jdk1.8.0_144' >> /etc/profile 
root@sim:/usr/local# echo 'PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile 
root@sim:/usr/local# source /etc/profile 
root@sim:/usr/local# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

2、部署Mysql5.7、Rabbitmq、Redis等(建议使用docker)

结合上文,我们基础环境中安装了docker和docker-compose,所以只需准备好docker镜像即可

这里推荐国内镜像站:轩辕镜像,虽然流量需要花费但是小充基本够用

轩辕镜像 - 中国开发者首选的专业 Docker 镜像支持与技术服务平台

把镜像放到一个目录下然后直接docker load -i 导入即可

for i in $(ls);do docker load -i $i; done

然后写一个compose文件,可以直接复制下面的命令进行生成一个yml文件

root@sim:/opt# echo "version: '3'

services:
  redis:
    image: redis:4
    restart: always
    ports:
      - 6379:6379
  
  rabbitmq:
    image: rabbitmq:management
    restart: always
    ports:
      - 5672:5672
      - 15672:15672

  mysql_db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - ./database:/var/lib/mysql
      - ./mysql/my.cnf:/etc/my.cnf
    ports:
      - 3307:3306" > docker-compose.yml 

启动容器

root@sim:/opt# docker-compose up -d
Creating network "opt_default" with the default driver
Creating opt_redis_1    ... done
Creating opt_rabbitmq_1 ... done
Creating opt_mysql_db_1 ... done

确认状态

root@sim:/opt# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                                                                                                     NAMES
11ab2a7c6319   mysql:5.7             "docker-entrypoint.s…"   53 seconds ago   Up 52 seconds   33060/tcp, 0.0.0.0:3307->3306/tcp, [::]:3307->3306/tcp                                                                                                    opt_mysql_db_1
8fadcbe36fc1   rabbitmq:management   "docker-entrypoint.s…"   53 seconds ago   Up 52 seconds   4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, [::]:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, [::]:15672->15672/tcp   opt_rabbitmq_1
e911ab3b8bab   redis:4               "docker-entrypoint.s…"   53 seconds ago   Up 52 seconds   0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp                                                                                                               opt_redis_1

数据库为例,连接测试。因为本地没有mysql-client,所以我登录容器进行了测试,是可以的

root@sim:/opt# docker exec -ti 11ab2a7c6319 /bin/bash
root@11ab2a7c6319:/# mysql -uroot -p123456   
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

用远程机器测试

再66 的容器中创建一个库

mysql> create database ceshi_66;
Query OK, 1 row affected (0.00 sec)

然后再别的机器上(示例中是180)连一下66 的数据库,连接成功,完成测试

[root@localhost ~]# mysql -uroot -p123456 -h192.168.1.66 -P3307
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ceshi_66           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

五、总结

本文介绍了Ubuntu从准备启动盘到部署系统和基础环境配置,FTP搭建以及麒麟desktop版本类似的操作,在离线状态下搭建了业务软件所需的环境,祝读者顺利完成离线部署,有什么优化的地方欢迎指出,互相学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值