管理网络服务

2024年3月16日 8:35

RHEL8之前:network.service NetworkManager


在Linux系统中如何进程服务管理:DHCP HTTPD vsftpd等

Systemctl start/stop/restart/reload(重新加载文件)/enable/disable/不启动

[root@servera ~]# systemctl start httpd.service

当我通过start指令启动一个服务的时候,对应的进程是通过什么方式启动。

[root@servera ~]# systemctl cat httpd.service

# /usr/lib/systemd/system/httpd.service

# See httpd.service(8) for more information on using the httpd service.

定义ExecStart来定义进程启动的方式

[root@servera ~]# systemctl enable httpd

Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service →

/usr/lib/systemd/system/httpd.service.

[root@servera ~]# systemctl disable httpd.service

[root@servera ~]# systemctl mask httpd

Created symlink /etc/systemd/system/httpd.service → /dev/null.

[root@servera ~]# systemctl start httpd

Failed to start httpd.service: Unit httpd.service is masked.

[root@servera ~]# systemctl unmask httpd.service Removed /etc/systemd/system/httpd.service.

[root@servera ~]# systemctl start httpd.service


NetworkManager管理网络:

1: device 设备:物理网卡,物理设备

RH358 — 服务管理与自动化 课堂笔记_RH358

DEVICE:设备

TYPE:设备的类型

STATE: connected 这个设备已经有连接和他关联,disconnected,没有连接关联

CONNECTION: 所关联的连接的名称

2:connection: 连接一个连接保存是一个关联的设备的信息(配置信息和硬件信息)

MAC地址,IP地址

RH358 — 服务管理与自动化 课堂笔记_RH358_02

NAME:连接的名字

UUID:每一个连接都有一个唯一的名字

TYPE: 连接的类型

DEVICE: 这个连接所关联的设备是谁

RH358 — 服务管理与自动化 课堂笔记_RH358_03

设备关联到连接上去。

RH358 — 服务管理与自动化 课堂笔记_RH358_04

3:网卡的配置文件

RH358 — 服务管理与自动化 课堂笔记_RH358_05

Ifcfg-连接的名字,保存的就是部分的连接属性

配置网络信息 eth2:配置网络信息:

1:查看eth2是否有关联的连接

RH358 — 服务管理与自动化 课堂笔记_RH358_06

2: 如果没有关联的连接,就需要创建连接和这个设备关联(连接怎么创建和查看)

RH358 — 服务管理与自动化 课堂笔记_RH358_07

RH358 — 服务管理与自动化 课堂笔记_RH358_08

3: 修改连接: method(auto,manual),ipv4,dns,gateway

RH358 — 服务管理与自动化 课堂笔记_RH358_09

RH358 — 服务管理与自动化 课堂笔记_RH358_10

4: 启动连接

RH358 — 服务管理与自动化 课堂笔记_RH358_11

RH358 — 服务管理与自动化 课堂笔记_RH358_12

修改

RH358 — 服务管理与自动化 课堂笔记_RH358_13

+增加一个地址

-减去一个地址

通过Ansible自动化管理服务和网络配置服务配置所使用的Ansible模块: service模块

state: started(stopped,restarted) name: httpd

enabled: true

daemon-reload: true/当你修改过服务的单元配置文件的时候

通过service_facts

RH358 — 服务管理与自动化 课堂笔记_RH358_14

server: ansible使用的完整的方式

RH358 — 服务管理与自动化 课堂笔记_RH358_15

RH358 — 服务管理与自动化 课堂笔记_RH358_16

ansible管理网络:已经提供了network这个角色。怎么使用呢?仅仅是需要给角色传递合适的变量值: role 都有README

RH358 — 服务管理与自动化 课堂笔记_RH358_17

network_connections: name: 连接的名字

state: 连接的状态.up/down

type: 类型

autoconnect:

mac:

ip:

address

获取网络的配置信息:254/RHCE

RH358 — 服务管理与自动化 课堂笔记_RH358_18

如何通过Ansible来配置网络信息

RH358 — 服务管理与自动化 课堂笔记_RH358_19

配置链路聚合

2024年3月16日 8:46

将物理物理网卡,利用team绑定在一起流程:

1: 创建逻辑设备(team设备)

RH358 — 服务管理与自动化 课堂笔记_RH358_20

2: 将物理网卡添加到team设备上(给物理设备添加连接)

RH358 — 服务管理与自动化 课堂笔记_RH358_21

3: 给team设备配置网络信息(网络信息千万不要配置在物理网卡上)

RH358 — 服务管理与自动化 课堂笔记_RH358_22

4: 启动或者关闭

RH358 — 服务管理与自动化 课堂笔记_RH358_23

RH358 — 服务管理与自动化 课堂笔记_RH358_24

如何通过Ansible实现链路聚合:

1:需要创建一个team,并配置IP地址

2:需要把物理网卡加入到team中

3:需要修改team的runner(通过tasks的方式进行修改)

RH358 — 服务管理与自动化 课堂笔记_RH358_25

RH358 — 服务管理与自动化 课堂笔记_RH358_26

管理和配置DNS

2024年3月16日 8:47

1:DNS的解析过程

2:DNS的一些基本概念

3:正向解析

4:方向解析

5:DNS master-slave 6: 转发类型的DNS

7:缓存的DNS服务器


DNS:把FQDN(完全合格名称,)解析得到他对应的IP地址:www.baidu.com 只能是通过IP地址

FQDN--->IP

解析过程:

迭代,递归过程、

