yum私有仓库的实现

2023-10-29

目录

一. yum私有仓库的实现

二. 画图 TCP协议和三次握手及四次挥手

三.centos/ubuntu 静态网卡IP配置

四. 实现免密登录脚本, expect登录远程主机,将生成的密钥写入到目标主机, expect测试远程登录。


一. yum私有仓库的实现

思路:首先搭建公司内部服务器EPEL源,把EPEL源下载到公司内部服务器,再由http将服务器EPEL所有数据共享出来,公司内部的客户端就可以从创建好的这个http共享服务器来获取资源了。

第1步.环境准备:关闭SELinux 和防火墙,再进行yum仓库搭建

#关闭SELinux 
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config

#关闭防火墙
systemctl disable --now firewalld 

第2步.EPEL的yum源

#阿里云        http://mirrors.aliyun.com/epel/8/Everything/x86_64/

#腾讯云        https://mirrors.cloud.tencent.com/epel/8/Everything/x86_64/

#清华大学        https://mirror.tuna.tsinghua.edu.cn/epel/7/x86_64/

第3步.rocky gpgkey

#山东大学          http://mirrors.sdu.edu.cn/rocky/RPM-GPG-KEY-Rocky-8

#上海交通大学  https://mirrors.sjtug.sjtu.edu.cn/rocky/RPM-GPG-KEY-Rocky-8

第4步.为rocky配置yum的系统和EPEL源仓库

在/etc/yum.repos.d文件下创建一个以*.repo为后缀的文件

第5步.yum配置文件

