RH358服务管理和自动化--控制网络服务

简介: RH358服务管理和自动化--控制网络服务

RH358服务管理和自动化–控制网络服务

接下来先讨论和回顾管理网络所需要的工具和技能。属于第一章第一节内容。

开篇回顾:https://blog.csdn.net/qq_41765918/article/details/121875149

1. Red Hat服务管理和自动化简介

在RH358,主要学习如何安装、配置和管理Red Hat Enterprise Linux提供的核心服务和功能。而且每个章节都是先讲解服务的手动使用,而在章节的最后介绍如何使用Ansible来自动化完成此前的手动操作。

要成为一名拥有高效率的系统管理员,应该非常熟悉地了解所管理的每个服务。当在大型数据中心中大规模部署和管理服务时,还必须了解如何自动化地所操作的任务,以便能够在大量系统上重复地自动部署和管理服务。

然后本章节是回顾 RHEL 系统上关于systemd和用于控制系统服务的相关工具。至于在下个章节中,将回顾如何使用NetworkManager配置网络接口,以及如何使用nmcli等工具来处理系统的网络配置。最后,将回顾如何使用Ansible自动化的服务配置和网络接口配置任务。

2. 介绍Systemd

系统启动和进程由systemd系统和服务管理器管理。这个程序提供了一种方法,可以在启动时和运行中的系统上激活系统资源、服务器守护进程和其他进程。

守护进程是由系统启动而不是从shell提示符启动的系统进程。它们没有连接到控制终端,也不能被带到前台。守护进程通常执行各种系统任务或提供其他程序和客户端使用的服务。

通常,Red Hat Enterprise Linux系统的进程ID 1为systemd。该进程负责在引导过程中激活系统上的其他守护进程,并在系统停止或重新引导时关闭它们。

一个systemd服务通常管理一个或多个守护进程,这些守护进程共同提供某些功能。但是,有时启动或停止服务会对系统状态进行一次性更改(例如,配置网络接口),这并不需要在之后让守护进程继续运行。

Systemctl和Systemd Units

systemctl命令用于管理不同类型的systemd对象,称为单元。可以使用systemctl -t帮助显示可用单元类型的列表。

一些常见的单元类型包括:

  • 服务单元,具有服务扩展并代表系统服务。这种类型的单元管理频繁访问的守护进程,比如web服务器。当一个服务单元启动一个守护进程时,它通常会一直运行到systemd停止为止。

  • 套接字单元,它有套接字扩展,表示进程间通信(IPC)套接字。当建立客户端连接时,套接字的控制权从systemd传递给新启动的守护进程。套接字单元在启动时延迟服务的启动,并按需启动不常用的服务。当客户端断开连接时,套接字单元可能会停止关联的服务单元。

重要:在RH358课程中,术语:服务,指的是为网络客户端提供某些服务的守护进程,无论是通过服务单元启动,还是通过套接字单元启动,或通过其他方式启动。

服务状态

可以使用systemctl status name.type查看服务的状态。如果没有提供单元类型,则systemctl显示服务(service)单元的状态(如果存在服务单元)

[root@servera ~]# systemctl status sshd.service 
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-12-11 23:25:54 CST; 37s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1387 (sshd)
   CGroup: /system.slice/sshd.service
           └─1387 /usr/sbin/sshd -D

Dec 11 23:25:54 servera systemd[1]: Starting OpenSSH server daemon...
Dec 11 23:25:54 servera sshd[1387]: Server listening on 0.0.0.0 port 22.
Dec 11 23:25:54 servera systemd[1]: Started OpenSSH server daemon.
Dec 11 23:25:54 servera sshd[1387]: Server listening on :: port 22.
Dec 11 23:26:18 servera sshd[1651]: Accepted password for root from 192.168.159.1 port 63293 ssh2

在状态输出中可以找到几个表示服务状态的关键字:

关键字描述loaded单元配置文件已被处理。active (running)使用一个或多个持续进程运行。active (exited)成功完成一次性配置。active (waiting)运行,但等待一个事件。inactive不运行。enabled将在启动时启动。disabled将不会在启动时启动。static不能启用,但可以由已启用的单元自动启动。

3. 使用Systemctl列出单元文件

