yoobak

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

关于私有仓库、TCP/UDP、脚本编写

实现yum的私有仓库搭建

前言

在有些企业中,由于它所处于的特殊环境下,导致该服务器不能连外网。因此搭建私有仓库是有必要的。

准备

这里采用两个虚拟机(Rocky);一台模拟服务器,一台模拟客户机。

前提

这两台虚拟机必须能相互连通;

服务器端:

  • 必须能联网。 PS:因为要从外网下载软件包。
  • 开启httpd服务
  • 关闭selinux
  • 关闭防火墙
systemctl start httpd 
sed -i '/^SELINUX=/c SELINUX=disabled'  /etc/selinux/config
systemctl disable --now firewalld

搭建

服务器端

这里使用本地yum源,而epel,extras需要联网才能使用。

[root@rocky ~]# mount /dev/sr0 /mnt
[root@rocky ~]# cp -a /mnt/* /var/www/html/centos/8
[root@rocky ~]# df -Th
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  864M     0  864M   0% /dev
tmpfs                       tmpfs     893M     0  893M   0% /dev/shm
tmpfs                       tmpfs     893M  9.6M  884M   2% /run
tmpfs                       tmpfs     893M     0  893M   0% /sys/fs/cgroup
/dev/mapper/rl_rocky-root   xfs        80G   19G   62G  24% /
/dev/sdb2                   xfs        50G  390M   50G   1% /mnt/aa
/dev/sda1                   xfs      1014M  260M  755M  26% /boot
/dev/sdb3                   xfs       249G  1.8G  248G   1% /mnt/bb
/dev/sdb4                   xfs       100G  746M  100G   1% /mnt/cc
/dev/mapper/testvg0-lvmysql ext4      7.8G   36K  7.4G   1% /mnt/mysql
/dev/mapper/group-qa        ext3      765M   49K  728M   1% /mnt/qa
/dev/mapper/rl_rocky-home   xfs       127G  950M  126G   1% /home
tmpfs                       tmpfs     179M   28K  179M   1% /run/user/0
/dev/sr0                    iso9660    12G   12G     0 100% /run/media/root/Rocky-8-7-x86_64-dvd

这里要注意以下它的挂载点在哪,地址要根据挂载点来写。

写yum配置文件需要注意:

  • 必须写在 /etc/yum.repos.d/ 目录下
  • 必须以 .repo结尾
  • 默认是自启的,enabled可以不写
  • 默认gpgcheck=1,如不需要检查把1改成0即可
[root@rocky ~]# cat /etc/yum.repos.d/Rocky-Media.repo
[media-baseos]
name=Rocky Linux $releasever - Media - BaseOS
baseurl=file:///run/media/root/Rocky-8-7-x86_64-dvd/BaseOS
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

[media-appstream]
name=Rocky Linux $releasever - Media - AppStream
baseurl=file:///run/media/root/Rocky-8-7-x86_64-dvd/AppStream
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

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

