LINUX 第十九天 学习笔记

一、学习内容提炼

第18章 使用MariaDB数据库管理系统

MySQL数据库项目自从被Oracle公司收购之后,从开源软件转变成为了“闭源”软件,这导致IT行业中的很多企业以及厂商纷纷选择使用了数据库软件的后起之秀—MariaDB数据库管理系统。MariaDB数据库管理系统也因此快速占据了市场。
LINUX 第十九天 学习笔记_第1张图片

18.1 数据库管理系统

数据库是指按照某些特定结构来存储数据资料的数据仓库。数据库技术也从最初只能存储简单的表格数据的单一集中存储模式,发展到了现如今存储海量数据的大型分布式模式。

数据库管理系统是一种能够对数据库中存放的数据进行建立、修改、删除、查找、维护等操作的软件程序。它通过把计算机中具体的物理数据转换成适合用户理解的抽象逻辑数据,有效地降低数据库管理的技术门槛,因此即便是从事Linux运维工作的工程师也可以对数据库进行基本的管理操作。

MySQL是一款市场占有率非常高的数据库管理系统,技术成熟、配置步骤相对简单,而且具有良好的可扩展性。但是,由于Oracle公司在2009年收购了MySQL的母公司Sun,因此MySQL数据库项目也随之纳入Oracle麾下,逐步演变为保持着开源软件的身份,但又申请了多项商业专利的软件系统。因此MySQL项目创始者重新研发了一款名为MariaDB的全新数据库管理系统。该软件当前由开源社区进行维护,是MySQL的分支产品,而且几乎完全兼容MySQL。

由于各大公司之间存在着竞争关系或利益关系,外加MySQL在被收购之后逐渐由开源向闭源软件转变,很多公司抛弃了MySQL。当前,谷歌、维基百科等技术领域决定将MySQL数据库上的业务转移到MariaDB数据库,Linux开源系统的领袖红帽公司也决定在RHEL 7、CentOS 7以及最新的Fedora系统中,将MariaDB作为默认的数据库管理系统,而且红帽公司更是首次将数据库知识加入到了RHCE认证的考试内容中。

18.2 初始化mariaDB服务

相较于MySQL,MariaDB数据库管理系统有了很多新鲜的扩展特性,例如对微秒级别的支持、线程池、子查询优化、进程报告等。在配置妥当Yum软件仓库后,即可安装部署MariaDB数据库主程序及服务端程序了。

在安装完毕后,记得启动服务程序,并将其加入到开机启动项中。
在这里插入图片描述

在确认MariaDB数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面5个步骤。
1,设置root管理员在数据库中的密码值(注意,该密码并非root管理员在系统中的密码,这里的密码值默认应该为空,可直接按回车键)。
2,设置root管理员在数据库中的专有密码。
3,随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。
4,删除默认的测试数据库,取消测试数据库的一系列访问权限。
5,刷新授权列表,让初始化的设定立即生效。
LINUX 第十九天 学习笔记_第2张图片

在很多生产环境中都需要使用站库分离的技术(即网站和数据库不在同一个服务器上),如果需要让root管理员远程访问数据库,可在上面的初始化操作中设置策略,以允许root管理员从远程访问。然后还需要设置防火墙,使其放行对数据库服务程序的访问请求,数据库服务程序默认会占用3306端口,在防火墙策略中服务名称统一叫作mysql:
在这里插入图片描述

一切准备就绪。现在我们将首次登录MariaDB数据库。其中,-u参数用来指定以root管理员的身份登录,而-p参数用来验证该用户在数据库中的密码值。
LINUX 第十九天 学习笔记_第3张图片

在登录MariaDB数据库后执行数据库命令时,都需要在命令后面用分号(;)结尾,这也是与Linux命令最显著的区别。大家需要慢慢习惯数据库命令的这种设定。下面执行如下命令查看数据库管理系统中当前都有哪些数据库:
LINUX 第十九天 学习笔记_第4张图片

接下来使用数据库命令将root管理员在数据库管理系统中的密码值修改为linuxprobe。这样退出后再尝试登录,如果还坚持输入原先的密码,则将提示访问失败。
LINUX 第十九天 学习笔记_第5张图片