# 查询所有单元状态,验证系统是否启动。
[root@host ~]# systemctl

# 仅查询服务单元状态。
[root@host ~]# systemctl --type=service

# 调查任何处于故障或维护状态的单元。可选地,添加-l选项来显示完整的输出。
[root@host ~]# systemctl status NetworkManager-wait-online -l

# is-active或is-enabled参数也可以用来确定一个特定的单元是否激活,并显示该单元是否在启动时启用。其他命令也可以显示激活和启用状态:
[root@host ~]# systemctl is-active sshd
active
[root@host ~]# systemctl is-enabled sshd
enabled

# 列出所有加载单元的活动状态。可选地,限制单元的类型。--all选项会添加不活动的单位。
[root@host ~]# systemctl list-units --type=service
UNIT                     LOAD ACTIVE SUB    DESCRIPTION
accounts-daemon.service loaded active running Accounts Service
atd.service loaded active  running Job spooling tools
auditd.service loaded active running Security Auditing Service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
...output omitted...
[root@host ~]# systemctl list-units --type=service --all

# 查看所有单位的启用和禁用设置。可选地,限制单元的类型。
[root@host ~]# systemctl list-unit-files --type=service

# 只查看失败的服务。
[root@host ~]# systemctl --failed --type=service

4. 查看服务状态

# 使用systemctl status命令查看sshd服务状态。请注意PID,它将在下一个示例中使用:
# 查看sshd服务状态
[root@workstation ~]# systemctl status sshd.service 
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2021-05-30 10:43:27 CST; 1h 4min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1093 (sshd)
    Tasks: 1 (limit: 11231)
   Memory: 5.4M
   CGroup: /system.slice/sshd.service
           └─1093 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256->

# 确认进程正在运行。
[root@workstation ~]# ps -up 1093
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1093  0.0  0.4  92308  7500 ?        Ss   10:43   0:00 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,ch

# 停止服务并验证状态。
[root@host ~]# systemctl stop sshd.service
[root@host ~]# systemctl status sshd.service

# 启动服务并查看状态。进程ID已更改。
[root@host ~]# systemctl start sshd.service
[root@host ~]# systemctl status sshd.service

# 在单个命令中停止,然后启动服务。
[root@host ~]# systemctl restart sshd.service
[root@host ~]# systemctl status sshd.service

# 发出指令,让服务读取并重新加载其配置文件,而不需要完全停止和启动。请注意,如果没有完全停止和启动,进程ID不会发生更改
[root@host ~]# systemctl reload sshd.service
[root@host ~]# systemctl status sshd.service

5. 单元的依赖关系

服务可以作为其他服务的依赖项启动。如果启用了套接字单元,而没有启用同名的服务单元,则在网络套接字上发出请求时,服务将自动启动。当满足某个文件系统条件时,也可以通过路径单元触发业务。

systemctl list-dependencies UNIT命令可以用来显示其他单元的树,这些单元必须与特定的单元一起启动。这个命令的–reverse选项显示了需要启动哪些单元才能运行。

6. 屏蔽服务

系统可能为某个功能安装了相互冲突的服务,比如防火墙(iptables和firewalld)。为了避免意外启动服务,您可以屏蔽该服务。Masking在配置目录中创建一个链接,这样如果服务启动了,什么也不会发生。

[root@host ~]# systemctl mask iptables
Created symlink /etc/systemd/system/iptables.service → /dev/null.
[root@host ~]# systemctl unmask iptables
Removed /etc/systemd/system/iptables.service.

重要:被禁用的服务不会在启动时自动启动或由其他单元文件启动,但可以手动启动。不过不能自动启动屏蔽服务。

7. 使系统守护进程启动时启动或停止

# 当在适当的systemd配置目录中创建链接时,服务将在启动时启动。这些链接是用systemctl命令创建和删除的。
# 查看服务状态
[root@host ~]# systemctl status sshd.service

# 关闭服务并验证状态。注意,禁用服务并不会停止该服务。
[root@host ~]# systemctl disable sshd.service
[root@host ~]# systemctl status sshd.service

# 启用服务并验证状态。
[root@host ~]# systemctl enable sshd.service
[root@host ~]# systemctl is-enabled sshd.service

8. Systemctl命令汇总

