全国职业院校技能大赛

网络建设与运维

Linux部分赛题

四、Linux云服务配置

1.系统安装

(1)通过PC1 web连接Server2,给Server2安装rocky-arm64 CLI系统(语言为英文)。

(2)配置Server2的IPv4地址为10.1.220.100/24。

(3)安装qemu和virt-install。

(4)创建rocky-arm64虚拟机,虚拟机硬盘文件保存在默认目录,名称为linuxN.qcow2(N表示虚拟机编号1-9,如虚拟机linux1的硬盘文件为linux1.qcow2,虚拟机linux2的硬盘文件为linux2.qcow2),虚拟机信息如下:

虚拟机名称 vcpu 内存 硬盘 IPv4地址 完全合格域名
linux1 2 4096MB 40GB 10.1.220.101/24 (非指定IP,可根据自身IP地址可随意选择) linux1.skills.lan
linux2 2 4096MB 40GB 10.1.220.102/24 linux2.skills.lan
linux3 2 4096MB 40GB 10.1.220.103/24 linux3.skills.lan
linux4 2 4096MB 40GB 10.1.220.104/24 linux4.skills.lan
linux5 2 4096MB 40GB 10.1.220.105/24 linux5.skills.lan
linux6 2 4096MB 40GB 10.1.220.106/24 linux6.skills.lan
linux7 2 4096MB 40GB 10.1.220.107/24 linux7.skills.lan
linux8 2 4096MB 40GB 10.1.220.108/24 linux8.skills.lan
linux9 2 4096MB 40GB 10.1.220.109/24 linux9.skills.lan

(5)安装linux1,系统为rocky-arm64 CLI,网卡、硬盘、显示驱动均为virtio,网络模式为桥接模式。

(6)关闭linux1,给linux1创建快照,快照名称为linux-snapshot。

(7)根据linux1克隆虚拟机linux2-linux9。

2.dns服务

任务描述:创建DNS服务器,实现企业域名访问。

(1)所有linux主机启用防火墙,防火墙区域为public,在防火墙中放行对应服务端口。

(2)利用chrony,配置linux1为其他linux主机提供NTP服务。

(3)所有linux主机之间(包含本主机)root用户实现密钥ssh认证,禁用密码认证。

(4)利用bind,配置linux1为主DNS服务器,linux2为备用DNS服务器。为所有linux主机提供冗余DNS正反向解析服务。

(5)配置linux1为CA服务器,为linux主机颁发证书。证书颁发机构有效期10年,公用名为linux1.skills.lan。申请并颁发一张供linux服务器使用的证书,证书信息:有效期=5年,公用名=skills.lan,国家=CN,省=Beijing,城市=Beijing,组织=skills,组织单位=system,使用者可选名称=*.skills.lan和skills.lan。将证书skills.crt和私钥skills.key复制到需要证书的linux服务器/etc/ssl目录。浏览器访问https网站时,不出现证书警告信息。

3.ansible服务

任务描述:请采用ansible,实现自动化运维。

  1. 在linux1上安装ansible,作为ansible的控制节点。linux2-linux9作为ansible的受控节点。
  2. 在 linux1 编写/root/skills.yml 剧本,仅在 linux1 节点运行,实现如下功能: 为主控节点和受控节点同时安装 lrzsz 软件

4.apache2服务

任务描述:请采用Apache搭建企业网站。

(1)配置linux1为Apache2服务器,使用skills.lan或any.skills.lan(any代表任意网址前缀,用linux1.skills.lan和web.skills.lan测试)访问时,自动跳转到www.skills.lan。禁止使用IP地址访问,默认首页文档/var/www/html/index.html的内容为”apache”。

(2)把/etc/ssl/skills.crt证书文件和/etc/ssl/skills.key私钥文件转换成含有证书和私钥的/etc/ssl/skills.pfx文件;然后把/etc/ssl/skills.pfx转换为含有证书和私钥的/etc/ssl/skills.pem文件,再从/etc/ssl/skills.pem文件中提取证书和私钥分别到/etc/ssl/apache.crt和/etc/ssl/apache.key。

(3)客户端访问Apache服务时,必需有ssl证书。

5.tomcat服务

任务描述:采用Tomcat搭建动态网站。

(1)配置linux2为nginx服务器,默认文档index.html的内容为“hellonginx”;仅允许使用域名访问,http访问自动跳转到https。