18.3 管理用户以及授权

为了保障数据库系统的安全性,以及让其他用户协同管理数据库,我们可以在MariaDB数据库管理系统中为他们创建多个专用的数据库管理账户,然后再分配合理的权限,以满足他们的工作需求。为此,可使用root管理员登录数据库管理系统,然后按照“CREATE USER 用户名@主机名 IDENTIFIED BY ‘密码’; ”的格式创建数据库管理账户。再次提醒大家,一定不要忘记每条数据库命令后面的分号(;)。
数据库管理系统所使用的命令一般都比较复杂。我们以grant命令为例进行说明。grant命令用于为账户进行授权,其常见格式如表所示。在使用grant命令时需要写上要赋予的权限、数据库及表单名称,以及对应的账户及主机信息。
LINUX 第十九天 学习笔记_第6张图片

下面以root管理员的身份登录到数据库管理系统中,创建新的账户,针对mysql数据库中的user表单向账户zhougj授予查询、更新、删除以及插入等权限。
LINUX 第十九天 学习笔记_第7张图片
LINUX 第十九天 学习笔记_第8张图片

LINUX 第十九天 学习笔记_第9张图片

18.4 创建数据库与表单

在MariaDB数据库管理系统中,一个数据库可以存放多个数据表,数据表单是数据库中最重要最核心的内容。我们可以根据自己的需求自定义数据库表结构,然后在其中合理地存放数据,以便后期轻松地维护和修改。下表罗列了后文中将使用到的数据库命令以及对应的作用。
LINUX 第十九天 学习笔记_第10张图片
建立数据库是管理数据的起点。现在尝试创建一个名为linuxprobe的数据库,然后再查看数据库列表,此时就能看到它了:
LINUX 第十九天 学习笔记_第11张图片
要想创建数据表单,需要先切换到某个指定的数据库中。比如在新建的linuxprobe数据库中创建表单mybook,然后进行表单的初始化,即定义存储数据内容的结构。我们分别定义3个字段项,其中,长度为15个字符的字符型字段name用来存放图书名称,整型字段price和pages分别存储图书的价格和页数。当执行完下述命令之后,就可以看到表单的结构信息了:
LINUX 第十九天 学习笔记_第12张图片

18.5 管理表单及数据

接下来向mybook数据表单中插一条图书信息。为此需要使用INSERT命令,并在命令中写清表单名称以及对应的字段项。执行该命令之后即可完成图书写入信息。下面我们使用该命令插入一条图书信息,其中书名为linuxprobe,价格和页数分别是60元和518页。在命令执行后也就意味着图书信息已经成功写入到数据表单中,然后就可以查询表单中的内容了。我们在使用select命令查询表单内容时,需要加上想要查询的字段;如果想查看表单中的所有内容,则可以使用星号(*)通配符来显示:
LINUX 第十九天 学习笔记_第13张图片
对数据库运维人员来讲,需要做好四门功课—增、删、改、查。这意味着创建数据表单并在其中插入内容仅仅是第一步,还需要掌握数据表单内容的修改方法。例如,我们可以使用update命令将刚才插入的linuxprobe图书信息的价格修改为55元,然后在使用select命令查看该图书的名称和定价信息。注意,因为这里只查看图书的名称和定价,而不涉及页码,所以无须再用星号通配符来显示所有内容。
LINUX 第十九天 学习笔记_第14张图片
我们还可以使用delete命令删除某个数据表单中的内容。下面我们使用delete命令删除数据表单mybook中的所有内容,然后再查看该表单中的内容,可以发现该表单内容为空了。
LINUX 第十九天 学习笔记_第15张图片