RH358 — 服务管理与自动化 课堂笔记_RH358_27

实现DNS服务的软件:bind/ubond bind

具体的操作过程:

1:安装包

RH358 — 服务管理与自动化 课堂笔记_RH358_28

2:配置文件路径

RH358 — 服务管理与自动化 课堂笔记_RH358_29

3:查看配置文件

RH358 — 服务管理与自动化 课堂笔记_RH358_30

DNS: 监听的端口是53. UDP TCP 查询过程所使用的端口就是UDP主从同步的时候master dns/slave dns master-slave: TCP 53 Directory: 文件路径,包括区域配置文件

allow-query: 允许查询的网段

RH358 — 服务管理与自动化 课堂笔记_RH358_31

是否允许递归查询

RH358 — 服务管理与自动化 课堂笔记_RH358_32

pid文件路径

RH358 — 服务管理与自动化 课堂笔记_RH358_33

日志文件路径


DNS最难的就是区域配置文件:

RH358 — 服务管理与自动化 课堂笔记_RH358_34

什么叫区域lab.example.com exmaple.com.lab.example.com

zone “lab.example.com" IN{

file "lab.example.com" #lab.example.com是个文件区域配置文件()

}

区域配置文件保存了什么信息:和解析有关的信息MX.DNS.SOA.A.PTR CNAME等

RH358 — 服务管理与自动化 课堂笔记_RH358_35

根域的配置文件

RH358 — 服务管理与自动化 课堂笔记_RH358_36

###配置lab.example.com

RH358 — 服务管理与自动化 课堂笔记_RH358_37

RH358 — 服务管理与自动化 课堂笔记_RH358_38

正向解析的区域配置文件在这样的区域配置文件内:包含的是从FQDN--->IP的解析

RH358 — 服务管理与自动化 课堂笔记_RH358_39

A 记录FQDN--->IP 必须有的一个A记录是DNS服务器的A记录

MX 邮件服务记录 10代表优先级:存在多个邮件服务器的情况下

NS:DNS服务器记录

SOA: 起始授权记录

CNAME:别名记录。当有访问kevin.lab.example.com---->servera


查找

RH358 — 服务管理与自动化 课堂笔记_RH358_40

反向区域配置文件: 就是解析从IP-->FQDN的解析

RH358 — 服务管理与自动化 课堂笔记_RH358_41

RH358 — 服务管理与自动化 课堂笔记_RH358_42

RH358 — 服务管理与自动化 课堂笔记_RH358_43

PTR记录:反向解析记录

RH358 — 服务管理与自动化 课堂笔记_RH358_44

RH358 — 服务管理与自动化 课堂笔记_RH358_45

RH358 — 服务管理与自动化 课堂笔记_RH358_46


DNS主从同步:

把区域配置文件从master同步到slave以后,slave也可以作为DNS服务器解析并且slave的区域配置文件不要去修改,修改的都是主的DNS区域文件

主从同步使用的端口号是TCP:53

从的DNS服务器上,除了区域配置文件不用写之外,其余的全部要配置

1:在从的DNS服务器上安装软件

RH358 — 服务管理与自动化 课堂笔记_RH358_47

2:把主DNS服务器配置同步过来

RH358 — 服务管理与自动化 课堂笔记_RH358_48

3:修改主和从的DNS配置文件主DNS:

RH358 — 服务管理与自动化 课堂笔记_RH358_49


从DNS:

RH358 — 服务管理与自动化 课堂笔记_RH358_50

RH358 — 服务管理与自动化 课堂笔记_RH358_51




仅转发的DNS服务器:

RH358 — 服务管理与自动化 课堂笔记_RH358_52



1: 安装软件

RH358 — 服务管理与自动化 课堂笔记_RH358_53


2: 配置

RH358 — 服务管理与自动化 课堂笔记_RH358_54


缓存DNS服务器:

RH358 — 服务管理与自动化 课堂笔记_RH358_55



这两种DNS服务器,都没有自己的区域配置文件

servera: named stop serverd ping kevin ok!

serverc: restart

RH358 — 服务管理与自动化 课堂笔记_RH358_56

RH358 — 服务管理与自动化 课堂笔记_RH358_57

清除缓存测试


管理和配置DHCP服务器

2024年3月16日 17:10


DHCP: 动态的分配IP地址

工作流程DHCPV4

RH358 — 服务管理与自动化 课堂笔记_RH358_58


具体怎么部署:

1:安装DHCP服务器的包

RH358 — 服务管理与自动化 课堂笔记_RH358_59

2:修改DHCP的配置

RH358 — 服务管理与自动化 课堂笔记_RH358_60

RH358 — 服务管理与自动化 课堂笔记_RH358_61

RH358 — 服务管理与自动化 课堂笔记_RH358_62


RH358 — 服务管理与自动化 课堂笔记_RH358_63

-t 测试配置文件是否有语法错误

固定地址

RH358 — 服务管理与自动化 课堂笔记_RH358_64


使用Ansible对于服务的部署:通常情况下要遵循一下流程:

1:配置yum源和装包。

yum_repository:

装包的模块:yum或者dnf


2: 如果服务有其他需要读取的数据(比如是个web),就需要把数据传输过去

尽量不要用copy模块。

synchronize模块:支持增量传输、压缩等(sync)


3: 把服务的配置文件做成模版,使用template处理,最重要的时候在配置文件部分都需要

配合notify和handlers.

template:

4:服务的管理

service

5: 如果存在防火墙。防火墙的规则配置

firewalld