(2)利用nginx反向代理,实现linux3和linux4的tomcat负载均衡,通过https://tomcat.skills.lan加密访问Tomcat,http访问通过301自动跳转到https。

(3)配置linux3和linux4为tomcat服务器,网站默认首页内容分别为“tomcatA”和“tomcatB”,仅使用域名访问80端口http和443端口https;证书路径均为/etc/ssl/skills.jks。

6.samba服务

任务描述:请采用samba服务,实现资源共享。

(1)在linux3上创建user00-user19等20个用户;user00和user01添加到manager组,user02和user03添加到dev组。把用户user00-user03添加到samba用户。

(2)配置linux3为samba服务器,建立共享目录/srv/sharesmb,共享名与目录名相同。manager组用户对sharesmb共享有读写权限,dev组对sharesmb共享有只读权限;用户对自己新建的文件有完全权限,对其他用户的文件只有读权限,且不能删除别人的文件。在本机用smbclient命令测试。

(3)在linux4修改/etc/fstab,使用用户user00实现自动挂载linux3的sharesmb共享到/sharesmb。

7.nfs服务

任务描述:请采用nfs,实现共享资源的安全访问。

(1)配置linux2为kdc服务器,负责linux3和linux4的验证。

(2)在linux3上,创建用户,用户名为xiao,uid=222,gid=222,家目录为/home/xiaodir。

(3)配置linux3为nfs服务器,目录/srv/sharenfs的共享要求为:linux服务器所在网络用户有读写权限,所有用户映射为xiao,kdc加密方式为krb5p。

(4)配置linux4为nfs客户端,利用autofs按需挂载linux3上的/srv/sharenfs到/sharenfs目录,挂载成功后在该目录创建test目录。

8.kubernetes服务

任务描述:请采用kubernetes和containerd,管理容器。

(1)在linux5-linux7上安装containerd和kubernetes,linux6作为master node,linux6和linux7作为work node;使用containerd.sock作为容器runtime-endpoint。导入nginx镜像,主页内容为“HelloKubernetes”。

(2)master节点配置calico,作为网络组件。

(3)创建一个deployment,名称为web,副本数为2;创建一个服务,类型为nodeport,名称为web,映射本机80端口和443端口分别到容器的80端口和443端口。

9.ftp服务

任务描述:请采用FTP服务器,实现文件安全传输。

(1)配置linux2为FTP服务器,安装vsftpd,新建本地用户test,本地用户登陆ftp后的目录为/var/ftp/pub,可以上传下载。

(2)配置ftp虚拟用户认证模式,虚拟用户ftp1和ftp2映射为ftp,ftp1登录ftp后的目录为/var/ftp/vdir/ftp1,可以上传下载,禁止上传后缀名为.docx的文件;ftp2登录ftp后的目录为/var/ftp/vdir/ftp2,仅有下载权限。

(3)使用ftp命令在本机验证。

9.mail服务

任务描述:请采用postfix和dovecot搭建邮件服务器。

(1)配置linux2为mail服务器,安装postfix和dovecot。

(2)仅支持smtps和pop3s连接。

(3)创建用户mail1和mail2,向all@skills.lan发送的邮件,每个用户都会收到。

(4)使用本机测试。

10.iscsi服务

任务描述:请采用iscsi,搭建存储服务。

(1)为linux8添加4块硬盘,每块硬盘大小为5G,创建lvm卷,卷组名为vg1,逻辑卷名为lv1,容量为全部空间,格式化为ext4格式。使用/dev/vg1/lv1配置为iSCSI目标服务器,为linux9提供iSCSI服务。iSCSI目标端的wwn为iqn.2023-08.lan.skills:server, iSCSI发起端的wwn为iqn.2023-08.lan.skills:client。

(2)配置linux9为iSCSI客户端,实现discovery chap和session chap双向认证,Target认证用户名为IncomingUser,密码为IncomingPass;Initiator认证用户名为OutgoingUser,密码为OutgoingPass。修改/etc/rc.d/rc.local文件开机自动挂载iscsi硬盘到/iscsi目录。

11.mariadb服务

任务描述:请安装mariadb服务,建立数据表。

(1)配置linux3为mariadb服务器,创建数据库用户xiao,在任意机器上对所有数据库有完全权限。

(2)创建数据库userdb;在库中创建表userinfo,表结构如下:

字段名 数据类型 主键 自增
id int
name varchar(10)
birthday datetime
sex varchar(5)
password varchar(200)

