358 rhel7 ce
ansible 部署服务
dhcp nginx vanish haproxy 打印机服务
systemctl 来管理systemd的对象(unit单元)
systemctl 显示服务单元
大致有以下几类
slice (资源片段,与调优有关)target (紧急模式之类,文本模式multi-user.target)service (与服务有关)socket (进程通信)systemctl 通过单元配置文件来管理
[root@localhost ~]# systemctl status sshd● sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset>Active: active (running) since Sat 2022-08-27 13:07:05 CST; 1min 18s ago[root@localhost ~]# cat /usr/lib/systemd/system/sshd.service [Unit]Description=OpenSSH server daemonDocumentation=man:sshd(8) man:sshd_config(5)After=network.target sshd-keygen.target after和before启动顺序Wants=sshd-keygen.target 依赖关系[Service]Type=notifyEnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config 环境变量所在的文件EnvironmentFile=-/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY 调用进程 ($OPTIONS $CRYPTO_POLICY 调用环境变量)ExecReload=/bin/kill -HUP $MAINPID (systemctl reload sshd = /bin/kill -HUP $MAINPID[sshd pid]) KillMode=processRestart=on-failureRestartSec=42s[Install]WantedBy=multi-user.target[root@localhost ~]# [root@localhost ~]# killall -lHUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLTCHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS[root@localhost ~]# HUP信号量 让进程重新读取配置文件/bin/kill -HUP $MAINPID restart 会使mainpid发生变化reload不会systemctl 要控制单元,必须依赖于单元配置文件
改了单元配置文件需要 systemctl daemon-reload
1.自定义了单元配置文件:mysql你用二进制安装
2.调优的时候,需要改动这些文件
3.修改某些服务的启动方式的参数。docker服务
systemctl enable [service]
enable时会创建链接文件
[root@localhost ~]# systemctl enable sshdCreated symlink /etc/systemd/system/multi-user.target.wants/sshd.service → /usr/lib/systemd/system/sshd.service.disable则删除了
日志信息
1.服务本身自己的日志输出 服务自定的定义
2.systemd-journal 保存在内存中
systemctl status systemd-journald
查看journald
[root@localhost ~]# journalctl -p err-- Logs begin at Sat 2022-08-27 13:07:00 CST, end at Sat 2022-08-27 13:37:29 CS>Aug 27 13:07:04 localhost.localdomain kernel: piix4_smbus 0000:00:07.3: SMBus H>Aug 27 13:07:04 localhost.localdomain smartd[1047]: DEVICESCAN failed: glob(3) >Aug 27 13:07:04 localhost.localdomain smartd[1047]: In the system's table of de>Aug 27 13:07:06 localhost.localdomain systemd[1]: Failed to start Crash recover>Aug 27 13:17:03 localhost.localdomain systemd[1]: Failed to start dnf makecache.lines 1-6/6 (END)查看日志级别[root@localhost ~]# journalctl -p err -u httpd-- Logs begin at Sat 2022-08-27 13:07:00 CST, end at Sat 2022-08-27 13:37:29 CS>-- No entries --lines 1-2/2 (END)-f会实时监控[root@localhost ~]# journalctl --sinc "13:00:00" --unit "13:03:00"systemctl status sshd -l服务启动依赖项
[root@localhost ~]# systemctl list-dependencies graphical.target graphical.target● ├─accounts-daemon.service● ├─gdm.service● ├─rtkit-daemon.service● ├─systemd-update-utmp-runlevel.service● ├─udisks2.service● └─multi-user.target● ├─atd.service● ├─auditd.service● ├─avahi-daemon.service● ├─crond.service● ├─cups.path● ├─dbus.service● ├─dnf-makecache.timer● ├─firewalld.service● ├─irqbalance.service● ├─kdump.service● ├─ksm.service● ├─ksmtuned.service● ├─libstoragemgmt.service● ├─libvirtd.service● ├─mcelog.service● ├─mdmonitor.servicelines 1-23服务屏蔽
systemctl mask httpd
将单元配置文件指向/dev/null
systemctl status/start/stop/restart/reload/disable/enable/mask/unmask/list-dependency/journalctl/单元配置文件
[root@localhost multi-user.target.wants]# nmcli connection show 'ens160'connection.id: ens160connection.uuid: 25d20a42-f84e-4c51-8df9-bfcefa11b1b0connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: ens160connection.autoconnect: noconnection.autoconnect-priority: 0connection.autoconnect-retries: -1 (default)connection.multi-connect: 0 (default)connection.auth-retries: -1connection.timestamp: 1655383585device指的物理设备
connection连接指的是它所关联的设备的配置集合
配置设备的网络信息,看他是否关联了连接
将网卡的配置永久保存在连接里[root@localhost multi-user.target.wants]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=dhcpDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens160UUID=25d20a42-f84e-4c51-8df9-bfcefa11b1b0DEVICE=ens160ONBOOT=no启动时加载文件
对于一个设备可以有多套连接,每个连接针对不同的配置。只有一个连接处于active
改网络设备,先确定设备有哪些,和网络设备有关联的连接
[root@localhost multi-user.target.wants]# nmcli device DEVICE TYPE STATE CONNECTION virbr0 bridge connected virbr0 ens160 ethernet disconnected -- lo loopback unmanaged -- virbr0-nic tun unmanaged -- 没有连接则需要创建连接关联设备
[root@localhost multi-user.target.wants]# nmcli connection add con-name eth1 type ethernet ifname ens160 autoconnect noConnection 'eth1' (930ef42d-0377-48cb-8e16-52ad91ef8857) successfully added.[root@localhost multi-user.target.wants]# ll /etc/sysconfig/network-scripts/ifcfg-eth1 -rw-r--r--. 1 root root 279 Aug 27 14:33 /etc/sysconfig/network-scripts/ifcfg-eth1[root@localhost multi-user.target.wants]# 持久化保存配置
ifname设备名
con-name连接名
方式一:nmcli
方式二:修改配置文件
注意
nmcli connection modify 之后需要up激活
ipv4.gateway 不要重复设置,两个连接两个不同的gateway,两个不同的设备,重复设置gateway。那么默认路由则会有两条。没有意义
没有环境做这个实验。弱化这一块,提供思路但是我并未实践假设我的ip为10.10.10.22 我已经可也通外网了,我还得需要访问内部网络192.168.10.0添加特定路由ip route add 192.168.10.0/24 dev eth2添加ipnmcli connection modify eth2 +ipv4.address 192.168.10.1/24 (这样也会添加路由)配置子接口网络工程师会给你搞定网络的事。这里主要时说,让你不要重复两个网关。dns可以写多个。但不能写太多
不管几个网卡配了dns
所有dns配置都会写到 /etc/resolv.conf 这个文件内
DNS1
DNS后面必须加数字
网卡不能生效的问题:连接和设备关联不上,配置ip不生效
方式1:通过MAC地址强关联 HWADDR=52:54:00:07:a1:40
方式2:删除连接重新开始建
修改设备名
通过MAC强绑定 修改device
DEVICE=supermaohero
HWADDR=00:0c:29:a9:3d:60
supermao: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 00:0c:29:a9:3d:60 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0rhel-system-roles 提供一个修改网络的系统 rhel-system-roles.network
对于别人提供的role你要用
你就需要提供合适变量就可以完成工作
下载 rhel-system-roles.network
[root@localhost rhel-system-roles.network]# pwd/usr/share/ansible/roles/rhel-system-roles.network[root@localhost rhel-system-roles.network]# ll README.md -rw-r--r--. 1 root root 34346 Aug 28 2021 README.md[root@localhost rhel-system-roles.network]# 
运行playbook
红帽已经给你把这个角色写好了,只用提供相关变量