一般来讲,数据表单中会存放成千上万条数据信息。比如我们刚刚创建的用于保存图书信息的mybook表单,随着时间的推移,里面的图书信息也会越来越多。在这样的情况下,如果我们只想查看其价格大于某个数值的图书时,又该如何定义查询语句呢?
下面先使用insert插入命令依次插入4条图书信息:
LINUX 第十九天 学习笔记_第16张图片
要想让查询结果更加精准,就需要结合使用select与where命令了。其中,where命令是在数据库中进行匹配查询的条件命令。通过设置查询条件,就可以仅查找出符合该条件的数据。下表列出了where命令中常用的查询参数以及作用。
LINUX 第十九天 学习笔记_第17张图片
分别在mybook表单中查找出价格大于75元或价格不等于80元的图书,其对应的命令如下所示。在熟悉了这两个查询条件之后,大家可以自行尝试精确查找图书名为linuxprobe2的图书信息。
LINUX 第十九天 学习笔记_第18张图片

18.6 数据库的备份及恢复

mysqldump命令用于备份数据库数据,格式为“mysqldump [参数] [数据库名称]”。其中参数与mysql命令大致相同,-u参数用于定义登录数据库的账户名称,-p参数代表密码提示符。下面将linuxprobe数据库中的内容导出成一个文件,并保存到root管理员的家目录中:
在这里插入图片描述
然后进入MariaDB数据库管理系统,彻底删除linuxprobe数据库,这样mybook数据表单也将被彻底删除。然后重新建立linuxprobe数据库:
LINUX 第十九天 学习笔记_第19张图片
接下来是见证数据恢复效果的时刻!使用输入重定向符把刚刚备份的数据库文件导入到mysql命令中,然后执行该命令。接下来登录到MariaDB数据库,就又能看到linuxprobe数据库以及mybook数据表单了。数据库恢复成功!
LINUX 第十九天 学习笔记_第20张图片
LINUX 第十九天 学习笔记_第21张图片

第19章 使用PXE+Kickstart无人值守安装服务

如果按照第1章讲解的用光盘镜像来安装操作系统,其效率会相当低下。本章将介绍可以实现无人值守安装服务的PXE+Kickstart服务程序,并带领大家动手安装部署PXE + TFTP + FTP + DHCP + Kickstart等服务程序,从而搭建出一套可批量安装Linux系统的无人值守安装系统。
LINUX 第十九天 学习笔记_第22张图片

19.1 无人值守系统

第1章讲解了使用光盘镜像来安装Linux系统的方法,该方法适用于只安装少量Linux系统的情况。如果生产环境中有数百台服务器都需要安装系统,这种方式就不合时宜了。这时,我们就需要使用PXE + TFTP +FTP + DHCP + Kickstart服务搭建出一个无人值守安装系统。这种无人值守安装系统可以自动地为数十台服务器安装系统,这一方面将运维人员从重复性的工作中解救出来,也大大提升了系统安装的效率。
LINUX 第十九天 学习笔记_第23张图片
PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统。Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。所以只要Kickstart文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。TFTP、FTP以及DHCP服务程序的配置与部署已经在第11章和第14章进行了详细讲解,这里不再赘述。

由于当前的客户端主机并没有完整的操作系统,也就不能完成FTP协议的验证了,所以需要使用TFTP协议帮助客户端获取引导及驱动文件。vsftpd服务程序用于将完整的系统安装镜像通过网络传输给客户端。当然,只要能将系统安装镜像成功传输给客户端即可,因此也可以使用httpd来替代vsftpd服务程序。

19.2 部署相关服务程序

19.2.1 配置DHCP服务程序
DHCP服务程序用于为客户端主机分配可用的IP地址,而且这是服务器与客户端主机进行文件传输的基础,因此我们先行配置DHCP服务程序。首先按照下表为无人值守系统设置IP地址,然后按照图在虚拟机的虚拟网络编辑器中关闭自身的DHCP服

主机名称 操作系统 IP地址
无人值守系统 RHEL 7 172.16.10.2
客户端 未安装操作系统 -

LINUX 第十九天 学习笔记_第24张图片

当挂载好光盘镜像并把Yum仓库文件配置妥当后,就可以安装DHCP服务程序软件包了。
在这里插入图片描述

