RHCE中级项目

news2024/11/15 21:48:50

一、项目需求

1、在 bbs.example.com 主机上创建 Discuz 论坛,数据库服务器使用 db.example.com 主机的 bbs 数据库实例,该实例由 MySQL数据库软件提供服务。

2、在 ntp.example.com 主机上创建 NTP 服务,该服务由 Chronyd软件提供服务,将时间服务器上连到 time.windows.com 主机,允许内网所有主机从该主机同步时间。

3、在dns.example.com主机上创建 DNS 服务,该域内所有域名解析请求由该服务器提供解析,同时,该主机也为内网所有主机提供DNS转发服务。

4、在上面所有主机上保持服务在重启系统之后依然能够自动启动,同时,开启防火墙和 SELinux 服务。

5、使用 Shell脚本完成 Mysql 数据的每天晚上1点整做全局备份,将备份通过脚本传递到 data.example.com 主机的 /backup/ 目录下。

6、使用 Shell 脚本和 Ansible playbook 完成以上所有内容,将内容尽可能自动化在无人值守的情况下实现出现问题自动判断,自动解决问题。

7、如果机器不够,可酌情使用一台虚拟机完成任务。

二、项目实现

需求 01

 一、搭建MySQL服务器

1、安装软件包

[root@bbs ~]# yum install -y mariadb mariadb-server

2、启动MySQL数据库,并完成基础配置

[root@bbs ~]# systemctl enable --now mariadb
[root@bbs ~]# mysql_secure_installation

Enter current password for root (enter for none): 按回车(Enter键)直接进入数据库
OK, successfully used password, moving on...

Switch to unix_socket authentication [Y/n]:输入 n 跳过安全保护
 ... skipping.

Change the root password? [Y/n] :输入 y 确认修改密码
New password: 输入新密码
Re-enter new password: 输入新密码
Password updated successfully!

Remove anonymous users? [Y/n]:输入 y 删除匿名用户
 ... Success!

Disallow root login remotely? [Y/n]:输入 n 允许用户远程登录
 ... skipping.

Remove test database and access to it? [Y/n]:输入 y 删除测试数据库并接入数据库
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n]:输入 y 重新加载权限表
 ... Success!

 3、登录MySQL数据库,并创建所需数据

[root@localhost ~]# mysql -u root -p
Enter password: 密码root

MariaDB [(none)]> CREATE DATABASE bbs;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> CREATE USER 'bbs_user'@'bbs.example.com' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON bbs.* TO 'bbs_user'@'bbs.example.com';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.111.131' IDENTIFIED BY 'root' WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)
允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> EXIT;
Bye

 4、关闭防火墙和更改SELinux模式