服务可以在运行中的系统上启动和停止,也可以在启动时自动启动或禁用。下面显示了一些常用的命令。如要获取更多命令,请运行systemctl --help。

# systemctl is-enabled xxx.service # 查询服务是否开机启动 # systemctl enable xxx.service # 开机运行服务 # systemctl disable xxx.service # 取消开机运行 # systemctl start xxx.service # 启动服务 # systemctl stop xxx.service # 停止服务 # systemctl restart xxx.service # 重启服务 # systemctl reload xxx.service # 重新加载服务配置文件 # systemctl status xxx.service # 查询服务运行状态 # systemctl mask xxx.service # 屏蔽服务 # systemctl umask xxx.service # 取消屏蔽服务 # systemctl --failed # 显示启动失败的服务 # systemctl list-dependencies xxx.service # 列出指定单元所需要的单元(依赖)。 

9. 课本练习

# 配套环境会准备好相关初始化脚本让我们进行练习(如若有配套环境,一定要好好运用)。 [student@workstation ~]$ lab servicemgmt-netservice start # 重启服务查看进程ID [student@workstation ~]$ sudo systemctl status chronyd [student@workstation ~]$ sudo systemctl restart chronyd [student@workstation ~]$ sudo systemctl status chronyd # 查看服务状态并启动服务、设置开机自启 [student@workstation ~]$ ssh servera [student@servera ~]$ sudo -i [sudo] password for student: student [root@servera ~]# systemctl status chronyd [root@servera ~]# systemctl start chronyd [root@servera ~]# systemctl status chronyd [root@servera ~]# systemctl is-enabled chronyd enabled [root@servera ~]# reboot # 屏蔽服务 [root@servera ~]# systemctl status chronyd [root@servera ~]# systemctl disable chronyd [root@servera ~]# systemctl status chronyd [root@servera ~]# reboot [root@servera ~]# systemctl status chronyd # 完成实验 [student@workstation ~]$ lab servicemgmt-netservice finish 

总结

介绍了systemd基础与常用服务状态。运用常用选项查看相关内容。若喜欢金鱼哥的文章,顺手点个赞。也可点个关注,因为后续会不断上干货。

666

目录
相关文章
|
1月前
|
算法 安全 网络安全
网络安全服务
机密主要利用密码学技术加密文件实现,完整主要利用验证码/Hash技术,可用**主要灾备来保障。 网络环境下的身份鉴别,当然还是依托于密码学,一种可以使用口令技术,另一种则是依托物理形式的鉴别,如身份卡等。其实更为安全的是实施多因子的身份认证,不只使用一种方式。数字签名可以用来保证信息的完整性,比如RSA就可以用于数字签名: 若A向B发送信息m则先用自己的保密密钥(私钥)对m加密,然后用B的公钥第二次加密,发送个B后,B先用自己的私钥解密一次,再用A的公钥解密即可。 Kerberos使用对称密码算法来实现通过可信第三方密钥分发中心的认证服务,已经成为工业界的事实标准。
53 3
|
2月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
224 5
|
2月前
|
云安全 人工智能 安全
阿里云稳居公共云网络安全即服务市占率第一
IDC发布《中国公有云网络安全即服务市场份额,2023:规模稳步增长,技术创新引领市场格局》报告,阿里云以27.0%的市场份额蝉联榜首。
|
2月前
|
人工智能 安全 Cloud Native
|
2月前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
533 1
|
2月前
|
运维 安全 5G
|
3月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
63 5
|
3月前
|
负载均衡 网络协议 关系型数据库
docker swarm 使用网络启动服务
【10月更文挑战第15天】
49 4
|
3月前
|
Docker 容器
docker swarm 在服务中使用网络
【10月更文挑战第14天】
71 2
|
2月前
|
监控 网络协议 安全
员工网络监控软件:PowerShell 在网络监控自动化中的应用
在数字化办公环境中,企业对员工网络活动的监控需求日益增长。PowerShell 作为一种强大的脚本语言,能够有效实现员工网络监控自动化。本文介绍了如何使用 PowerShell 获取网络连接信息、监控特定网址的访问情况,并生成自动化报告,帮助企业高效管理员工网络活动,确保网络安全和合规性。
80 0