第14章已经详细讲解了DHCP服务程序的配置以及部署方法,但是,我们在这里使用的配置文件与第14章中的配置文件有两个主要区别:1,允许了BOOTP引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态IP地址;2,在配置文件的最下面加载了引导驱动文件pxelinux.0(这个文件会在下面的步骤中创建),其目的是让客户端主机获取到IP地址后主动获取引导驱动文件,自行进入下一步的安装过程。
LINUX 第十九天 学习笔记_第25张图片
在确认DHCP服务程序的参数都填写正确后,重新启动该服务程序,并将其添加到开机启动项中。这样在设备下一次重启之后,在无须人工干预的情况下,自动为客户端主机安装系统。
在这里插入图片描述

19.2.2 配置TFTP服务程序
第11章中学习过vsftpd服务与TFTP服务。vsftpd是一款功能丰富的文件传输服务程序,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。但是,当前的客户端主机还没有安装操作系统,该如何进行登录认证呢?而TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。因此接下来配置TFTP服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过vsftpd服务程序将完整的光盘镜像文件传输过去。
在这里插入图片描述

TFTP是一种非常精简的文件传输服务程序,它的运行和关闭是由xinetd网络守护进程服务来管理的。xinetd服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启TFTP服务程序,只需在xinetd服务程序的配置文件中把disable参数改成no就可以了。保存配置文件并退出,然后重启xinetd服务程序,并将其加入到开机启动项中(在RHEL 7系统中,已经默认启用了xinetd服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况)。
LINUX 第十九天 学习笔记_第26张图片
TFTP服务程序默认使用的是UDP协议,占用的端口号为69,所以在生产环境中还需要在firewalld防火墙管理工具中写入使其永久生效的允许策略,以便让客户端主机顺利获取到引导文件。
LINUX 第十九天 学习笔记_第27张图片
19.2.3 配置SYSLinux服务程序
SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLinux是一个服务程序,不如说更需要里面的引导文件,在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件。
在这里插入图片描述
在这里插入图片描述

我们首先需要把SYSLinux提供的引导文件复制到TFTP服务程序的默认目录中,也就是前文提到的文件pxelinux.0,这样客户端主机就能够顺利地获取到引导文件了。另外在RHEL 7系统光盘镜像中也有一些我们需要调取的引导文件。确认光盘镜像已经被挂载到/media/cdrom目录后,使用复制命令将光盘镜像中自带的一些引导文件也复制到TFTP服务程序的默认目录中。
LINUX 第十九天 学习笔记_第28张图片

然后在TFTP服务程序的目录中新建pxelinux.cfg目录,虽然该目录的名字带有后缀,但依然也是目录,而非文件!将系统光盘中的开机选项菜单复制到该目录中,并命名为default。这个default文件就是开机时的选项菜单,如图所示。
LINUX 第十九天 学习笔记_第29张图片
在这里插入图片描述
默认的开机菜单中有两个选项,要么是安装系统,要么是对安装介质进行检验。既然我们已经确定采用无人值守的方式安装系统,还需要为每台主机手动选择相应的选项,未免与我们的主旨(无人值守安装)相悖。现在我们编辑这个default文件,把第1行的default参数修改为linux,这样系统在开机时就会默认执行那个名称为linux的选项了。对应的linux选项大约在64行,我们将默认的光盘镜像安装方式修改成FTP文件传输方式,并指定好光盘镜像的获取网址以及Kickstart应答文件的获取路径:
LINUX 第十九天 学习笔记_第30张图片
19.2.4 配置VSFtpd服务程序
在我们这套无人值守安装系统的服务中,光盘镜像是通过FTP协议传输的,因此势必要用到vsftpd服务程序。当然,也可以使用httpd服务程序来提供Web网站访问的方式,只要能确保将光盘镜像顺利传输给客户端主机即可。如果打算使用Web网站服务来提供光盘镜像,一定记得将上面配置文件中的光盘镜像获取网址和Kickstart应答文件获取网址修改一下。
在这里插入图片描述
PS:在配置文件修改正确之后,一定将相应的服务程序添加到开机启动项中,这样无论是在生产环境中还是在红帽认证考试中,都可以在设备重启之后依然能提供相应的服务。
在这里插入图片描述
在确认系统光盘镜像已经正常挂载到/media/cdrom目录后,把目录中的光盘镜像文件全部复制到vsftpd服务程序的工作目录中。
在这里插入图片描述
在firewalld防火墙管理工具中写入使FTP协议永久生效的允许策略,然后在SELinux中放行FTP传输:
LINUX 第十九天 学习笔记_第31张图片
19.2.5 创建KickStart应答文件
我们使用PXE + Kickstart部署的是一套“无人值守安装系统服务”,而不是“无人值守传输系统光盘镜像服务”,因此还需要让客户端主机能够一边获取光盘镜像,还能够一边自动帮我们填写好安装过程中出现的选项。简单来说,如果生产环境中有100台服务器,它们需要安装相同的系统环境,那么在安装过程中单击的按钮和填写的信息也应该都是相同的。那么,为什么不创建一个类似于备忘录的需求清单呢?这样,在无人值守安装系统时,可以从这个需求清单中找到相应的选项值,从而免去了手动输入之苦,更重要的是,也彻底解放了人的干预,彻底实现无人值守自动安装系统,而不是单纯地传输系统光盘镜像。

