侧边栏壁纸
博主头像
Blog博主等级

行动起来,活在当下

  • 累计撰写 211 篇文章
  • 累计创建 94 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

传统运维技术篇01

一、环境拓扑

拓扑-min.webp

使用virtualbox部署服务器,其中开发机器和测试运维机都是单网卡并且使用内部网络。路由器充当网关配置双网卡(nat网卡用于上网,内部网络用于和开发机器、测试运维机通信)。所有机器选用国产麒麟v10系统。

注意:国产系统安装时,语言选择英文,选择最小镜像安装。麒麟系统nat模式下,默认不会自动激活网卡,进入系统后使用dhclient激活网卡。后面可以通过配置网卡文件自动激活网卡。

所有服务器配置:

2核4G-20G硬盘。

二、搭建过程

先安装好一台服务器(jx-dev-71),然后克隆出两台服务器jx-ops-81、jx-gateway-254。

注意:克隆时选择链接克隆。克隆完成后需要更改网卡的UUID,否则每台都一样。

jx-dev-71服务器网络配置:

内部网络:

[root@jx-dev-71 jx1206]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=a425c52c-cf03-4aed-acd4-b4e28fc7eccf
DEVICE=enp0s3
ONBOOT=yes
IPADDR=10.10.10.71
NETMASK=255.255.255.0
GATEWAY=10.10.10.254
DNS1=114.114.114.114

jx-ops-81服务器网络配置:

内部网络

[root@jx-ops-81 jx1206]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=
DEVICE=enp0s3
ONBOOT=yes
IPADDR=10.10.10.81
NETMASK=255.255.255.0
GATEWAY=10.10.10.254
DNS1=114.114.114.114

jx-gateway-254服务器网络配置:

内部网络:

[root@jx-gateway-254 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=a425c52c-cf03-4aed-acd4-b4e28fc7eccf
DEVICE=enp0s3
ONBOOT=yes
IPADDR=10.10.10.254
NETMASK=255.255.255.0

NAT网络:

[root@jx-gateway-254 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=
DEVICE=enp0s8
ONBOOT=yes
DNS1=114.114.114.114

重启网卡:

ifdwon enp0s8 ; ifup enp0s8

这里创建双网卡的目的是:开发(jx-dev-71)和运维机器(jx-ops-81)只能通过网关路由器(jx-gateway-254)上网。

服务器都部署好以后,可以互相通信的机器:

  • 开发服务器和运维服务器

  • 开发服务器和网关路由器

  • 运维服务器和网关路由器

网关路由器可以上外网,但是开发服务器和运维服务器不能通过网关服务器上外网。

网关服务器需要配置DNAT以及开启内核转发。

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source 10.0.3.15

这条规则的含义是:源是10.10.10.0/24网段内的主机都转给10.0.3.15(网关服务器nat地址)。

开启内核转发:

echo > 1 /proc/sys/net/ipv4/ip_forward

永久变更配置可以这样:

v

更改net.ipv4.ip_forward=1参数

最后执行:sysctl -p

现在可以从开发机和运维机上测试ping baidu.com。如果能够通说明可以上外网了。有时,配置正确网络还是不通那么就把所有虚拟机重启后再测试。

笔记本如何访问虚拟机呢?又不在同一个网段。可以使用端口映射技术,将笔记本空闲端口映射到网关服务器的NAT网卡上。注意virtualbox只有NAT网卡可映射端口!

对应关系:127.0.0.1 5000-> 10.0.3.15 22

然后从网关服务器通过ssh 跳转到开发服务器和运维服务器。

三、业务搭建

在网关服务器上安装lrzsz软件包后可以直接将所需软件包拖动到xshell中,直接上传到服务器上。

yum install -y lrzsz 

业务软件包:

apache-maven-3.6.3.tar.gz

jdk-8u151-linux-x64.tar.gz

tomcat8-cgi.tar.gz

virstu-demo.tar.gz (由maven构建的源码包)

我这里统一上传到/opt目录下。

依次解压并配置系统环境

tar -xvf /opt/jdk-8u151-linux-x64.tar.gz
tar -xvf /opt/apache-maven-3.6.3.tar.gz
tar -xvf /opt/tomcat8-cgi.tar.gz 
tar -xvf /opt/virstu-demo.tar.gz

配置系统环境
vi /etc/profile
最后一行加入
export JAVA_HOME=/opt/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin:/opt/apache-maven-3.6.3/bin
应用:
source  /etc/profile

分别输入java 和 mvn有输出结果证明环境配置成功。

进入virstu-demo.tar.gz 解压目录,将源码构建成可执行文件war包,并拷贝到tomcat的webapps目录下。

cd /opt/virstu
mvn package      ###这步需要联网,下载依赖时间较长。。。
cd tomcat8
cp /opt/virstu/target/virstu.war ROOT.war

启动tomcat服务,并查看服务是否启动。

/opt/tomcat8/bin/startup.sh

[root@jx-dev-71 ~]# ps -ef | grep tomcat | grep -v grep 
root        1387       1  0 18:15 ?        00:00:23 /opt/jdk1.8.0_151/bin/java -Djava.util.logging.config.file=/opt/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Djava.rmi.server.hostname=192.168.1.35 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Djava.endorsed.dirs=/opt/tomcat8/endorsed -classpath /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat8 -Dcatalina.home=/opt/tomcat8 -Djava.io.tmpdir=/opt/tomcat8/temp org.apache.catalina.startup.Bootstrap start

使用mvn源码构建的virstu.war监听80,有2个路径可供访问:静态资源路径:/a.html,动态资源路径:/cgi-bin/a.sh。

可以查看80端口是否有监听,并测试资源路径是否能访问。

[root@jx-dev-71 ~]# lsof -i :80
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    1387 root   53u  IPv6  24058      0t0  TCP *:http (LISTEN)

[root@jx-dev-71 ~]# curl localhost/a.html
<p>ffffffffff</p>

访问动态资源时发现无法访问,查看tomcat日志信息报错。

起因:
[root@jx-dev-71 opt]# curl localhost/cgi-bin/a.sh 
{"timestamp":"2024-12-06T08:51:22.839+00:00","status":500,"error":"Internal Server Error","message":"","path":"/cgi-bin/a.sh"}
日志:
vim /opt/tomcat8/logs/catalina.out
:set nowrap
报错信息:
java.io.IOException: Cannot run program "perl" (in directory "/opt/tomcat8/webapps/ROOT/WEB-INF/cgi"): error=2, No such file or directory

原因系统没有安装perl软件。

安装后测试解析正常:

# yum install -y perl 

# curl localhost/cgi-bin/a.sh
aaaaaaaaaaaaaaa

现在想通过笔记本浏览器方式访问资源。

访问流程:笔记本->127.0.0.1 7180 -> 10.0.3.15 7180 -> 10.10.10.71 80

和之前一样现在需要在网关服务器上写一条DNAT指向业务服务器80端口。

iptables -t nat -A PREROUTING -d 10.0.3.15/32 -p tcp -m tcp --dport 7180 -j DNAT --to-destination 10.10.10.71:80

这条规则的含义是:所有访问网关服务器nat网卡10.0.3.15 的7180 端口的流量都转给10.10.10.71 的80端口.

现在还需要在virtualbox上网关服务器nat网卡配置上添加端口转发规则:

设置-》网络-》nat网卡-》高级-》端口转发
主机ip:127.0.0.1 主机端口:7180 子系统端口:7180

配置完成后可以在浏览器中测试:

http://127.0.0.1:7180/a.html
http://127.0.0.1:7180/cgi-bin/a.sh

0

评论区