6:配置Handlers servicve


部署DHCP服务器:自动的部署Client

[student@workstation dhcp-automation]$ cat dhcpd.yml

---

  1. name: Config dhcpd server on servera hosts: dhcp_serversbecome:true
    vars_files:
  1. mac_ip.yml vars:network_connections:
    -name:eth1 state: up
    interface_name:eth1 type: ethernet
    ip:
    dhcp4:no address:
    -10.10.10.10/24
    roles:
  1. linux-system-roles.network tasks:
  2. name: install dhcpd-serveryum:
    name: dhcp-server state: present
  3. name: prepare dhcpd server configuration template:src: dhcpd.j2
    dest: /etc/dhcp/dhcpd.conf notify: restart server
  4. name:startdhcpdserver service:name:"{{item}}" state: started enabled:trueloop:
  1. dhcpd
  2. firewalld
  1. name: configure firewalld:state: enabled permanent: yes service: dhcp immediate: yes

    handlers:
  2. name: restart server service:

name: dhcp

state: restarted

[student@workstation dhcp-automation]$

模版文件

RH358 — 服务管理与自动化 课堂笔记_RH358_65

  1. name: Config dhcpd server on servera hosts: clients


重点就是:得到这个文件

[student@workstation dhcp-automation]$ cat mac_ip.yml IPMAC_INFO:

- { host: servera , MAC: "52:54:00:01:fa:0b" , IP: 10.10.10.11 }

- { host: serverb , MAC: "52:54:00:01:fa:0c" , IP: 10.10.10.12 }

- { host: serverc , MAC: "52:54:00:01:fa:0d" , IP: 10.10.10.13 }

[student@workstation dhcp-automation]$


Client

---

become: true vars:

network_connections:

- name: eth1 state: up

interface_name: eth1 type: ethernet

ip:

dhcp4: yes roles:

- linux-system-roles.network



强调的一点:

你如果你要配置静态IP地:

址。就比较麻烦


管理和配置打印机CUPS

2024年3月16日 18:57

RH358 — 服务管理与自动化 课堂笔记_RH358_66


具体如何操作才能让Linux主机连接打印机,并且打印作业! [student@workstation ~]$ lab printing-config start 模拟一个打印机1:安装包

RH358 — 服务管理与自动化 课堂笔记_RH358_67

RH358 — 服务管理与自动化 课堂笔记_RH358_68


能够让Servera去接收打印机发送的自己的性能数据


2:通过ippfind 命令查找在这个网络上有哪些打印机

RH358 — 服务管理与自动化 课堂笔记_RH358_69

ipp: 网络的连接方式,无驱动的连接方式

3:创建打印机队列

RH358 — 服务管理与自动化 课堂笔记_RH358_70

RH358 — 服务管理与自动化 课堂笔记_RH358_71

RH358 — 服务管理与自动化 课堂笔记_RH358_72

-p队列的名称

-v打印机的地址

-m everywhere网络打印

-E 启用队列



RH358 — 服务管理与自动化 课堂笔记_RH358_73

如果我的打印机队列比较多:一个打印机对应一个队列

在默认情况下,使用哪个打印队列呢?

RH358 — 服务管理与自动化 课堂笔记_RH358_74


-d default : 制定默认的打印队列

RH358 — 服务管理与自动化 课堂笔记_RH358_75

默认的打印队列是谁

RH358 — 服务管理与自动化 课堂笔记_RH358_76



删除打印队列

RH358 — 服务管理与自动化 课堂笔记_RH358_77


打印作业?打印文件

RH358 — 服务管理与自动化 课堂笔记_RH358_78

RH358 — 服务管理与自动化 课堂笔记_RH358_79


打印的时候,可以通过-d参数去制定使用哪个打印队列去打印作业

暂停队列

RH358 — 服务管理与自动化 课堂笔记_RH358_80

RH358 — 服务管理与自动化 课堂笔记_RH358_81

RH358 — 服务管理与自动化 课堂笔记_RH358_82


reject:代表不再接收打印作业

RH358 — 服务管理与自动化 课堂笔记_RH358_83

RH358 — 服务管理与自动化 课堂笔记_RH358_84


如何通过Ansible自动化来实现!

RH358 — 服务管理与自动化 课堂笔记_RH358_85


RH358 — 服务管理与自动化 课堂笔记_RH358_86


配置空客户端的邮件服务器

2024年3月16日 18:57


邮件投递过程

RH358 — 服务管理与自动化 课堂笔记_RH358_87



空客户端

RH358 — 服务管理与自动化 课堂笔记_RH358_88

对于空客户端而言,最重要的就是中继邮件


软件使用postfix,并且由于使用的是空客户端,所以不需要关注防火墙的问题


具体实现

1: 安装包

RH358 — 服务管理与自动化 课堂笔记_RH358_89


2:配置文件路径

RH358 — 服务管理与自动化 课堂笔记_RH358_90

RH358 — 服务管理与自动化 课堂笔记_RH358_91


最重要的几个配置

RH358 — 服务管理与自动化 课堂笔记_RH358_92

我的域名叫什么

RH358 — 服务管理与自动化 课堂笔记_RH358_93

我的FQDN叫什么

RH358 — 服务管理与自动化 课堂笔记_RH358_94



收到邮件的时候,显示的发件人@后面的内容

$myhostname引用了myhostname的设置

RH358 — 服务管理与自动化 课堂笔记_RH358_95


postfix所监听的端口,只是null client,所以我只是监听 loopback-only

