[排错] 解决 Red Hat Satellite 客户端注册成功但是无法获取软件源

报错代码

# subscription-manager repos
This system has no repositories available through subscriptions.

解决方法

步骤一:确保 /etc/pki/product/69.pem 文件的存在,且权限和下面的一致

# ls -l /etc/pki/product/69.pem
-rw-r----- 1 root root 2159 Nov  5 17:36 /etc/pki/product/69.pem

步骤二:确保 /etc/pki/product-default/69.pem 文件的存在,且权限和下面的一致

# ls -l /etc/pki/product-default/69.pem
-rw-r----- 1 644 root 2159 Nov  5 17:36 /etc/pki/product-default/69.pem

步骤三:如果步骤一和步骤二中的文件不存在

3.1 可以从其他正常的客户端那里拷贝

(步骤略)

3.2 可以从以下网址里下载

https://access.redhat.com/labs/rhpc/

[步骤] Red Hat Satellite 客户端 UUID 的显示

步骤一:规划拓扑

1.1 服务器列表

Red Hat Satellite 服务端
Red Hat Satellite 客户端

1.2 服务器列表简介

Red Hat Satellite 客户端注册到 Red Hat Satellite 服务端获取软件和补丁

步骤二:获取 Red Hat Satellite 客户端的 UUID

(只在 Red Hat Satellite 客户端执行以下步骤)

# subscription-manager facts --list | grep -i UUID

步骤三:确认 Red Hat Satellite 客户端的 UUID 在服务端中出现

(只在 Red Hat Satellite 服务端执行以下步骤)

# cat /var/log/rhsm/rhsm.log | grep -i <client's UUID>

步骤四:显示 Red Hat Satellite 客户端在服务端中的具体信息

(只在 Red Hat Satellite 服务端执行以下步骤)

# vim /var/log/rhsm/rhsm.log

(补充:在 vim 中查找对应客户端的 UUID 并联系上下文进行显示)

[步骤] Red Hat Satellite Virt-who 账号或密码的更换

内容一:Virt-who 账号的作用

1) Virt-who 的作用是让 Red Hat Satellite 服务器能判断虚拟机在哪一台物理机上运行
2) Redhat 的无限量 license 必须要让虚拟机在 license 所在的物理机上运行才能获得软件和补丁
3) Virt-who 必须正常无限连 license 才能生效
4) 而 Virt-who 账号的作用就是有权限登录对应的平台,让 Red Hat Satellite 服务器能判断虚拟机在哪一台物理机上运行

内容二:修改 Virt-who 账号或密码

2.1 进入 Virt-who 的配置页面

登录 Satellite 网页 –> 基础架构 –> Virt-who Configurations –> 对应的 Name 的编辑

2.2 修改账号和密码

(步骤略)

内容三:重新部署 Virt-who

3.1 进入 Virt-who 的 Deploy 页面

登录 Satellite 网页 –> 基础架构 –> Virt-who Configurations –> 对应的 Name –> Deploy

3.2 执行里面的步骤

(步骤略)

[排错] 解决 Linux 发送邮件时报错 “send-mail: fatal: parameter inet_interfaces: no local interface found for ::1”

报错代码

send-mail: fatal: parameter inet_interfaces: no local interface found for ::1

解决方法

步骤一:修改 postfix 的配置文件

# vim /etc/postfix/main.cf

将以下内容:

......
inet_interfaces = localhost
......
inet_protocols = all
......

修改为:

......
inet_interfaces = all
......
inet_protocols = all
......

步骤二:重启 postfix 服务

# systemctl restart postfix

[实验] Linux 日志的远程集中管理和分文件存储 (通过 Rsyslog 实现)

步骤一:规划拓扑

1.1 服务器列表

rsyslog 服务端 IP 地址:192.168.0.11
rsyslog 客户端 IP 地址:192.168.0.12

1.2 服务器列表简介

rsyslog 客户端将日志发送给 rsyslog 服务端,并实现分文件存储

步骤二:系统环境要求

1) 所有服务器的系统都需要是 CentOS 8 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器都要关闭 SELinux
4) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
5) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名

步骤三:配置 rsyslog 服务端

3.1 修改 rsyslog 配置文件的案例

3.1.1 案例一

(只在 rsyslog 服务端执行以下步骤)

# vim /etc/rsyslog.conf

添加以下内容:

......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")


补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将所有 rsyslog 客户端的日志存储在 rsyslog 服务端的 /var/log/message 里

3.1.2 案例二

(只在 rsyslog 服务端执行以下步骤)

# vim /etc/rsyslog.conf

添加以下内容:

......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

$template DynFile,"/var/log/%HOSTNAME%.log"
*.* -?DynFile
& ~


补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下的一个文件里,此文件会以其所属系统名命名

3.1.3 案例三

(只在 rsyslog 服务端执行以下步骤)

# vim /etc/rsyslog.conf

添加以下内容:

......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

$template DynFile,"/var/log/remotelog/%HOSTNAME%-%$YEAR%-%$MONTH%-%$DAY%-messages.log"
*.* -?DynFile
& ~


补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/remotelog 下的一个文件里,此文件会以其创建时间和其所属系统名命名

3.1.4 案例四

(只在 rsyslog 服务端执行以下步骤)

# vim /etc/rsyslog.conf

添加以下内容:

......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

$template DynFile,"/var/log/remotelog/%HOSTNAME%-%$YEAR%-%$MONTH%-%$DAY%-messages.log"
:fromhost-ip,!isequal,"127.0.0.1" -?DynFile
& ~


补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下的一个文件里,此文件会以其创建时间和其所属系统名命名
4) 此配置不会单独存储 rsyslog 服务端的日志

3.1.5 案例五

(只在 rsyslog 服务端执行以下步骤)

# vim /etc/rsyslog.conf

添加以下内容:

......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

$template DynFile,"/var/log/syslog/system-%HOSTNAME%/messages.log"
*.* -?DynFile
& ~


补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下某个目录的 messages 文件里,此目录会以其所属系统名命名

3.2 重启 rsyslog 服务

(只在 rsyslog 服务端执行以下步骤)

# systemctl restart rsyslog


补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 需要在 3.1 修改 rsyslog 配置文件的案例中任选其一完成后在执行此步骤

步骤四:配置 rsyslog 客户端

4.1 修改 rsyslog 客户端的案例

(只在 rsyslog 客户端执行以下步骤)

# vim /etc/rsyslog.conf

添加以下内容:

......
*.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info  @192.168.0.11

或者:

......
*.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info  @@192.168.0.11


补充:
1) 这里的 192.168.0.11 是指 rsyslog 服务端的 IP 地址
2) IP 地址前一个 “@” 符后是指使用 UDP 端口 514 传输日志
3) IP 地址前两个 “@” 符后是指使用 TCP 端口 514 传输日志

4.2 重启 rsyslog 服务

(只在 rsyslog 客户端执行以下步骤)

# systemctl restart rsyslog

步骤五:测试 rsyslog 服务

5.1 在 rsyslog 客户端上发送日志

(只在 rsyslog 客户端执行以下步骤)

# logger "This is our test log"

(补充:这里以发送 This is our test log 信息为例)

5.2 在 rsyslog 服务端上显示日志

(只在 rsyslog 服务端执行以下步骤)

# cat /var/log/* | grep test