(3)在表中插入2条记录,分别为(1,user1,2004-7-1,男),(2,user2,2004-7-1,女),password与name相同,password字段用password函数加密。

(4)修改表userinfo的结构,在name字段后添加新字段height(数据类型为float),更新user1和user2的height字段内容为1.61和1.62。

(5)新建/var/mariadbbak/userinfo.txt文件,文件内容如下,然后将文件内容导入到userinfo表中,password字段用password函数加密。

3,user3,1.63,1999-07-03,女,user3

4,user4,1.64,1999-07-04,男,user4

5,user5,1.65,1999-07-05,男,user5

6,user6,1.66,1999-07-06,女,user6

7,user7,1.67,1999-07-07,女,user7

8,user8,1.68,1999-07-08,男,user8

9,user9,1.69,1999-07-09,女,user9

(6)将表userinfo中的记录导出,并存放到/var/dmariadbbak/mysql.sql,字段之间用’,’分隔。

(7)每周五凌晨1:00以root用户身份备份数据库userdb到/var/mariadbbak/userdb.sql(含创建数据库命令)。

12.mysql服务

任务描述:请安装mysql服务,建立数据表。

(1)配置linux2为mysql服务器,创建数据库用户xiao,在任意机器上对所有数据库有完全权限。

(2)创建数据库userdb;在库中创建表userinfo,表结构如下:

字段名 数据类型 主键 自增
id int
name varchar(10)
birthday datetime
sex varchar(5)
password varchar(200)

(3)在表中插入2条记录,分别为(1,user1,1999-07-01,男),(2,user2,1999-07-02,女),password与name相同,password字段用password函数加密。

(4)修改表userinfo的结构,在name字段后添加新字段height(数据类型为float),更新user1和user2的height字段内容为1.61和1.62。

(5)新建/var/mysqlbak/userinfo.txt文件,文件内容如下,然后将文件内容导入到userinfo表中,password字段用password函数加密。

3,user3,1.63,1999-07-03,女,user3

4,user4,1.64,1999-07-04,男,user4

5,user5,1.65,1999-07-05,男,user5

6,user6,1.66,1999-07-06,女,user6

7,user7,1.67,1999-07-07,女,user7

8,user8,1.68,1999-07-08,男,user8

9,user9,1.69,1999-07-09,女,user9

(6)将表userinfo的记录导出,存放到/var/databak/mysql.sql,字段之间用’,’分隔。

(7)每周五凌晨1:00以root用户身份备份数据库userdb到/var/databak/userdb.sql(含创建数据库命令)。

13.podman服务

任务描述:请采用podman,实现无守护程序的容器应用。

(1)在linux3上安装podman,导入rocky镜像。

(2)创建名称为skills的容器,映射本机的8000端口到容器的80端口,在容器内安装apache2,默认网页内容为“HelloPodman”。

(3)配置podman私有仓库。

14.redis服务

任务描述:请采用redis服务,实现高并发数据和海量数据的读写。

(1)利用linux2搭建redis cluster集群,使用端口7001-7003模拟主节点,7004-7006模拟从节点,让其他主机可以访问redis集群。

13.postgresql服务

任务描述:请采用postgresql服务,实现数据存储。

(1)配置linux3为postgresql服务器,创建数据库userdb,在该数据库中创建表userinfo,在表中插入2条记录,分别为(1,user1,2004-7-1),(2,user2,2004-7-2),口令与用户名相同,password字段用md5函数加密,表结构如下:

字段名 数据类型 主键
id serial
name varchar(10)
birthday date
password varchar(100)

(2)设置可以直接在shell下操作数据库,然后备份数据库userdb(含创建数据库命令)到/var/pgbak/userdb.sql;备份userinfo表记录到/var/pgbak/userinfo.sql,字段之间用’,’分隔。

15.containerd服务

任务描述:请采用containerd,实现容器虚拟化技术。

(1)在linux4上安装containerd,导入rocky镜像。

(2)创建名称为skills的容器,映射本机的8000端口到容器的80端口,在容器内安装apache2,默认网页内容为“HelloContainerd”。

13.开发环境搭建

任务描述:实现linux系统编程开发环境搭建。

(1)配置linux4为c语言、c++语言和go语言编译环境。

17.python脚本

(1)在linux4上编写/root/createfile.py的python3脚本,创建20个文件/root/python/file00至/root/python/file19,如果文件存在,则删除再创建;每个文件的内容同文件名,如file00文件的内容为“file00”。