RH358 — 服务管理与自动化 课堂笔记_RH358_96



user1@lab.example.com @example.com @localhost @后面的内容

问题是:null client不需要有自己的用户

RH358 — 服务管理与自动化 课堂笔记_RH358_97



我信任的客户端网段,null client

·=127.0.0.1/8

RH358 — 服务管理与自动化 课堂笔记_RH358_98


把邮件推送(中继)到哪个邮件服务器

smtp.lab.example.com


验证:

RH358 — 服务管理与自动化 课堂笔记_RH358_99

RH358 — 服务管理与自动化 课堂笔记_RH358_100




由于servera是个null client邮件服务器,所以不会把邮件投递到用户邮箱。应该上级邮件服务器:relayhost: smtp.lab.example.com

RH358 — 服务管理与自动化 课堂笔记_RH358_101



RH358 — 服务管理与自动化 课堂笔记_RH358_102



如何通过Ansible来邮件服务器的自动化呢?对于RedHat而言,已经提供了role来实现邮件服务器的自动化

1:安装含有角色的包

RH358 — 服务管理与自动化 课堂笔记_RH358_103



2:编写剧本

RH358 — 服务管理与自动化 课堂笔记_RH358_104


maraidb数据库

2024年3月23日 8:25


Mariadb的安装

RH358 — 服务管理与自动化 课堂笔记_RH358_105

RH358 — 服务管理与自动化 课堂笔记_RH358_106




or

RH358 — 服务管理与自动化 课堂笔记_RH358_107

RH358 — 服务管理与自动化 课堂笔记_RH358_108




mariabd的配置文件

RH358 — 服务管理与自动化 课堂笔记_RH358_109

RH358 — 服务管理与自动化 课堂笔记_RH358_110

RH358 — 服务管理与自动化 课堂笔记_RH358_111


datadir: 你的数据库文件路径

socket: 套接字文件

log-error


pid文件的


MySQL的主从,日志,高可用,备份和恢复


启动mariadb服务员

RH358 — 服务管理与自动化 课堂笔记_RH358_112

RH358 — 服务管理与自动化 课堂笔记_RH358_113


防火墙的配置

RH358 — 服务管理与自动化 课堂笔记_RH358_114



安全有关的配置

RH358 — 服务管理与自动化 课堂笔记_RH358_115


RH358 — 服务管理与自动化 课堂笔记_RH358_116



1:给root用户设置密码

2:禁止root用户远程登录

3:如果存在测试库,那么删除测试库

4:如果存在匿名用户就要删除匿名用户

RH358 — 服务管理与自动化 课堂笔记_RH358_117


RH358 — 服务管理与自动化 课堂笔记_RH358_118


Mariabd的连接方式


RH358 — 服务管理与自动化 课堂笔记_RH358_119



-h:就是通过TCP/IP的连接方式,只要你配置正确。那么你可以任意节点

使用TCP/IP的连接方式

RH358 — 服务管理与自动化 课堂笔记_RH358_120


-S指定套接字文件路径。不能从其他的节点通过这种方式进行连接

RH358 — 服务管理与自动化 课堂笔记_RH358_121

RH358 — 服务管理与自动化 课堂笔记_RH358_122




skip-networking: 特点,加上去之后 mariadb不会监听任何端口

RH358 — 服务管理与自动化 课堂笔记_RH358_123



从serverb连接到Servera:


1:在Servera上没有加skip-networking

2:你servera允许3306端口

3:需要在Serverb上安装Client工具

4:最重要的一点:

RH358 — 服务管理与自动化 课堂笔记_RH358_124




identified by 'redhat'; 这是是密码

user1@'serverb.lab.example.com'


user1: 是用户名

@serverb.lab.example.com: 代表这个用户可以从哪个主机连接到

mariadb数据库上

RH358 — 服务管理与自动化 课堂笔记_RH358_125

RH358 — 服务管理与自动化 课堂笔记_RH358_126

RH358 — 服务管理与自动化 课堂笔记_RH358_127


也就是@后面指定的主机


RH358 — 服务管理与自动化 课堂笔记_RH358_128

如果想让这样的用户可以从任意节点进行连接

RH358 — 服务管理与自动化 课堂笔记_RH358_129

RH358 — 服务管理与自动化 课堂笔记_RH358_130

RH358 — 服务管理与自动化 课堂笔记_RH358_131

权限

RH358 — 服务管理与自动化 课堂笔记_RH358_132



全局类型的权限:CREATE DATABASE/CREATE USER /GRANT等


库Database: 增删改查表:增删改查

GRANT:

1: 我想给USER1授予所有的权限

RH358 — 服务管理与自动化 课堂笔记_RH358_133


all privileges: 代表所有的权限

权限: CREATE.UPDATE.DELETE.UPDATA.ALTER.DROP.GRANT等

on *.* database_name.table_name:

to 授予权限给某个用户


3: user3针对redhat这个库具备所有的权限

RH358 — 服务管理与自动化 课堂笔记_RH358_134



4:user2: db_redhatr.t1具备Select权限

RH358 — 服务管理与自动化 课堂笔记_RH358_135

RH358 — 服务管理与自动化 课堂笔记_RH358_136



权限回收:revoke

RH358 — 服务管理与自动化 课堂笔记_RH358_137

RH358 — 服务管理与自动化 课堂笔记_RH358_138


权限查看


RH358 — 服务管理与自动化 课堂笔记_RH358_139



SQL语句:

RH358 — 服务管理与自动化 课堂笔记_RH358_140



哪些库