vim /etc/yum.repos.d/*.repo

[BaseOs]
name=BaseOs
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
        https://mirrors.cloud.tencent.com/epel/8/Everything/x86_64/
enable=1
gpgkey=https://mirrors.cloud.tencent.com/epel/RPM-GPG-KEY-EPEL-8

[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
enable=1
gpgkey=https://mirrors.cloud.tencent.com/epel/RPM-GPG-KEY-EPEL-8

[EPEL]
name=EPEL
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
gpgcheck=0

第6步.安装http实现资源共享,可以搭建公司内部的http服务器

yum -y install http                       #安装http服务

systemctl enable --now httpd     #启动http服务

第7步.在浏览器输入ip地址,测试http服务是否能正常被访问

第8步.下载阿里云的epel源,制作私有yum源

yum repolist        #查看epel仓库id,repolistid       

dnf  reposync --repoid=epel --download-metadata -p /var/www/html/  #下载epel源

第9步.再将客户端yum配置文件[EPEL]中baseurl地址指向公司内部的http服务器地址

 第10步.客户端使用yum源下载

二. 画图 TCP协议和三次握手及四次挥手

三次握手

三次握手概念:

第一次握手:客户端向服务器端发送请求报文段。

第二次握手:服务器端接收到请求报文段后,会发送一个响应。

第三次握手:客户端收到服务端连接同意的应答后,还会向服务端发送一个确认报文段,表示:服务端发来的连接同意应答已经成功收到。客户端发完这个报文段后便进入ESTABLISHED状态,服务端收到这个应答后也进入ESTABLISHED状态,此时连接的建立完成!

四次挥手

四次挥手:

第一次挥手:客户端数据发送完成,则它向服务端发送连接释放请求。

第二次挥手:服务器收到客户端连接释放报文,通知相应的高层应用进程,告诉它客户端向服务器这个方向的连接已经释放了。

第三次挥手:服务端将最后的数据发送完毕后,就向客户端发送连接释放报文。

第四次挥手:客户端收到服务器的连接释放报文后,向服务端发出确认应答,服务端只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。

三.centos/ubuntu 静态网卡IP配置

centos/ubuntu网卡及ip配置(操作步骤基本一致)

centos/ubuntu:网卡配置文件路径

vim /etc/default/grub

centos:ip地址配置文件路径

 vim /etc/sysconfig/network-scripts/ifcfg-eth0

ubuntu:ip地址配置文件路径

vim /etc/netplan/01-netcfg.yaml

第1步:centos/ubuntu使用传统命名方式

编辑网卡配置文件:

vim /etc/default/grub

GRUB_CMDLINE_LINUX="net.ifnames=0"

vim /etc/default/grub

显示效果

第2步:centos/ubuntu生效配置文件

centos生效配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

ubuntu为grub生效配置文件

grub-mkconfig -o /boot/grub/grub.cfg

执行效果

root@administrator:~# grub-mkconfig -o /boot/grub/grub.cfg
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.0-124-generic
Found initrd image: /boot/initrd.img-5.4.0-124-generic
Found linux image: /boot/vmlinuz-5.4.0-122-generic
Found initrd image: /boot/initrd.img-5.4.0-122-generic
done

第3步:centos/ubuntu网卡名修改成功,执行ip a验证一下

ip  a

发现网卡名已经修改成功,缺少ip地址。这是因为ip地址配置文件与网卡名不对应,导致ip地址没有显示,需要配置ip地址文件。

ip a显示效果

第4.1.1步centos配置ip地址文件

该文件必须以ifcfg-开头,网卡名设置的是eth0,这里我们就使用ifcfg-eth0与之对应

vim  /etc/sysconfig/network-scripts/ifcfg-eth0

 vim /etc/sysconfig/network-scripts/ifcfg-eth0

第4.1.2步 centosIP配置文件路径:

vim /etc/sysconfig/network-scripts

DEVICE="eth0"    
NAME="eth0"
BOOTPROTO=static
IPADDR=192.168.23.132
PREFIX=24
GATEWAY=192.168.23.2
DNS1=180.76.76.76
DNS2=223.5.5.5

第4.1.3步centos执行命令生效:

systemctl  restart network

[root@administrator ~]# systemctl  restart network

第4.1.4步centos验证ip配置是否生效

ip  a

执行效果:

centos网卡及ip配置完成

第4.2.1步ubuntu修改网卡名之后没有ip地址显示,原因是与ip配置文件中网卡名不一致

处理方式:配置正确ip地址

第4.2.2步ubuntu静态配置ip文件需要以.yaml后缀文件

执行命令:vim /etc/netplan/01-netcfg.yaml

network:
  ethernets:
    eth0:
      addresses:
      - 192.168.23.130/24
      gateway4: 192.168.23.2
      nameservers:
            search: [baidu.com]
            addresses: [180.76.76.76]
  version: 2

第4.2.3步ubuntu执行ip配置生效命令

执行生效命令,再使用ip a查看ip地址,完成静态ip地址配置
netplan apply

ip a

root@administrator:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:76:88:a7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.130/24 brd 192.168.23.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe76:88a7/64 scope link 
       valid_lft forever preferred_lft forever

第5步:centos/ubuntu使用ip a命令均能正常查看网卡及ip地址配置,操作完成。

四. 实现免密登录脚本, expect登录远程主机,将生成的密钥写入到目标主机, expect测试远程登录。

(1)通过shift读取脚本参数
(2)通过select来选择功能.例如功能有
- 安装mysql
- 安装apache
- 免密钥登录主机
当前我们只实现免密钥登录主机

(3)通过函数封装每个功能
(4)将免密钥登录的过程可以重复进行, while 循环实现重复,需要有退出过程。当用户输入exit时,退出免密钥功能。
(5)支持输入一批主机免密钥,使用数组实现

#!/usr/bin/expect
set ip 192.168.23.135
set user root
set password qwwr123
set timeout 10
spawn ssh $user@$ip
expect {
		"yes/no" { send "yes\n";exp_continue }
		"password " { send "$password\n" }
}
interact

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yum私有仓库的实现 的相关文章

  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 如何查找哪个 Yocto 项目配方填充图像根文件系统上的特定文件

    我经常与 Yocto 项目合作 一个常见的挑战是确定文件为何 或来自什么配方 包含在 rootfs 中 这有望从构建系统的环境 日志和元数据中得出 理想情况下 一组命令将允许将文件链接回源 即配方 我通常的策略是对元数据执行搜索 例如gre
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它

随机推荐

  • C语言代码规范

    1 排版 1 1 程序块要采用缩进风格编写 缩进的空格数为4个 1 2 相对独立的程序块之间 变量说明之后必须加空行 1 3 较长的语句 gt 80字符 要分成多行书写 长表达式要在低优先级操作符处划分新行 操作符放在新行之首 划分出的新行
  • 「网页开发|前端开发|Vue」06 公共组件与嵌套路由:让每一个页面都平等地拥有导航栏

    本文主要介绍在多个页面存在相同部分时 如何提取公共组件然后在多个页面中导入组件重复使用来减少重复代码 在这基础上介绍了通过嵌套路由的方式来避免页面较多或公共部分较多的情况下 避免不断手动导入公共组件的麻烦 并且加快页面跳转的速度 文章目录
  • Java集合(List、Set、Map)

    Java中的集合是用于存储和组织对象的数据结构 Java提供了许多不同的集合类 包括List Set和Map等 以满足不同的需求 下面将介绍一些常见的Java集合类及其使用方法 一 List List是一个有序的集合 它允许元素重复出现 并
  • MultipleFile转File、File转Byte

    MultipleFile转File File转Byte 工具类 file2byte param file return public static byte convertFileToByteArray File file try File
  • 多维数组np.pad函数的理解

    多维数组np pad函数的理解 原函数是 np pad array x1 y1 x2 y2 x3 y3 constant x1 y1 意思是着在a这个三维矩阵中 整个大矩阵中首尾分别添加x1 y1个和a中各个矩阵形状一样的0矩阵 效果如下图
  • 抓取鼠标动画

    今天给大家分享一个抓取鼠标的动画 嗯 真的是抓取鼠标 代码如下
  • python怎么封装函数_python怎么封装函数

    什么是封装 在程序设计中 封装 Encapsulation 是对具体对象的一种抽象 即将某些部分隐藏起来 在程序外部看不到 其含义是其他程序无法调用 要了解封装 离不开 私有化 就是将类或者是函数中的某些属性限制在某个区域之内 外部无法调用
  • 连接器出线方法分享(持续更新)

  • 基于情境化时空网络的出租车OD需求预测

    1 文章信息 Contextualized Spatial Temporal Network for Taxi Origin Destination Demand Prediction 是2019年发表在IEEE上的一篇文章 2 摘要 本文
  • 区块链之添加节点

    1 查询节点信息 gt admin nodeInfo enode enode b817560f061b1f14551f87060806847c4c6b7cf8b56b6027fd3d8400c3abb4e2a3d535dd78ab46f28
  • CAD打开字体无法选择,cad打开无字体,cad无法加载字体

    在命令栏中输入filedia 然后回车 输入1保存关闭 再重新打开即可
  • gcc编译出现:error: invalid operands to binary & (have ‘char *’ and ‘int *’)

    1 2 gt File Name ptr variable c 3 gt Author Mr Yang 4 gt Purpose 演示指向变量的指针 5 gt Created Time 2017年06月03日 星期六 08时47分33秒 6
  • JDBC PostgreSQL

    上一节 JDBC可以操作多种数据库 而且都是标准化操作 区别仅仅在使用不同的数据库连接驱动程序 及URL连接方式的书写 引用SQL包 import java sql public class JDBCTest param args publ
  • 关于RocketMq消息积压问题排查

    1 最近生产的mq出现了一个问题 我的消费者是集群 就是双节点 现在消息积压到1亿多条 如下图所示 其中有两个问题 问题1 就是为什么我的消息积压这么多 问题2 我的消费者是集群 为什么只有一台消息在消费 2 接着开始排查问题 结果发现在消
  • conda进行transformers安装

    首先建立新环境 conda create n myenv python 3 8 安装numpy和pytorch conda install numpy conda install pytorch torchvision torchaudio
  • 人脸检测 + 数据训练 + 人脸识别

    准备工作 安装opencv pip install opencv 安装opencv contrib pip install opencv contrib 创建文件夹 文件结构为 一 编写一个基础的人脸识别 import cv2 as cv
  • 服务器存档里怎么修改器,云服务器存档修改器

    云服务器存档修改器 内容精选 换一换 修改云服务器信息 目前支持修改云服务器名称及描述和hostname 该接口支持企业项目细粒度权限的校验 具体细粒度请参见 ecs cloudServers put云服务器hostname修改后 需要重启
  • 面试官常问到的问题

    dom是什么 虚拟DOM又是什么 有何作用 谈谈你对vue的理解以及2和3的区别 双向数据绑定 数据类型有哪些 深拷贝和浅拷贝是什么 它们的区别是什么 组建通信了解吗 重绘和回流是什么 一般开发用什么布局 VUEX了解吗 说说它的五大属性及
  • react-native 屏幕尺寸和文字大小适配

    转载存档 现在的手机品牌和型号越来越多 导致我们平时写布局的时候会在个不同的移动设备上显示的效果不同 比如我们的设计稿一个View的大小是300px 如果直接写300px 可能在当前设备显示正常 但到了其他设备可能就会偏小或者偏大 这就需要
  • yum私有仓库的实现

    目录 一 yum私有仓库的实现 二 画图 TCP协议和三次握手及四次挥手 三 centos ubuntu 静态网卡IP配置 四 实现免密登录脚本 expect登录远程主机 将生成的密钥写入到目标主机 expect测试远程登录 一 yum私有