有了上文做铺垫,相信大家现在应该可以猜到Kickstart其实并不是一个服务程序,而是一个应答文件了。是的!Kickstart应答文件中包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容,从而彻底实现了无人值守安装系统。那么,既然这个文件如此重要,该去哪里找呢?其实在root管理员的家目录中有一个名为anaconda-ks.cfg的文件,它就是应答文件。下面将这个文件复制到vsftpd服务程序的工作目录中(在开机选项菜单的配置文件中已经定义了该文件的获取路径,也就是vsftpd服务程序数据目录中的pub子目录中)。使用chmod命令设置该文件的权限,确保所有人都有可读的权限,以保证客户端主机可以顺利获取到应答文件及里面的内容:
LINUX 第十九天 学习笔记_第32张图片
Kickstart应答文件并没有想象中的那么复杂,它总共只有46行左右的参数和注释内容,大家完全可以通过参数的名称及介绍来快速了解每个参数的作用。这里挑选几个比较有代表性的参数进行讲解,其他参数建议大家自行修改测试。

首先把第6行的光盘镜像安装方式修改成FTP协议,仔细填写好FTP服务器的IP地址,并用本地浏览器尝试打开下检查有没有报错。然后把第21行的时区修改成上海(Asia/Shanghai),最后再把28行的磁盘选项设置为清空所有磁盘内容并初始化磁盘:
在这里插入图片描述
LINUX 第十九天 学习笔记_第33张图片

如果觉得系统默认自带的应答文件参数较少,不能满足生产环境的需求,则可以通过Yum软件仓库来安装system-config-kickstart软件包。这是一款图形化的Kickstart应答文件生成工具,可以根据自己的需求生成自定义的应答文件,然后将生成的文件放到/var/ftp/pub目录中并将名字修改为ks.cfg即可。

19.3 自动部署客户机

在按照上文讲解的方法成功部署各个相关的服务程序后,就可以使用PXE + Kickstart无人值守安装系统了。在采用下面的步骤建立虚拟主机时,一定要把客户端的网卡模式设定成与服务端一致的“仅主机模式”,否则两台设备无法进行通信,也就更别提自动安装系统了。其余硬件配置选项并没有强制性要求,大家可参考这里的配置选项来设定。
LINUX 第十九天 学习笔记_第34张图片
LINUX 第十九天 学习笔记_第35张图片
LINUX 第十九天 学习笔记_第36张图片
LINUX 第十九天 学习笔记_第37张图片
LINUX 第十九天 学习笔记_第38张图片

LINUX 第十九天 学习笔记_第39张图片
LINUX 第十九天 学习笔记_第40张图片

现在,我们就同时准备好了PXE + Kickstart无人值守安装系统与虚拟主机。在生产环境中,大家只需要将配置妥当的服务器上架,接通服务器和客户端主机之间的网线,然后启动客户端主机即可。接下来就会按照图19-12和图19-13那样,开始传输光盘镜像文件并进行自动安装了—期间完全无须人工干预,直到安装完毕时才需要运维人员进行简单的初始化工作。
LINUX 第十九天 学习笔记_第41张图片

二、笔记截图(略)

你可能感兴趣的:(运维,linux)