RH358 — 服务管理与自动化 课堂笔记_RH358_141



drop database删除库


RH358 — 服务管理与自动化 课堂笔记_RH358_142



连接库,使用这个库USE

RH358 — 服务管理与自动化 课堂笔记_RH358_143

RH358 — 服务管理与自动化 课堂笔记_RH358_144

RH358 — 服务管理与自动化 课堂笔记_RH358_145

RH358 — 服务管理与自动化 课堂笔记_RH358_146


HOST

user

password

select_ pri

colum e5

colum e6

colum e7

colum e5

localh ost

root

*84BB5DF4823DA319BBF86

C99624479A198E6EEE9

Y

Y

Y

Y

Y


































创建表

RH358 — 服务管理与自动化 课堂笔记_RH358_147

RH358 — 服务管理与自动化 课堂笔记_RH358_148

RH358 — 服务管理与自动化 课堂笔记_RH358_149

RH358 — 服务管理与自动化 课堂笔记_RH358_150

RH358 — 服务管理与自动化 课堂笔记_RH358_151

RH358 — 服务管理与自动化 课堂笔记_RH358_152

RH358 — 服务管理与自动化 课堂笔记_RH358_153

RH358 — 服务管理与自动化 课堂笔记_RH358_154


drop table连同表结构都一起删除

RH358 — 服务管理与自动化 课堂笔记_RH358_155


SELECT语句

RH358 — 服务管理与自动化 课堂笔记_RH358_156

RH358 — 服务管理与自动化 课堂笔记_RH358_157

RH358 — 服务管理与自动化 课堂笔记_RH358_158

RH358 — 服务管理与自动化 课堂笔记_RH358_159

RH358 — 服务管理与自动化 课堂笔记_RH358_160



联合查询:

RH358 — 服务管理与自动化 课堂笔记_RH358_161


得到的结果:


RH358 — 服务管理与自动化 课堂笔记_RH358_162

MYSQL的备份

逻辑备份:

RH358 — 服务管理与自动化 课堂笔记_RH358_163

在备份的时候如果什么参数都没加入,那么在还原的时候需要事先把创建好

RH358 — 服务管理与自动化 课堂笔记_RH358_164

所以在执行逻辑备份加入额外的参数

RH358 — 服务管理与自动化 课堂笔记_RH358_165

RH358 — 服务管理与自动化 课堂笔记_RH358_166

--routing --events -F

RH358 — 服务管理与自动化 课堂笔记_RH358_167


自动部署Mariadb ---Ansible使用到的Ansible模块 1:yum

2: service

3: firewalld

4: mysql_user

5: mysql_db

部署Mariadb-server

RH358 — 服务管理与自动化 课堂笔记_RH358_168

RH358 — 服务管理与自动化 课堂笔记_RH358_169

RH358 — 服务管理与自动化 课堂笔记_RH358_170

RH358 — 服务管理与自动化 课堂笔记_RH358_171

RH358 — 服务管理与自动化 课堂笔记_RH358_172

RH358 — 服务管理与自动化 课堂笔记_RH358_173


web服务

2024年3月23日 8:26

Apache web服务器:

安装:

RH358 — 服务管理与自动化 课堂笔记_RH358_174

配置文件路径

RH358 — 服务管理与自动化 课堂笔记_RH358_175

在修改这个配置文件的时候:我们都是去修改/etc/httpd/conf.d/以.conf结尾的文件

ServerRoot "/etc/httpd" apache有关的文件/etc/httpd

Listen 12.34.56.78:80 监听的IP和端口