[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld.service 

二、搭建Discuz论坛服务器

1、安装软件包(httpd、php、mysql),并开机自启动

[root@bbs ~]# yum install -y httpd
[root@bbs ~]# yum install -y php php-devel php-mysqlnd
[root@bbs ~]# systemctl enable --now httpd

2、下载和安装Discuz

1>在 bbs.example.com 上创建一个网站目录
[root@localhost ~]# mkdir /var/www/html/discuz
2>上传或下载最新Discuz并解压缩
[root@localhost ~]# unzip Discuz_X3.4_SC_UTF8_20210520.zip -d /var/www/html/discuz
3>给与discuz目录具有适当的权限
[root@localhost ~]# chown -R apache:apache /var/www/html/discuz
[root@localhost ~]# chmod -R 777 /var/www/html/discuz

3、关闭防火墙和更改SELinux模式 

[root@localhost upload]# setenforce 0
[root@localhost upload]# systemctl stop firewalld.service

4、用浏览器打开Discuz的安装目录

http://192.168.111.131/discuz/Discuz_X3.4_SC_UTF8_20210520/upload/install/

5、进行图形界面的Discuz安装

 

 

  

6、配置Apache HTTP服务器 

 1>创建一个新的Apache配置文件
vim /etc/httpd/conf.d/discuz.conf
<VirtualHost *:80>
    ServerName bbs.example.com
    DocumentRoot /var/www/html/discuz
    <Directory /var/www/html/discuz>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
2>重启Apache 服务器
[root@bbs ~]# systemctl restart httpd

需求 02

 一、ntp.example.com主机

1、修改主机名并重启

[root@localhost ~]# hostnamectl set-hostname ntp.example.com
[root@localhost ~]# reboot

2、修改配置文件,允许time.windows.com主机进行注册

# Allow NTP client access from local network.
allow 192.168.111.132

3、关闭防火墙

[root@localhost ~]# systemctl stop firewalld

4、重启chronyd服务

[root@localhost ~]# systemctl restart chronyd.service

二、time.windows.com主机

1、修改主机名并重启

[root@localhost ~]# hostnamectl set-hostname time.windows.com
[root@localhost ~]# reboot

 2、修改配置文件,向ntp.example.com主机,且允许内网所有主机从该主机同步时间

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
#pool 2.rhel.pool.ntp.org iburst
server 192.168.111.131 iburst

# Allow NTP client access from local network.
allow all

 3、关闭防火墙

[root@localhost ~]# systemctl stop firewalld

4、重启chronyd服务

[root@localhost ~]# systemctl restart chronyd.service

三、查看时间源

[root@localhost ~]# watch chronyc sources

需求 03 

一、DNS域名“正向”解析

1、修改主机名并重启

[root@localhost ~]# hostnamectl set-hostname dns.example.com
[root@localhost ~]# reboot

2、安装软件包,并查看版本号

[root@dns ~]# yum install -y bind
[root@dns ~]# rpm -qf /usr/bin/dig

3、配置/etc/named.conf文件

[root@dns ~]# vim /etc/named.conf

options{
        listen-on port 53 { 192.168.111.131; };
        directory       "/var/named";
};

zone "bbs.example.com" IN {
                type master;
                file "bbs.example.com";
};

zone "db.example.com" IN {
                type master;
                file "db.example.com";
};

zone "ntp.example.com" IN {
                type master;
                file "ntp.example.com";
};

zone "data.example.com" IN {
                type master;
                file "data.example.com";
};

4、配置/var/named/named.com区域文件

iokju[root@dns ~]# vim /var/named/bbs.example.com /i8u9
$TTL 1D
@   IN SOA  @ admin.example.com. (
                    0
                    1D
                    1D
                    1D
                    1D
)
    IN  NS  dns.example.com.
dns IN  A   192.168.111.131
bbs IN  A   192.168.111.130

[root@dns ~]# vim /var/named/db.example.com 
$TTL 1D
@   IN SOA  @ admin.example.com. (
                    0
                    1D
                    1D
                    1D
                    1D
)
    IN  NS  dns.example.com.
dns IN  A   192.168.111.131
db  IN  A   192.168.111.129

[root@dns ~]# vim /var/named/ntp.example.com
$TTL 1D
@   IN SOA  @ admin.example.com. (
                    0
                    1D
                    1D
                    1D
                    1D
)
    IN  NS  dns.example.com.
dns IN  A   192.168.111.131
ntp IN  A   192.168.111.128

[root@dns ~]# vim /var/named/data.example.com
$TTL 1D
@   IN SOA  @ admin.example.com. (
                    0
                    1D
                    1D
                    1D
                    1D
)
    IN  NS  dns.example.com.
dns IN  A   192.168.111.131
data IN  A   192.168.111.127

二、DNS域名“反向”解析

1、配置vim/etc/named.comf文件

[root@dns ~]# vim /etc/named.conf

options{
        listen-on port 53 { 192.168.111.131; };
        directory       "/var/named";
};

zone "bbs.example.com" IN {
                type master;
                file "bbs.example.com";
};

zone "db.example.com" IN {
                type master;
                file "db.example.com";
};

zone "ntp.example.com" IN {
                type master;
                file "ntp.example.com";
};

zone "data.example.com" IN {
                type master;
                file "data.example.com";
};

zone "111.168.192.in-addr.arpa" IN {
    type master;
    file "named.reverse.com";
};

注:xxx--->ip所在网段  192.168.111.131/24   192.168.111.0   64.168.192(反着写)

2、配置/var/named/named.ixah.com区域文件

[root@dns ~]# vim /var/named/named.reverse.com

$TTL 1D
@       IN  SOA  @  admin.example.com. (
                                 0
                                 1D
                                 1D
                                 1D
                                 1D)
            IN     NS   ns.haxi.com.
130   IN    PTR    bbs.example.com.
129   In    PTR    db.example.com.
128   In    PTR    ntp.example.com.
127   IN    PTR    data.example.com.

需求 04 

1、bbs.example.com主机

[root@localhost ~]# firewall-cmd --permanent --add-port=22/tcp
success
[root@localhost ~]# firewall-cmd --reload
success

2、db.example.com主机

3、ntp.example.com主机

4、dns.example.com主机

5、data.example.com主机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/731527.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GoLang网络编程:HTTP服务端之底层原理与源码分析——http.HandleFunc()、http.ListenAndServe()

一、启动 http 服务 import ("net/http" ) func main() {http.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) {w.Write([]byte("ping...ping..."))})http.ListenAndServe(":8999", nil) }在 Golang只需要几行代…