[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/8/extras/x86_64/os
enabled=1
gpgcheck=0

配置完成清理一下缓存

[root@rocky ~]# yum clean all
[root@rocky ~]# yum repolist all
[root@rocky scripts]# yum repolist 
repo id                                                repo name
epel                                                   epel
extras                                                 extras
media-appstream                                        Rocky Linux 8 - Media - AppStream
media-baseos                                           Rocky Linux 8 - Media - BaseOS

--repoid= 以上面的repo id 对应。

-p:指定下载的位置

dnf默认只下载rpm包,不下载meta数据。因此需要指定--download-metadata 才能下载 meta

[root@rocky ~]# mkdir -p /var/www/html/centos/8
[root@rocky ~]# dnf reposync --repoid=extras --download-metadata -p /var/www/html/centos
[root@rocky ~]# dnf reposync --repoid=epel --download-metadata -p /var/www/html/

这里服务器就配置好了。

以下是验证目录是否有文件

[root@rocky ~]# cd /var/www/html/
[root@rocky html]# ls
centos  epel
[root@rocky html]# cd centos/
[root@rocky centos]# ls
8  extras
[root@rocky centos]# cd 8/
[root@rocky 8]# ls
AppStream  BaseOS  EFI  images  isolinux  LICENSE  media.repo  TRANS.TBL
[root@rocky 8]# cd ..
[root@rocky centos]# cd extras/
[root@rocky extras]# ls
Packages  repodata
[root@rocky centos]# cd ..
[root@rocky html]# ls
centos  epel
[root@rocky html]# cd epel/
[root@rocky epel]# ls
Packages  repodata  RPM-GPG-KEY-EPEL-8

客户端

要确保客户端和服务器端是相通的,否则不能下载服务端的软件包。

配置yum仓库

[root@rocky ~]# cat /etc/yum.repos.d/test.repo 
[BaseOS]
name=BaseOS 
baseurl=http://192.168.3.130/centos/8/BaseOS
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

[AppStream]
name=AppStream
baseurl=http://192.168.3.130/centos/8/AppStream
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

[epel]
name=epel
baseurl=http://192.168.3.130/epel
gpgcheck=0
#gpgkey=http://192.168.3.130/epel/RPM-GPG-KEY-EPEL-8

[extras]
name=extras
baseurl=http://192.168.3.130/centos/extras
gpgcheck=0

清理缓存

[root@rocky ~]# yum clean all 
[root@rocky ~]# yum repolist 
repo id                                          repo name
AppStream                                        AppStream
BaseOS                                           BaseOS
epel                                             epel
extras                                           extras

接下来安装一下软件检查是否成功

TCP三次握手与四次挥手图解

三次握手图解

四次挥手图解

配置静态网卡实现上网

Rocky8为例,这里选择NAT网卡模式

查看网关,IP地址的范围

打开编辑,选择虚拟网络编辑器

打开NAT设置

点击DHCP设置

查看一下本机的网卡名,是eth0

[root@rocky ~]# 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:02:39:c9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.121/24 brd 192.168.3.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe02:39c9/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:99:12:1f brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

知道这些信息,接下来就可以配置网卡了。

[root@rocky ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=192.168.3.130
PREFIX=24
GATEWAY=192.168.3.1
DNS1=8.8.8.8
DNS2=180.76.76.76
DNS3=114.114.114.114

配置完,要让配置生效执行以下命令

[root@rocky ~]# nmcli connection reload 
[root@rocky ~]# nmcli connection up eth0 

如果是centos6

sevice network restart

如果是centos7

systemctl restart network

这样就完成了。

自动化脚本编写

编写实现免密登陆脚本, expect登陆远程主机,将生成的密钥写入到目标主机, expect测试远程登陆。
功能有

  • 安装mysql
  • 安装apache
  • 免密钥登陆主机
[root@rocky scripts]# cat ssh1.sh 
#!/bin/bash
#生成密钥
generate_key() {
ssh-keygen -t rsa
ssh-copy-id root@192.168.3.140
}
#远程登录
test_login() {
expect -c "
spawn ssh root@192.168.3.140
expect {
	"*password" { send "877441\n"; exp_continue }
	"*yes/no" { send "yes\n"; exp_continue }
}
"
	}
#免密登录
ssh_login() {
	hosts=(192.168.3.131 192.168.3.132 192.168)
	for host in "${hosts[@]}"
	do
		generate_key
		test_login
	done
}
PS3="请输入(1-4):"
while true
do
select MENU in 安装mysql 安装apache 免密登录主机 退出;do
case $REPLY in
1) 
    yum install mysql
	;;
2)
	yum install apache	
	;;
3)
    ssh_login
	;;
4) 
	echo "退出!"
	exit
	;;	
*)
	echo "请重新输入!"
	;;
esac
done
done

posted on   TUOP  阅读(12)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示