Listen 80 *80 如果不加,那就是所有的IP地址的80端口Include conf.modules.d/*.conf httpd模块配置的路径。http功能以模块化设计。功能模块所存放的路径

RH358 — 服务管理与自动化 课堂笔记_RH358_176

代表的是要加载什么样的模块

RH358 — 服务管理与自动化 课堂笔记_RH358_177


User apache :当我们的httpd服务起来以后,相关的进程的拥有者和属组是apache。后续你的apache如果要读取某个文件那么针对这个apache必须要有足够的权限。

Group apache


ServerAdmin root@localhost :管理者邮箱

ServerName www.example.com 主机名叫什么

<Directory /> 针对目录做的设置/etc/httpd

AllowOverride none 不允许被覆盖


Require all denied 所有人不需要被访问

</Directory>



DocumentRoot "/var/www/html" 放置程序或者静态页面的路径

<Directory "/var/www/html">

Options Indexes FollowSymLinks 放目录和链接文件

Require all granted 所有人都能访问

AllowOverride None

</Directory>


ErrorLog "logs/error_log" 错误日志路径/etc/h

LogLevel warn

RH358 — 服务管理与自动化 课堂笔记_RH358_178


CustomLog "logs/access_log" common 访问日志

你不需要做任何修改,启动服务,访问,设置防火墙

RH358 — 服务管理与自动化 课堂笔记_RH358_179

RH358 — 服务管理与自动化 课堂笔记_RH358_180

RH358 — 服务管理与自动化 课堂笔记_RH358_181


配置虚拟机的方式去配置httpd web服务器

虚拟主机:在你使用了虚拟主机的情况下,在一个web服务器上,你可以配置多个域名,或者多个端口去访问


虚拟机:一般都是在/etc/httpd/conf.d/servera.conf

RH358 — 服务管理与自动化 课堂笔记_RH358_182

RH358 — 服务管理与自动化 课堂笔记_RH358_183


RH358 — 服务管理与自动化 课堂笔记_RH358_184


当我们修改过DocumentRoot的时候,记住一定要修改该路径的安全性上下文

RH358 — 服务管理与自动化 课堂笔记_RH358_185


代表的是修改这个目录的默认的安全性上下文可以用restoren来还原默认的安全性上下文

RH358 — 服务管理与自动化 课堂笔记_RH358_186


基于端口的虚拟机

RH358 — 服务管理与自动化 课堂笔记_RH358_187

RH358 — 服务管理与自动化 课堂笔记_RH358_188


需要去修改端口的Selinux上下文

RH358 — 服务管理与自动化 课堂笔记_RH358_189

RH358 — 服务管理与自动化 课堂笔记_RH358_190

RH358 — 服务管理与自动化 课堂笔记_RH358_191



Apache的https

RH358 — 服务管理与自动化 课堂笔记_RH358_192

证书的:

1:你可以是自己签名的证书

2:找权威机构搞


如配去配置web服务器:

1:装包:一定mod_ssl 这个就apache web的https功能模块

RH358 — 服务管理与自动化 课堂笔记_RH358_193

RH358 — 服务管理与自动化 课堂笔记_RH358_194


2:配置虚拟主机

RH358 — 服务管理与自动化 课堂笔记_RH358_195


RH358 — 服务管理与自动化 课堂笔记_RH358_196


可以看出我们是通过CA中心的证书,去严正server的证书的合法性验证仅仅是涉及到sever的合法性,还没涉及到数据加密


身份验证的功能:http的身份验证方式:IDM(LDAP+Kerberos),httpd basic验证方式

httpd basic验证方式:就是把用户名和密码放在一个文件内就可以了

RH358 — 服务管理与自动化 课堂笔记_RH358_197

RH358 — 服务管理与自动化 课堂笔记_RH358_198

RH358 — 服务管理与自动化 课堂笔记_RH358_199

RH358 — 服务管理与自动化 课堂笔记_RH358_200



nginx的web服务器!负载均衡器!nginx/haproxy

nginx的安装:

1> 源码的方式进行安装

2 > 二进制文件的方式进行安装

3> rpm包的安装方式


RH358 — 服务管理与自动化 课堂笔记_RH358_201

RH358 — 服务管理与自动化 课堂笔记_RH358_202


配置文件路径

RH358 — 服务管理与自动化 课堂笔记_RH358_203



user nginx; 代表的使用nginx的进程的拥有者是谁 worker_processes auto; nginx的工作进程有多少个可以设置数量 error_log /var/log/nginx/error.log; 错误日志的路径

pid /run/nginx.pid; pid文件的路径

events {

worker_connections 1024; work进程可以处理多少个TCP连接

}

http {

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

log_format 日志格式:日志保存在日志文件内的时候以一个什么样的格式

access_log /var/log/nginx/access.log main;

access_log 访问日志


sendfile on;

是否可以使用这个sendfile()系统调用

tcp_nopush on;

可以节约网络开销,但是相应会稍微的比tcp_nodelay要慢点

tcp_nodelay on;

相应就会快点。但是网络开销要大于这个nopush

keepalive_timeout 65;

连接保持


types_hash_max_size 2048;


include /etc/nginx/mime.types;

# 能够支持什么样的数据类型default_type application/octet-stream;默认的


include /etc/nginx/conf.d/*.conf;

把/etc/nginx/conf.d/*.conf 都会读取作为nginx的配置文件,一般情况下

在/etc/nginx/conf.d/*.conf 里面的内容我们只会定义

server {

location

}


server块就是在nginx上定义虚拟主机


server {

acl 172.25.250.9/24 ; 定义访问控制列表:

listen 80 default_server; 虚拟主机监听的端口

server_name servera.lab.example.com weight=90; #也可以正则表达式location / {

# http://servera.lab.example.com/hello/test/a.html

#location后面的路径就代表的是:/hello/test/a.html这样的路径是方式服务器的

root 命令所定义的路径下面

你的静态文件或者程序所存放的路径index index.html; 这个叫默认页面 root /usr/share/nginx/html;

}


error_page 404 /404.html; location = /40x.html {

}


error_page 500 502 503 504 /50x.html; location = /50x.html {

}

}


配置nginx虚拟主机

RH358 — 服务管理与自动化 课堂笔记_RH358_204

RH358 — 服务管理与自动化 课堂笔记_RH358_205


RH358 — 服务管理与自动化 课堂笔记_RH358_206

RH358 — 服务管理与自动化 课堂笔记_RH358_207

RH358 — 服务管理与自动化 课堂笔记_RH358_208

RH358 — 服务管理与自动化 课堂笔记_RH358_209

nginx的访问控制

RH358 — 服务管理与自动化 课堂笔记_RH358_210

RH358 — 服务管理与自动化 课堂笔记_RH358_211

RH358 — 服务管理与自动化 课堂笔记_RH358_212

RH358 — 服务管理与自动化 课堂笔记_RH358_213


^以什么开头

$以什么结尾

. 当前只有一个字符

+ 前面这个字符重复1次到任意多次

?前面一个字符重复0次或者一次

* 前面一个字符重复0次到任意多次

{n,m}代表前面的字符重复n次到m次

\d 数字

\D

\s

\S

\w

\W

[a-z]这个范围内取一个


nginx的https


RH358 — 服务管理与自动化 课堂笔记_RH358_214

RH358 — 服务管理与自动化 课堂笔记_RH358_215


web服务的自动化

RH358 — 服务管理与自动化 课堂笔记_RH358_216

nginx: web server


RH358 — 服务管理与自动化 课堂笔记_RH358_217

优化web服务器流量

2024年3月24日 11:06

RH358 — 服务管理与自动化 课堂笔记_RH358_218

当web服务器在前端加入过缓存服务器的时候访问流程:

1:2:如果Client所访问的数据在varnish已经缓存过了,那么数据会从varnish server直接传递给Client

3: 如果Client所访问的数据在varnish server没有被缓存,那么varnish server和web server建立TCP连接。同事获取数据并且把数据缓存在内存内。最后再通过varnish server 把数据传递给Client


那么varnish怎么部署安装和配置:安装:

RH358 — 服务管理与自动化 课堂笔记_RH358_219

配置varnish

由于进程有两种类型的进程:

管理进程:主要的管理进程:配置前端访问的端口和用于缓存数据的内存大小:

RH358 — 服务管理与自动化 课堂笔记_RH358_220

RH358 — 服务管理与自动化 课堂笔记_RH358_221


ExceStart= 用来覆盖默认的配置

ExceStart = 81 -->256M

-f /etc/varnish/default.vcl这个就是内置子进程的配置路径


内置子进程:

控制缓存行为用的 VCL语言来进程配置。 VCL 是一个

varnish的配置语言


编辑:/etc/varnish/default.vcl

第一配置:配置后端服务器:

RH358 — 服务管理与自动化 课堂笔记_RH358_222



backend 定义后端: host代表后端的主机,port后端服务监听的端口


配置varnish的内置子进程:

RH358 — 服务管理与自动化 课堂笔记_RH358_223

RH358 — 服务管理与自动化 课堂笔记_RH358_224

RH358 — 服务管理与自动化 课堂笔记_RH358_225

RH358 — 服务管理与自动化 课堂笔记_RH358_226


RH358 — 服务管理与自动化 课堂笔记_RH358_227

RH358 — 服务管理与自动化 课堂笔记_RH358_228


nginX:配置


RH358 — 服务管理与自动化 课堂笔记_RH358_229


每个不同的子进程都有自己对应的retunrn动作!VCL是否是用来专门定义这些动作呢?不是的。所有的子进程都有默认动作!除非你想更改这个默认动作,否则没必要去专门针对对应的子进程配置return

vcl_hash lookup: 查找缓存数据。


vcl_hit: fetch


那我们在什么样的情况下,需要去针对特定的子进程做配置:

1:你要更改默认的动作/pipe: retrun error

2: 在你需要去修改http头部信息的时候,这个时候就需要定义了

req respose berequest besponse


比如你要定义TTL时间。等


要修改response http头部数据。就应该在vcl_deliver子进程

beresponse--->vcl_backend_response子进程内

req在vcl_recv子进程内设置

beresq: vcl_miss或者vcl_hit内设置

RH358 — 服务管理与自动化 课堂笔记_RH358_230

RH358 — 服务管理与自动化 课堂笔记_RH358_231

RH358 — 服务管理与自动化 课堂笔记_RH358_232

负载均衡器:软件类型:

四层的负载均衡器:LVS

七层负载均衡器:

nginx/haproxy/apache

硬件类型:


F5


工作原理:四层:LVS

RH358 — 服务管理与自动化 课堂笔记_RH358_233


七层负载均衡服务器不一样:nginx/haproxy/apache

RH358 — 服务管理与自动化 课堂笔记_RH358_234


HAProxy: 部署和配置

1:安装软件包

RH358 — 服务管理与自动化 课堂笔记_RH358_235


2:修改haproxy的配置


RH358 — 服务管理与自动化 课堂笔记_RH358_236

RH358 — 服务管理与自动化 课堂笔记_RH358_237


log:日志是发送到日志设备2

chroot: 当我们的haproxy服务启动以后。会绑定到/var/lib/haproxy目录下

这个目录会作为haproxy进程的/目录

maxconn: 最大连接数 pidfile: pid文件的路径 user: 进程的拥有者是谁 group 属组是谁

daemon: 以后端进程的方式运行haproxy

RH358 — 服务管理与自动化 课堂笔记_RH358_238


mode: http七层的负载均衡器

log: global全局配置中的日志配置

RH358 — 服务管理与自动化 课堂笔记_RH358_239

RH358 — 服务管理与自动化 课堂笔记_RH358_240

RH358 — 服务管理与自动化 课堂笔记_RH358_241


使用HAProxy对Varnish做负载均衡!

RH358 — 服务管理与自动化 课堂笔记_RH358_242


NFS和Samba

2024年3月30日 8:56


NAS: 有两种Network attch system

1: NFS Network File system

2: Samba:和windows的是差不多的

RH358 — 服务管理与自动化 课堂笔记_RH358_243


具体操作

1:安装包:

RH358 — 服务管理与自动化 课堂笔记_RH358_244



2: 修改配置文件

RH358 — 服务管理与自动化 课堂笔记_RH358_245


/share: 代表共享目录


serverb.lab.example.com:代表ACL:谁能访问我的共享

*.lab.example.com

172.25.250.9: 固定的IP

172.25.250.0/24这个网段内的主机都可以访问

*代表所有的主机的都可以访问


(rw):代表共享参数

rw: 可读可写

ro: 只读


no_root_squash root_squash all_squash squash uid gid


3: 启动服务

RH358 — 服务管理与自动化 课堂笔记_RH358_246

RH358 — 服务管理与自动化 课堂笔记_RH358_247

RH358 — 服务管理与自动化 课堂笔记_RH358_248


Client: 只需要挂载

RH358 — 服务管理与自动化 课堂笔记_RH358_249

由此可以提供nfs 文件系统

RH358 — 服务管理与自动化 课堂笔记_RH358_250


以及自动挂载

RH358 — 服务管理与自动化 课堂笔记_RH358_251


解决权限问题:

RH358 — 服务管理与自动化 课堂笔记_RH358_252

RH358 — 服务管理与自动化 课堂笔记_RH358_253

RH358 — 服务管理与自动化 课堂笔记_RH358_254

关于Samba:

RH358 — 服务管理与自动化 课堂笔记_RH358_255


1: 创建一个共享目录

RH358 — 服务管理与自动化 课堂笔记_RH358_256

RH358 — 服务管理与自动化 课堂笔记_RH358_257

RH358 — 服务管理与自动化 课堂笔记_RH358_258


2:安装Samba相对应的包

RH358 — 服务管理与自动化 课堂笔记_RH358_259


3:修改samaba的配置

RH358 — 服务管理与自动化 课堂笔记_RH358_260

RH358 — 服务管理与自动化 课堂笔记_RH358_261



workgroup:工作组

security = user使用本地系统用户作为samba用户

user1想成为samba用户

useradd user1

pedbit -a -u user1 ##把user1添加为samba用户

RH358 — 服务管理与自动化 课堂笔记_RH358_262



[homes] 用户家目录的共享

[printers]代表的是打印机的共享

RH358 — 服务管理与自动化 课堂笔记_RH358_263


[share]: []括号内叫共享名称

comment: 描述信息

path: 共享路径

browseable: 是否可浏览


4:服务启动

RH358 — 服务管理与自动化 课堂笔记_RH358_264

RH358 — 服务管理与自动化 课堂笔记_RH358_265



五:创建samba用户

RH358 — 服务管理与自动化 课堂笔记_RH358_266

RH358 — 服务管理与自动化 课堂笔记_RH358_267


五:Client

RH358 — 服务管理与自动化 课堂笔记_RH358_268


cifs-utils:提供了samba文件系统

RH358 — 服务管理与自动化 课堂笔记_RH358_269


samba-client:提供了Client端工具

RH358 — 服务管理与自动化 课堂笔记_RH358_270

RH358 — 服务管理与自动化 课堂笔记_RH358_271

RH358 — 服务管理与自动化 课堂笔记_RH358_272


权限问题:


RH358 — 服务管理与自动化 课堂笔记_RH358_273


分析:

1: 首先看使用身份验证的用户对于共享目录是否有足够的权限user1

RH358 — 服务管理与自动化 课堂笔记_RH358_274

RH358 — 服务管理与自动化 课堂笔记_RH358_275


2: Selinux的问题

RH358 — 服务管理与自动化 课堂笔记_RH358_276

RH358 — 服务管理与自动化 课堂笔记_RH358_277


3: SAMBA的配置问题


# read only = yes 默认情况下,所有人都是只读writeable = yes 只要是个samba用户那么所有人都是可读可写

write list = user1,user2 哪些人可读可写,@user1: user1

是个组,这个组内的用户都可以可读可写

流量加密:

RH358 — 服务管理与自动化 课堂笔记_RH358_278



多用户挂载

RH358 — 服务管理与自动化 课堂笔记_RH358_279


RH358 — 服务管理与自动化 课堂笔记_RH358_280

RH358 — 服务管理与自动化 课堂笔记_RH358_281

访问基于块的⽹络存储

2024年3月30日 8:57

RH358 — 服务管理与自动化 课堂笔记_RH358_282


目标:target存储资源,向Client提供LUN(逻辑存储单元) 物理存储和他对应 必须要有一个唯一的标识

IQN: 标识这个Target,标识这个启动器

iqn: 的标识方式:

iqn.YYYY-MM.com.example.lab:(name)

YYYY-MM:获取FQDN的年份和月份


门户:可以用来访问目标的IP和端口

RH358 — 服务管理与自动化 课堂笔记_RH358_283

TPG:包含一个目标的所有配置

ACL: 允许Client的IQN

部署:

RH358 — 服务管理与自动化 课堂笔记_RH358_284

配置目标:


RH358 — 服务管理与自动化 课堂笔记_RH358_285

RH358 — 服务管理与自动化 课堂笔记_RH358_286

RH358 — 服务管理与自动化 课堂笔记_RH358_287

RH358 — 服务管理与自动化 课堂笔记_RH358_288

RH358 — 服务管理与自动化 课堂笔记_RH358_289

RH358 — 服务管理与自动化 课堂笔记_RH358_290


RH358 — 服务管理与自动化 课堂笔记_RH358_291

RH358 — 服务管理与自动化 课堂笔记_RH358_292

RH358 — 服务管理与自动化 课堂笔记_RH358_293

Client: 如果需要挂载怎么办:

RH358 — 服务管理与自动化 课堂笔记_RH358_294

RH358 — 服务管理与自动化 课堂笔记_RH358_295

RH358 — 服务管理与自动化 课堂笔记_RH358_296


RH358 — 服务管理与自动化 课堂笔记_RH358_297

RH358 — 服务管理与自动化 课堂笔记_RH358_298

RH358 — 服务管理与自动化 课堂笔记_RH358_299

RH358 — 服务管理与自动化 课堂笔记_RH358_300

RH358 — 服务管理与自动化 课堂笔记_RH358_301

RH358 — 服务管理与自动化 课堂笔记_RH358_302