第三章 SSD存储介质:闪存 3.4

3.4 闪存数据完整性 可采用以下数据完整性的技术确保用户数据不丢失&#xff1a; &#xff08;1&#xff09;ECC纠错&#xff1b; &#xff08;2&#xff09;RAID数据恢复&#xff1b; &#xff08;3&#xff09;重读&#xff08;Read Retry&#xff09;&#xff1b; &#xff…

C/C++指针从0到99(详解)

目录 一&#xff0c;指针的基础理解 二&#xff0c;指针的基本使用 三&#xff0c;为什么要用指针 四&#xff0c;指针与数组的联系 五&#xff0c;指针的拓展使用 1&#xff09;指针数组 2)数组指针 3&#xff09;函数指针 结构&#xff1a;返回类型 &#xff08;*p)…

我国新能源汽车存量已突破1620万辆,登记数量创历史新高

根据公安部发布的最新数据&#xff0c;截至2023年6月底&#xff0c;全国的机动车数量达到4.26亿辆&#xff0c;其中汽车数量为3.28亿辆&#xff0c;新能源汽车数量为1620万辆。与此同时&#xff0c;机动车驾驶人口达到5.13亿人&#xff0c;其中汽车驾驶人口为4.75亿人。在2023年…

Zabbix监控软件 Linux外多平台监控【Windows JAVA SNMP】

在之前的博客中&#xff0c;已经介绍了zabbix的安装&#xff0c;配置&#xff0c;以及如何用zabbix监控Linux服务器。这篇博客则介绍zabbix监控的其他几种方式&#xff08;Windows服务器 Java应用 SNMP&#xff09;。 -------------------- Zabbix 监控 Windows 系统 ---------…

传统图像处理之图像美化——图像金字塔

代码实战&#xff1a;图像融合 我将肯巴.沃克和约翰.沃尔融合在了一起。 具体见注释。 import numpy as np import cv2 import scipy.ndimage as ndimageimg cv2.imread("1.png")img1 cv2.imread("2.png")imgcv2.resize(img,(192,192)) img1cv2.resiz…

JVM调优的相关命令

在进行JVM调试时&#xff0c;熟练使用Linux和Java命令是非常重要的&#xff0c;有利于我们快速发现问题&#xff0c;并进行解决。平时常用的命令有&#xff1a;Linux的Top、Top -Hp等&#xff1b;Java的Jps、Jinfo、Jstack、Jstat、Jmap、Jhat等。下面&#xff0c;我将逐一介绍…

【技能实训】Day01

文章目录 任务1 项目准备一、开发环境二、系统简介三、项目创建 任务2【任务2.1】菜单项设计及其测试【任务2.2】使用数组存储采集的数据【任务2.3】控制显示采集的数据 任务1 项目准备 一、开发环境 1.JDK8下载及其环境变量配置(JDK8以上版本) 2.IDE &#xff1a;Eclipse 或…

多边形连接器PolygonConnector

PolygonConnector将多个多边形连接在一起 PolygonConnectorTest用于测试PolygonConnector Polygon test_square; Polygon test_square_around

