### 2.dns 服务
任务描述:创建 DNS 服务器,实现企业域名访问。
(1)配置 linux 主机的 IP 地址和主机名称。
(2)所有 linux 主机启用防火墙(kubernetes 服务主机除外5-7),防火墙区域为 public,在防火墙中放行对应服务端口。
[root@linux1~9 ~]# systemctl enable firewalld (5-7不用启用防火墙 )
[root@linux1~9 ~]# systemctl start firewalld
(3)所有 linux 主机之间(包含本主机)root 用户实现密钥 ssh 认证,禁用密码认证。
[root@linux1~9 ~]# ssh-keygen -t rsa
(4)利用 chrony,配置 linux1 为其他 linux 主机提供 NTP 服务。
[root@linux1 ~]# vim /etc/chrony.conf
3 Server 10.4.220.101 iburst
[root@linux1 ~]# timedatectl
(5)利用 bind,配置 linux1 为主 DNS 服务器,linux2 为备用 DNS 服务器,为所有 linux 主机提供冗余 DNS 正反向解析服务。正向区域文件均 为 /var/named/named.skills , 反 向 区 域 文 件 均 为/var/named/named.10。
linux1
```shell
[root@linux1 ~]# yum -y install bind bind-utils
[root@linux1 ~]# vim /etc/named.conf
[root@linux1 ~]# vim /etc/named.rfc1912.zones
[root@linux1 ~]# nslookup linux1~9.skills.lan
(6)配置 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/pki/tls 目录。浏览器访问 https 网站时,不出现证书警告信息。
```shell
[root@linux1 ~]# yum -y install openssl*
```
### 3.ansible 服务
任务描述:请采用 ansible,实现自动化运维。
(1)在linux1上安装系统自带的ansible-core,作为ansible控制节点。linux2-linux9 作为 ansible 的受控节点。
```shell
[root@linux1 ~]# yum -y install ansible
[root@linux1 ~]# vim /etc/ansible/hosts
```
(2)在 linux1 上安装 ansible,作为 ansible 的控制节点。linux2-linux7 作为 ansible 的受控节点。在 linux1 编写/root/skills.yaml 剧本,实现在 linux1创建文件/root/ansible.txt,并将该文件复制到所有受控节点的/root 目录。
### 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 的内容为"HelloApache"。
```shell
[root@linux1 ~]# yum -y install httpd mod_ssl
[root@linux1 ~]# systemctl enable httpd.service --now
```
(2)把/etc/pki/tls/skills.crt 证书文件和/etc/pki/tls/skills.key私钥文件转换成含有证书和私钥的/etc/pki/tls/skills.pfx 文件;然后把 /etc/pki/tls/skills.pfx 转 换 为 含 有 证 书 和 私 钥 的/etc/pki/tls/skills.pem 文件,再从/etc/pki/tls/skills.pem 文件 中 提 取 证 书 和 私 钥 分 别 到 /etc/pki/tls/apache.crt 和/etc/pki/tls/apache.key。
```shell
[root@linux1 ~]# cd /etc/pki/tls
```
(3)客户端访问 Apache 服务时,必需有 ssl 证书。
```shell
[root@linux1 tls]# vim /etc/httpd/conf.d/ssl.conf
43 DocumentRoot "/var/www/html"
[root@linux1 tls]# systemctl restart httpd
```
### 5.nginx 和 tomcat 服务
任务描述:利用系统自带 openjdk 和 tomcat,搭建 Tomcat 动态网站。
(1)配置 linux2 为 nginx 服务器,默认文档 index.html 的内容为“HelloNginx”;仅允许使用域名访问,http 访问自动跳转到 https。
```shell
[root@linux2 ~]# yum -y install nginx
[root@linux2 ~]# lynx linux2.skills.lan
```
(2)利用 nginx 反向代理,实现 linux3 和 linux4 的 tomcat 负载均衡,通过 https://tomcat.skills.lan 加密访问 Tomcat,http 访问通过301 自动跳转到 https。
(3)配置 linux3 和 linux4 为 tomcat 服务器,网站默认首页内容分别为“tomcatA”和“tomcatB”,采用修改配置文件端口形式,仅使用域名访问 80 端口 http 和 443 端口 https。
```shell
[root@linux3 tls]# keytool -importkeystore -srckeystore skills.pfx -srcstoretype pkcs12 -destkeystore skills.jks -deststoretype JKS
[root@linux4 tls]# systemctl restart tomcat
[root@linux4 tls]# ss -tunlp | grep java
[root@linux4 tls]# curl linux3.skills.lan
[root@linux4 tls]# curl --cacert skills.crt https://linux3.skills.lan
```
linux2
```shell
[root@linux2 ~]# vim /etc/nginx/conf.d/
server {
listen
server_name
ssl_certificate
ssl_certificate_key
return ;
}
[root@linux2 ~]# systemctl restart nginx
```
### 6.samba 服务
任务描述:请采用 samba 服务,实现资源共享。
(1)在 linux3 上创建 user00-user19 等 20 个用户;user00 和 user01 添加到 manager 组,user02 和 user03 添加到 dev 组。把用户 user00-user03 添加到 samba 用户。
```shell
[root@linux3 ~]# yum -y install samba samba-client
[root@linux3 ~]# systemctl start smb
(2)配置 linux3 为 samba 服务器,建立共享目录/srv/sharesmb,共享名与目录名相同。manager 组用户对 sharesmb 共享有读写权限,dev 组对 sharesmb 共享有只读权限;用户对自己新建的文件有完全权限,对其他用户的文件只有读权限,且不能删除别人的文件。在本机用smbclient 命令测试。
```shell
[root@linux3 ~]# systemctl restart smb
[root@linux3 ~]# smbclient -L 10.4.220.103
```
(3)在 linux4 修改/etc/fstab,使用用户 user00 实现自动挂载 linux3 的sharesmb 共享到/sharesmb。
```shell
[root@linux4 ~]# mkdir /sharesmb
```
### 7.nfs 服务
任务描述:请采用 nfs,实现共享资源的安全访问。
(1)配置 linux2 为 kdc 服务器,负责 linux3 和 linux4 的验证。
```shell
[root@linux2 ~]# yum -y install krb5
```
(2)在 linux3 上,创建用户,用户名为 xiao,uid=2222,gid=2222,家目录为/home/xiaodir。
```shell
[root@linux3 ~]# id xiao
```
(3)配置 linux3 为 nfs 服务器,目录/srv/sharenfs 的共享要求为:linux服务器所在网络用户有读写权限,所有用户映射为 xiao,kdc 加密方式为 krb5p。
(4)配置 linux4 为 nfs 客户端,利用 autofs 按需挂载 linux3 上的/srv/sharenfs 到/sharenfs 目录,挂载成功后在该目录创建 test 目录。
```shell
[root@linux4 sharenfs]# df -Th
```
### 9.iscsi 服务
任务描述:请采用 iscsi,搭建存储服务。
(1)为 linux8 添加 4 块磁盘,每块磁盘大小为 5G,创建 lvm 卷,卷组名称为 vg1,逻辑卷名称为 lv1,容量为全部空间,格式化为 ext4 格式。使用/dev/vg1/lv1 配置为 iSCSI 目标服务器,为 linux7提供 iSCSI服务。iSCSI 目标端的 wwn 为 iqn.2008-01.lan.skills:server,iSCSI发起端的 wwn 为 iqn.2008-01.lan.skills:client1.
```shell
[root@linux8 ~]# lsblk
/> ls
```
(2)配置 linux7 为 iSCSI 客户端,实现 discovery chap 和 session chap双向认证,Target 认证用户名为 IncomingUser,密码为 IncomingPass;Initiator 认证用户名为 OutgoingUser,密码为 OutgoingPass。修改/etc/rc.d/rc.local 文件开机自动挂载 iscsi 磁盘到/iscsi 目录。
在linux8上设置双向认证
```shell
/iscsi/iqn.20...skills:client1> get auth
/iscsi> get discovery_auth
```
linux7
```shell
[root@linux7 ~]# lsblk
```
### 10.mariadb 服务
任务描述:请安装 mariadb 服务,建立数据表。
(1)配置 linux3 为 mariadb 服务器,创建数据库用户 xiao,在任意机器上对所有数据库有完全权限。
[root@linux3 ~]# yum -y install mariadb-S
(2)配置linux4为mariadb客户端,使用数据库用户xiao远程登录mariadb,创建数据库 userdb;在库中创建表 userinfo,表结构如下:
| 字段名 | 数据类型 | 主键 | 自增 |
| :------: | :----------: | :--: | :--: |
| id | int | 是 | 是 |
| name | varchar(10) | 否 | 否 |
| height | float | 否 | 否 |
| birthday | datetime | 否 | 否 |
| sex | varchar(5) | 否 | 否 |
| password | varchar(200) | 否 | 否 |
MariaDB [(none)]> use userdb;
MariaDB [userdb]> desc userinfo;
```
(3)在表中插入 2 条记录,分别为(1,user1,1.61,2000-07-01,M),(2,user2,1.62,2000-07-02,F),password 字段与 name 字段相同,password 字段用 md5 函数加密。
```shell
MariaDB [userdb]> select * from userinfo;
```
(4)新建/var/mariadb/userinfo.txt 文件,文件内容如下,然后将文件内容导入到 userinfo 表中,password 字段用 md5 函数加密。
3,user3,1.63,2000-07-03,F,user3
4,user4,1.64,2000-07-04,M,user4
5,user5,1.65,2000-07-05,M,user5
6,user6,1.66,2000-07-06,F,user6
7,user7,1.67,2000-07-07,F,user7
8,user8,1.68,2000-07-08,M,user8
9,user9,1.69,2000-07-09,F,user9
```shell
[root@linux3 ~]# vi /var/mariadb/userinfo.txt
3,user3,1.63,2000-07-03,F,user3
4,user4,1.64,2000-07-04,M,user4
5,user5,1.65,2000-07-05,M,user5
6,user6,1.66,2000-07-06,F,user6
7,user7,1.67,2000-07-07,F,user7
8,user8,1.68,2000-07-08,M,user8
9,user9,1.69,2000-07-09,F,user9
```
(5)将表 userinfo 中的记录导出,并存放到/var/mariadb/userinfo.sql,字段之间用','分隔。
(6)为 root 用户创建计划任务(day 用数字表示),每周五凌晨 1:00 备份数据库 userdb(含创建数据库命令)到/var/mariadb/userdb.sql。(为便于测试,手动备份一次。)
### 11.ftp 服务
任务描述:请采用 ftp 服务器,实现文件安全传输。
1.配置 linux1 为 ftp 服务器,安装 vsftpd,新建本地用户 jack,本地用户登陆 ftp 后的目为/var/ftp/pub,可以上传下载。
=
[root@linux1 ~]# yum -y install vsftpd ftp
[root@linux1 ~]# systemctl enable vsftpd --now
[root@linux1 ~]# useradd jack
[root@linux1 ~]# passwd jack
[root@linux1 ~]# ftp 10.4.220.101
ftp> put anaconda-ks.cfg
ftp> get anaconda-ks.cfg
2.配置 ftp 虚拟用户认证模式,虚拟用户 ftp1 和 ftp2 映射为 ftp,ftp1 登录 ftp 后的目录为/var/ftp/vdir/ftp1,可以上传下载,禁止上传后缀名为.sh 的文件;ftp2 登录 ftp 后的目录为/var/ftp/vdir/ftp2,仅有下载权限
[root@linux1 vsftpd]# cd
[root@linux1 ~]# systemctl restart vsftpd
3.使用 ftp 命令在本机验证。
[root@linux1 ftp1 ]# ftp 10.4.220.101
Connected to 10.4.220.101 (10.4.220.101).
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put ftp1.txt
ftp> get ftp1.txt
[root@linux1 ftp2 ]# ftp 10.4.220.101
Connected to 10.4.220.101 (10.4.220.101).
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put ftp2.txt
ftp> get ftp2.txt
### 12.postgresql 服务
任务描述:请采用 postgresql 服务,实现数据存储。
1.配置 linux5 为 postgresql 服务器,创建数据库 userdb;在库中创建表userinfo,在表中插入 2 条记录,分别为(1,user1,2005-6-1),(2,user2,2005-6-2),口令与用户名相同,password 字段用 md5 函数加密,表结构如下:
| 字段名 | 数据类型 | 主键 |
| :------: | :----------: | :--: |
| id | serial | 是 |
| name | varchar(10) | 否 |
| birthday | date | 否 |
| password | varchar(100) | 否 |
[root@linux5 ~]# yum -y install postgresql
userdb=# select * from userinfo;
2.设置可以直接在 shell 下操作数据库,然后备份数据库 userdb(含创建数据库命令)到/var/postgresqlbak/userdb.sql;备份 userinfo 表记到/var/postgresqlbak/userinfo.sql,字段之间用','分隔。
[root@linux5 ~]# chmod 777 /var/postgresqlbak
### 13.wordpress 服务
任务描述:请采用 wordpress 服务,为企业建立博客。
1.在 linux5 配置 python3.9、c 语言和 c++语言的编译环境。
[root@linux5 ~]# yum -y install python
2.安装 apache2、mariadb-server、php 和 wordpress。
[root@linux5 ~]# yum -y install httpd
3.创建数据库 wordpress,供 wordpress 服务使用。创建用户 xiao,对wordpress 数据库有完全权限。
[root@linux5 ~]# mysql -u root -p
MariaDB [(none)]> FLUSH PRIVILEGES;
4.创建数据库 userdb;在数据库中创建数据表 userinfo,在表中插入 2 条记录,分别为(1,user1,2005-8-1,男),(2,user2,2005-8-2,女),口令与用户名相同,password 字段用 password 函数加密,表结构如下:
| 字段名 | 数据类型 | 主键 | 自增 |
| :------- | :----------- | :--- | ---- |
| id | int | 是 | 是 |
| name | varchar(10) | 否 | 否 |
| birthday | datetime | 否 | 否 |
| sex | char(8) | 否 | 否 |
| password | varchar(200) | 否 | 否 |
MariaDB [(userdb)]> desc userinfo;
5.备份数据库 userdb 到/var/mariadbbak/userdb.sql(含创建数据库命令);将表 userinfo 中的记录导出,并存放到/var/mariadbbak/userinfo.sql 文件中,字段之间用','分隔。
[root@linux5 ~]# mysql -u root -p
6.网站默认文档/var/www/html/index.html 的内容为"wordpress"。访问根网站时,http 不自动跳转到 https。
[root@linux5 ~]# echo "wordpress" > /v
7.利 用 wordpress 搭 建 博 客 网 站 , 站 点 标 题 为 "skillsblog" 。使用http://linux5.skills.lan/wordpress 访问,http 临时自动跳转到 https。
[root@linux5 ~]# cd /var/www/html/
### 14.pxe 服务
任务描述:请采用 pxe 服务,实现批量安装 linux 操作系统。
1.linux5 安装 DHCP 服务,地址范围为 10.4.220.10-10.4.220.19,网关为 10.4.220.1,dns 为 10.4.220.101,域名为 skills.lan。
```shell
[root@linux5 ~]# yum -y install dhcp-server tftp-server httpd
[root@linux5 ~]# vi /usr/share/doc/dhcp-server/dhcpd.conf.example
47 subnet 10.5.5.0 netmask 255.255.255.224 {
48 range 10.5.5.26 10.5.5.30;
55 }
[root@linux5 ~]# vim /etc/dhcp/dhcpd.conf #按p粘贴修改
6 subnet 10.4.220.0 netmask 255.255.255.224 {
13 }
[root@linux5 ~]# systemctl restart dhcpd
[root@linux5 ~]# systemctl enable dhcpd.service --now
```
2.安装 tftp-server,tftp 目录为默认值。
3.挂载linux光盘文件到/var/www/html/cdrom;实现完全自动安装linux文 字界面,配置文件为/var/www/html/ks.cfg(参考/root/anaconda-ks.cfg),在 /var/lib/tftpboot/pxelinux.cfg/default 文件中指定安装源和 ks 文件。
### 15.redis 服务
任务描述:请采用 redis 服务,实现高并发数据和海量数据的读写。
1.利用 linux6 搭建 redis cluster 集群,使用端口 8001-8003 模拟主节点,8004-8006 模拟从节点,让其他主机可以访问 redis 集群
[root@linux6 ~]# yum -y install redis
### 16.mail 服务
任务描述:请采用 postfix 邮件服务器,实现安全的邮件服务。
1.配置 linux5 为 mail 服务器,安装 postfix 和 dovecot。
2.仅支持 smtps 和 pop3s 连接。
[root@linux5 ~]# yum -y install postfix dovecot
3.创建用户 mail1 和 mail2,向 all@skills.lan 发送的邮件,每个用户都会收到。
[root@linux5 ~]# useradd mail1
[root@linux5 ~]# useradd mail2
4.安装mailx使用本机测试。
Welcome
### 17.podman 服务
任务描述:请采用 podman,实现容器虚拟化技术。
(1)在 linux3 上安装 podman,导入 rockylinux-9.tar 镜像。
### 18.开发环境搭建(完成)
任务描述:搭建开发环境。
(1)在 linux4 上搭建开发环境。利用系统 iso 文件,搭建 c 语言、c++语言、rust 语言开发环境。
scp rust-1.74.0-x86
(2)在/rust目录下编写一个rust程序源文件,名称为hello.rs,编译并运行该文件,使其打印出“Hello,Word!”字样。
Hello,World!
### 19.脚本
任务描述:请采用脚本,实现快速批量的操作**。**
1.在 linux4 上编写/root/createfile.py 的 python3 脚本,创建 20 个文件/root/python/file00至/root/python/file19,如果文件存在,则删除后再创建;每个文件的内容同文件名,如 file00 文件的内容为“file00”。
[root@linux4 ~]# yum -y install python36
[root@linux4 ~]# cd python/
### 20.shell脚本
任务描述:请采用shell脚本,实现快速批量的操作。
(1)在linux8上编写/root/createfile.sh的shell脚本,创建20个文件/root/shell/file00至/root/shell/file19,如果文件存在,则删除再创建;每个文件的内容同文件名,如file00文件的内容为“file00”。用/root/createfile.sh命令测试。
[root@linux8 ~]# mkdir /root/shell
[root@linux8 shell]# ls
### 21.系统运维
任务要求:为保证 linux9 系统稳定性,请在不破坏原有服务的基础上,升级 linux9 的内核 kernel,删除旧版本 kernel。
需要完整答案的私聊我