关于IIS安全设置http能访问https不能访问的解决方案

最近折腾IIS&#xff0c;发现网站的http能访问但是https不能访问。 我确认所有关于HTTPS的配置我都配置正确了&#xff0c;结果还是不能访问&#xff0c;一番折腾发现&#xff0c;服务器本身的防火墙和阿里云服务器的安全组规则不是一回事。改完防火墙也没有用&#xff0c;重要…

【前端】网页开发精讲与实战 HTML Day 1

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;前端 &#x1f4ac;总结&#xff1a;希望你看完之后&#xff0c;能对你有…

OpenCV使用ellipse()函数来绘制一个椭圆

/*** void ellipse(* InputOutputArray img, // 图像* Point center, // 椭圆原心* Size axes, // 椭圆x轴长度的一半,y轴长度的一半* double angle, // 椭圆旋转角度* double startAngle, // 起始角度* double endAngle, // 终止角度* const Scalar& color, // 椭圆颜色*…

整数序列(山东大学考研机试题)

整数序列 题目链接:3717. 整数序列 - AcWing题库 /* 纯暴力 刚开始以为挺难的结果是个暴力题 */ #include<iostream> using namespace std; int main() {int n;cin>>n;int f0;for(int i1;i<n/2;i){int sum 0;for(int ji;j<n/21;j){sumj;if(sumn){f1;for(int…

手机怎么设置四小时后提醒我休息,防止疲劳驾驶?

很多开车的人都知道&#xff0c;连续驾驶4个小时后需要至少休息20分钟&#xff0c;否则很容易出现疲劳驾驶的情况。但在开车的时候需要专注&#xff0c;很容易忘记按时休息&#xff0c;手机怎么设置四小时后提醒我休息&#xff0c;防止疲劳驾驶呢&#xff1f; 其实使用一款支持…

开放式耳机是什么意思?开放式耳机和封闭式耳机哪个好?

开放式耳机相比传统入耳式耳机&#xff0c;开放式耳机不会堵塞耳道&#xff0c;使用时可以开放双耳&#xff0c;不影响与他人的正常交流。还有很多朋友问开放式耳机和封闭式耳机哪个好&#xff1f;开放式耳机有哪些推荐好&#xff1f;等问题。 开放式耳机作为一种新兴的蓝牙耳…

String的hashCode为什么选择31作为乘子?

目录 hashCode()源码val[i] 是中文怎么办&#xff1f;如果是中文char的整数值是多少&#xff1f;注释中的计算方法为什么不用更大的数&#xff0c;比如101作为乘数&#xff1f;为啥用31了&#xff1f; hashCode()源码 先看下String类的源码&#xff0c;31出现在hashCode()方法…

Window操作系统---屏蔽蓝牙绝对音量

绝对音量定义&#xff1a; 关闭绝对音量方法&#xff1a;在系统注册表里修改 在运行输入框中输入&#xff1a;regedit 设置方法&#xff1a; 把DisableAbsoluteVolume的值改为&#xff1a;1

解释齐次坐标和投影几何

以前的翻译文章&#xff0c;存档。翻译自&#xff1a;https://www.tomdalling.com/blog/modern-opengl/explaining-homogenous-coordinates-and-projective-geometry/&#xff0c; 有改动 在本文中&#xff0c;我将尽可能简单地解释齐次坐标(即4D坐标)。在之前的文章中&#xf…

【MySQL练习及单表查询】

一、MySQL练习 一.创建表&#xff1a; 创建员工表employee&#xff0c;字段如下&#xff1a; id&#xff08;员工编号&#xff09; name&#xff08;员工名字&#xff09; gender&#xff08;员工性别&#xff09; salary&#xff08;员工薪资&#xff09; 二.插入数据 1&…

C++primer(第五版)第十四章(重载运算与类型转换)

14.1基本概念 重载运算符和重载其他函数差不多,运算符有多少参数,那么重载运算符就有多少参数.不同的是重载运算符有名字方面的限制,是operator加上运算符号.且除了函数调用运算符()之外,不允许有默认实参. 以上其中逻辑与运算符,逻辑或运算符,逗号运算符,取地址运算符不推荐…